Mercurial > hg > mercurial-crew-with-dirclash
annotate tests/test-rename-merge2 @ 4188:dd0d9bd91e0a
dirstate.statwalk: explicitly test for ignored directories
This removes a hack where we appended '/' to a dirname so that:
- it would not appear on the "dc" dict
- it would always be matched by the match function
This was a contorted way of checking if the directory was matched by
some hgignore pattern, and it would still fail with some uses of
--include/--exclude patterns.
Things would still work fine if we removed the check altogether and
just appended things to "work" directly, but then we would end up
walking ignored directories too, which could be quite a bit of work.
This allows further simplification of the match function returned by
util._matcher, and fixes walking the working directory with a
--include pattern that matches only the end of a name.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Sat, 10 Mar 2007 23:00:54 -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" |