Mercurial > hg
comparison tests/test-extdiff @ 5137:2be225ea5722
extdiff: do single file diffs from the wc with no copy
Extdiff was always making a temporary directory and copying files even when not required. This change makes extdiff avoid the copy when diffing a single file that lives in the wc. This lets external diff tools edit the working copy file directly. It also lets other extensions resuse the functions in extdiff and get in-place diffs.
author | Brad Schick <schickb@gmail.com> |
---|---|
date | Mon, 06 Aug 2007 14:50:57 -0700 |
parents | 797c6e70092b |
children | d4fa6bafc43a |
comparison
equal
deleted
inserted
replaced
5136:841568ccc09d | 5137:2be225ea5722 |
---|---|
4 echo "extdiff=" >> $HGRCPATH | 4 echo "extdiff=" >> $HGRCPATH |
5 | 5 |
6 hg init a | 6 hg init a |
7 cd a | 7 cd a |
8 echo a > a | 8 echo a > a |
9 echo b > b | |
9 hg add | 10 hg add |
11 # should diff cloned directories | |
10 hg extdiff -o -r $opt | 12 hg extdiff -o -r $opt |
11 | 13 |
12 echo "[extdiff]" >> $HGRCPATH | 14 echo "[extdiff]" >> $HGRCPATH |
13 echo "cmd.falabala=echo" >> $HGRCPATH | 15 echo "cmd.falabala=echo" >> $HGRCPATH |
14 echo "opts.falabala=diffing" >> $HGRCPATH | 16 echo "opts.falabala=diffing" >> $HGRCPATH |
20 hg ci -d '0 0' -mtest1 | 22 hg ci -d '0 0' -mtest1 |
21 | 23 |
22 echo b >> a | 24 echo b >> a |
23 hg ci -d '1 0' -mtest2 | 25 hg ci -d '1 0' -mtest2 |
24 | 26 |
27 # should diff cloned files directly | |
25 hg falabala -r 0:1 | 28 hg falabala -r 0:1 |
26 | 29 |
27 # test diff during merge | 30 # test diff during merge |
28 hg update 0 | 31 hg update 0 |
29 echo b >> b | 32 echo c >> c |
30 hg add b | 33 hg add c |
31 hg ci -m "new branch" -d '1 0' | 34 hg ci -m "new branch" -d '1 0' |
32 hg update -C 1 | 35 hg update -C 1 |
33 hg merge tip | 36 hg merge tip |
34 hg falabala || echo "diff-like tools yield a non-zero exit code" | 37 # should diff cloned file against wc file |
38 hg falabala > out || echo "diff-like tools yield a non-zero exit code" | |
39 # cleanup the output since the wc is a tmp directory | |
40 sed 's:\(.* \).*\(\/test-extdiff\):\1[tmp]\2:' out |