Mercurial > hg > mercurial-crew-with-dirclash
annotate tests/test-rename-merge2 @ 4193:9e3121017fb2
Optimize return value of util._matcher for common command line case
This will trigger every time somebody runs something like "hg diff"
or "hg status" without any arguments.
The important part here is returning util.always as the match function,
which is a much simpler (and faster) function than the usual return
value, and allows other code to just skip the filtering if it knows
all files will match.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Sat, 10 Mar 2007 23:01:00 -0300 |
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" |