Mercurial > hg > mercurial-crew-with-dirclash
annotate tests/test-rename-merge2 @ 4077:1305ba7dee88
Prevent type exception on concatenation if diffstat returns None.
This will most often occur if diffstat is not installed in the
target platform, though may also happen in other cases where
diffstat fails to execute.
Signed-off-by: Sean Dague <sean@dague.net>
author | Sean Dague <sean@dague.net> |
---|---|
date | Tue, 30 Jan 2007 10:35:25 -0500 |
parents | 9dcf9d45cab8 |
children | c2c8491a30d6 |
rev | line source |
---|---|
3280 | 1 #!/bin/sh |
2 | |
3 mkdir -p t | |
4 cd t | |
5 | |
6 cat <<'EOF' > merge | |
7 #!/bin/sh | |
3288
438b0638dbf5
Fix undetected change bug in rename tests
Matt Mackall <mpm@selenic.com>
parents:
3280
diff
changeset
|
8 echo merge $1 $2 $3 > $1 |
3280 | 9 EOF |
10 chmod +x merge | |
11 | |
12 # perform a test merge with possible renaming | |
13 # | |
14 # args: | |
15 # $1 = action in local branch | |
16 # $2 = action in remote branch | |
17 # $3 = action in working dir | |
18 # $4 = expected result | |
19 tm() | |
20 { | |
21 mkdir t | |
22 cd t | |
23 hg init | |
24 echo "[merge]" >> .hg/hgrc | |
25 echo "followcopies = 1" >> .hg/hgrc | |
26 | |
27 # base | |
28 echo base > a | |
29 echo base > rev # used to force commits | |
30 hg add a rev | |
31 hg ci -m "base" -d "0 0" | |
32 | |
33 # remote | |
34 echo remote > rev | |
35 if [ "$2" != "" ] ; then $2 ; fi | |
36 hg ci -m "remote" -d "0 0" | |
37 | |
38 # local | |
39 hg co -q 0 | |
40 echo local > rev | |
41 if [ "$1" != "" ] ; then $1 ; fi | |
42 hg ci -m "local" -d "0 0" | |
43 | |
44 # working dir | |
45 echo local > rev | |
46 if [ "$3" != "" ] ; then $3 ; fi | |
47 | |
48 # merge | |
49 echo "--------------" | |
50 echo "test L:$1 R:$2 W:$3 - $4" | |
51 echo "--------------" | |
52 env HGMERGE=../merge hg merge -y --debug --traceback | |
53 | |
54 echo "--------------" | |
55 hg status -camC -X rev | |
56 | |
57 hg ci -m "merge" -d "0 0" | |
58 | |
59 echo "--------------" | |
60 echo | |
61 | |
62 cd .. | |
3988
9dcf9d45cab8
Don't use -f for rm in tests where not needed. Drop /bin/ from /bin/rm.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3288
diff
changeset
|
63 rm -r t |
3280 | 64 } |
65 | |
66 up() { | |
67 cp rev $1 | |
68 hg add $1 2> /dev/null | |
69 if [ "$2" != "" ] ; then | |
70 cp rev $2 | |
71 hg add $2 2> /dev/null | |
72 fi | |
73 } | |
74 | |
75 uc() { up $1; hg cp $1 $2; } # update + copy | |
76 um() { up $1; hg mv $1 $2; } | |
77 nc() { hg cp $1 $2; } # just copy | |
78 nm() { hg mv $1 $2; } # just move | |
79 | |
80 tm "up a " "nc a b" " " "1 get local a to b" | |
81 tm "nc a b" "up a " " " "2 get rem change to a and b" | |
82 tm "up a " "nm a b" " " "3 get local a change to b, remove a" | |
83 tm "nm a b" "up a " " " "4 get remote change to b" | |
84 tm " " "nc a b" " " "5 get b" | |
85 tm "nc a b" " " " " "6 nothing" | |
86 tm " " "nm a b" " " "7 get b" | |
87 tm "nm a b" " " " " "8 nothing" | |
88 tm "um a b" "um a b" " " "9 do merge with ancestor in a" | |
89 #tm "um a c" "um x c" " " "10 do merge with no ancestor" | |
90 tm "nm a b" "nm a c" " " "11 get c, keep b" | |
91 tm "nc a b" "up b " " " "12 merge b no ancestor" | |
92 tm "up b " "nm a b" " " "13 merge b no ancestor" | |
93 tm "nc a b" "up a b" " " "14 merge b no ancestor" | |
94 tm "up b " "nm a b" " " "15 merge b no ancestor, remove a" | |
95 tm "nc a b" "up a b" " " "16 get a, merge b no ancestor" | |
96 tm "up a b" "nc a b" " " "17 keep a, merge b no ancestor" | |
97 tm "nm a b" "up a b" " " "18 merge b no ancestor" | |
98 tm "up a b" "nm a b" " " "19 merge b no ancestor, prompt remove a" | |
99 tm "up a " "um a b" " " "20 merge a and b to b, remove a" | |
100 tm "um a b" "up a " " " "21 merge a and b to b" | |
101 #tm "nm a b" "um x a" " " "22 get a, keep b" | |
102 tm "nm a b" "up a c" " " "23 get c, keep b" |