##// END OF EJS Templates
merge: add test with conflicting file and remote directory rename...
Martin von Zweigbergk -
r23464:73d4f655 default
parent child Browse files
Show More
@@ -1,192 +1,223 b''
1 1 $ hg init t
2 2 $ cd t
3 3
4 4 $ mkdir a
5 5 $ echo foo > a/a
6 6 $ echo bar > a/b
7 7 $ hg ci -Am "0"
8 8 adding a/a
9 9 adding a/b
10 10
11 11 $ hg co -C 0
12 12 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
13 13 $ hg mv a b
14 14 moving a/a to b/a (glob)
15 15 moving a/b to b/b (glob)
16 16 $ hg ci -m "1 mv a/ b/"
17 17
18 18 $ hg co -C 0
19 19 2 files updated, 0 files merged, 2 files removed, 0 files unresolved
20 20 $ echo baz > a/c
21 21 $ echo quux > a/d
22 22 $ hg add a/c
23 23 $ hg ci -m "2 add a/c"
24 24 created new head
25 25
26 26 $ hg merge --debug 1
27 27 searching for copies back to rev 1
28 28 unmatched files in local:
29 29 a/c
30 30 unmatched files in other:
31 31 b/a
32 32 b/b
33 33 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
34 34 src: 'a/a' -> dst: 'b/a'
35 35 src: 'a/b' -> dst: 'b/b'
36 36 checking for directory renames
37 37 discovered dir src: 'a/' -> dst: 'b/'
38 38 pending file src: 'a/c' -> dst: 'b/c'
39 39 resolving manifests
40 40 branchmerge: True, force: False, partial: False
41 41 ancestor: f9b20c0d4c51, local: ce36d17b18fb+, remote: 397f8b00a740
42 42 a/a: other deleted -> r
43 43 removing a/a
44 44 a/b: other deleted -> r
45 45 removing a/b
46 46 updating: a/b 2/5 files (40.00%)
47 47 b/a: remote created -> g
48 48 getting b/a
49 49 b/b: remote created -> g
50 50 getting b/b
51 51 updating: b/b 4/5 files (80.00%)
52 52 b/c: remote directory rename - move from a/c -> dm
53 53 updating: b/c 5/5 files (100.00%)
54 54 moving a/c to b/c (glob)
55 55 3 files updated, 0 files merged, 2 files removed, 0 files unresolved
56 56 (branch merge, don't forget to commit)
57 57
58 58 $ echo a/* b/*
59 59 a/d b/a b/b b/c
60 60 $ hg st -C
61 61 M b/a
62 62 M b/b
63 63 A b/c
64 64 a/c
65 65 R a/a
66 66 R a/b
67 67 R a/c
68 68 ? a/d
69 69 $ hg ci -m "3 merge 2+1"
70 70 $ hg debugrename b/c
71 71 b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88 (glob)
72 72
73 73 $ hg co -C 1
74 74 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
75 75 $ hg merge --debug 2
76 76 searching for copies back to rev 1
77 77 unmatched files in local:
78 78 b/a
79 79 b/b
80 80 unmatched files in other:
81 81 a/c
82 82 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
83 83 src: 'a/a' -> dst: 'b/a'
84 84 src: 'a/b' -> dst: 'b/b'
85 85 checking for directory renames
86 86 discovered dir src: 'a/' -> dst: 'b/'
87 87 pending file src: 'a/c' -> dst: 'b/c'
88 88 resolving manifests
89 89 branchmerge: True, force: False, partial: False
90 90 ancestor: f9b20c0d4c51, local: 397f8b00a740+, remote: ce36d17b18fb
91 91 b/c: local directory rename - get from a/c -> dg
92 92 updating: b/c 1/1 files (100.00%)
93 93 getting a/c to b/c
94 94 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
95 95 (branch merge, don't forget to commit)
96 96
97 97 $ echo a/* b/*
98 98 a/d b/a b/b b/c
99 99 $ hg st -C
100 100 A b/c
101 101 a/c
102 102 ? a/d
103 103 $ hg ci -m "4 merge 1+2"
104 104 created new head
105 105 $ hg debugrename b/c
106 106 b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88 (glob)
107 107
108 108 Local directory rename with conflicting file added in remote source directory
109 109 and untracked in local target directory.
110 110
111 111 BROKEN: the uncommitted file is overwritten; we should abort
112 112
113 113 $ hg co -qC 1
114 $ echo local > b/c
114 $ echo target > b/c
115 115 $ hg merge 2
116 116 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
117 117 (branch merge, don't forget to commit)
118 $ hg st -C
118 $ hg st -A
119 119 A b/c
120 120 a/c
121 121 ? a/d
122 C b/a
123 C b/b
122 124 $ cat b/c
123 125 baz
124 126
125 127 Local directory rename with conflicting file added in remote source directory
126 128 and committed in local target directory.
127 129
128 130 BROKEN: the local file is overwritten; it should be merged
129 131
130 132 $ hg co -qC 1
131 $ echo local > b/c
133 $ echo target > b/c
132 134 $ hg add b/c
133 135 $ hg commit -qm 'new file in target directory'
134 136 $ hg merge 2
135 137 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
136 138 (branch merge, don't forget to commit)
137 $ hg st -C
139 $ hg st -A
138 140 A b/c
139 141 a/c
140 142 ? a/d
143 C b/a
144 C b/b
145 $ cat b/c
146 baz
147
148 Remote directory rename with conflicting file added in remote target directory
149 and committed in local source directory.
150
151 BROKEN: the remote is ignored; it should be merged
152
153 $ hg co -qC 2
154 $ rm b/c
155 $ hg st -A
156 ? a/d
157 C a/a
158 C a/b
159 C a/c
160 $ hg merge 5
161 3 files updated, 0 files merged, 2 files removed, 0 files unresolved
162 (branch merge, don't forget to commit)
163 $ hg st -A
164 M b/a
165 M b/b
166 A b/c
167 a/c
168 R a/a
169 R a/b
170 R a/c
171 ? a/d
141 172 $ cat b/c
142 173 baz
143 174
144 175 Second scenario with two repos:
145 176
146 177 $ cd ..
147 178 $ hg init r1
148 179 $ cd r1
149 180 $ mkdir a
150 181 $ echo foo > a/f
151 182 $ hg add a
152 183 adding a/f (glob)
153 184 $ hg ci -m "a/f == foo"
154 185 $ cd ..
155 186
156 187 $ hg clone r1 r2
157 188 updating to branch default
158 189 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
159 190 $ cd r2
160 191 $ hg mv a b
161 192 moving a/f to b/f (glob)
162 193 $ echo foo1 > b/f
163 194 $ hg ci -m" a -> b, b/f == foo1"
164 195 $ cd ..
165 196
166 197 $ cd r1
167 198 $ mkdir a/aa
168 199 $ echo bar > a/aa/g
169 200 $ hg add a/aa
170 201 adding a/aa/g (glob)
171 202 $ hg ci -m "a/aa/g"
172 203 $ hg pull ../r2
173 204 pulling from ../r2
174 205 searching for changes
175 206 adding changesets
176 207 adding manifests
177 208 adding file changes
178 209 added 1 changesets with 1 changes to 1 files (+1 heads)
179 210 (run 'hg heads' to see heads, 'hg merge' to merge)
180 211
181 212 $ hg merge
182 213 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
183 214 (branch merge, don't forget to commit)
184 215
185 216 $ hg st -C
186 217 M b/f
187 218 A b/aa/g
188 219 a/aa/g
189 220 R a/aa/g
190 221 R a/f
191 222
192 223 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now