##// END OF EJS Templates
merge: fix a bug where copies were ignored
Matt Mackall -
r4304:4787e2b0 default
parent child Browse files
Show More
@@ -129,15 +129,15 b' def findcopies(repo, m1, m2, ma, limit):'
129 '''check possible copies for filectx c'''
129 '''check possible copies for filectx c'''
130 for of in findold(c):
130 for of in findold(c):
131 if of not in man:
131 if of not in man:
132 return
132 continue
133 c2 = ctx(of, man[of])
133 c2 = ctx(of, man[of])
134 ca = c.ancestor(c2)
134 ca = c.ancestor(c2)
135 if not ca: # unrelated
135 if not ca: # unrelated
136 return
136 continue
137 if ca.path() == c.path() or ca.path() == c2.path():
137 if ca.path() == c.path() or ca.path() == c2.path():
138 fullcopy[c.path()] = of
138 fullcopy[c.path()] = of
139 if c == ca or c2 == ca: # no merge needed, ignore copy
139 if c == ca and c2 == ca: # no merge needed, ignore copy
140 return
140 continue
141 copy[c.path()] = of
141 copy[c.path()] = of
142
142
143 def dirs(files):
143 def dirs(files):
@@ -21,7 +21,7 b' merging zzz1_merge_ok'
21 merging zzz1_merge_ok failed!
21 merging zzz1_merge_ok failed!
22 merging zzz2_merge_bad
22 merging zzz2_merge_bad
23 merging zzz2_merge_bad failed!
23 merging zzz2_merge_bad failed!
24 3 files updated, 0 files merged, 2 files removed, 2 files unresolved
24 3 files updated, 0 files merged, 1 files removed, 2 files unresolved
25 There are unresolved merges with locally modified files.
25 There are unresolved merges with locally modified files.
26 You can redo the full merge using:
26 You can redo the full merge using:
27 hg update 0
27 hg update 0
@@ -40,7 +40,7 b' merge: warning: conflicts during merge'
40 merging zzz1_merge_ok
40 merging zzz1_merge_ok
41 merging zzz2_merge_bad
41 merging zzz2_merge_bad
42 merging zzz2_merge_bad failed!
42 merging zzz2_merge_bad failed!
43 3 files updated, 1 files merged, 2 files removed, 1 files unresolved
43 3 files updated, 1 files merged, 1 files removed, 1 files unresolved
44 There are unresolved merges with locally modified files.
44 There are unresolved merges with locally modified files.
45 You can finish the partial merge using:
45 You can finish the partial merge using:
46 hg update 0
46 hg update 0
@@ -59,7 +59,7 b' M zzz1_merge_ok'
59 M zzz2_merge_bad
59 M zzz2_merge_bad
60 # local merge without conflicts
60 # local merge without conflicts
61 merging zzz1_merge_ok
61 merging zzz1_merge_ok
62 4 files updated, 1 files merged, 2 files removed, 0 files unresolved
62 4 files updated, 1 files merged, 1 files removed, 0 files unresolved
63 --- a/zzz1_merge_ok
63 --- a/zzz1_merge_ok
64 +++ b/zzz1_merge_ok
64 +++ b/zzz1_merge_ok
65 +new last line
65 +new last line
@@ -6,4 +6,5 b' adding manifests'
6 adding file changes
6 adding file changes
7 added 2 changesets with 2 changes to 1 files
7 added 2 changesets with 2 changes to 1 files
8 (run 'hg update' to get a working copy)
8 (run 'hg update' to get a working copy)
9 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
9 merging a and b
10 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
@@ -10,33 +10,39 b' resolving manifests'
10 overwrite None partial False
10 overwrite None partial False
11 ancestor f9b20c0d4c51 local ce36d17b18fb+ remote 55119e611c80
11 ancestor f9b20c0d4c51 local ce36d17b18fb+ remote 55119e611c80
12 a/c: remote renamed directory to b/c -> d
12 a/c: remote renamed directory to b/c -> d
13 a/b: other deleted -> r
13 a/a: remote moved to b/a -> m
14 a/a: other deleted -> r
14 a/b: remote moved to b/b -> m
15 b/a: remote created -> g
15 copying a/a to b/a
16 b/b: remote created -> g
17 removing a/a
16 removing a/a
17 copying a/b to b/b
18 removing a/b
18 removing a/b
19 moving a/c to b/c
19 moving a/c to b/c
20 getting b/a
20 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
21 getting b/b
22 3 files updated, 0 files merged, 2 files removed, 0 files unresolved
23 (branch merge, don't forget to commit)
21 (branch merge, don't forget to commit)
24 a/* b/a b/b b/c
22 a/* b/a b/b b/c
25 M b/a
23 M b/a
24 a/a
26 M b/b
25 M b/b
26 a/b
27 A b/c
27 A b/c
28 a/c
28 a/c
29 R a/a
29 R a/a
30 R a/b
30 R a/b
31 R a/c
31 R a/c
32 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
32 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
33 resolving manifests
33 resolving manifests
34 overwrite None partial False
34 overwrite None partial False
35 ancestor f9b20c0d4c51 local 55119e611c80+ remote ce36d17b18fb
35 ancestor f9b20c0d4c51 local 55119e611c80+ remote ce36d17b18fb
36 b/a: local moved to a/a -> m
37 b/b: local moved to a/b -> m
36 None: local renamed directory to b/c -> d
38 None: local renamed directory to b/c -> d
37 getting a/c to b/c
39 getting a/c to b/c
38 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
40 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
39 (branch merge, don't forget to commit)
41 (branch merge, don't forget to commit)
40 a/* b/a b/b b/c
42 a/* b/a b/b b/c
43 M b/a
44 a/a
45 M b/b
46 a/b
41 A b/c
47 A b/c
42 a/c
48 a/c
@@ -10,9 +10,11 b' adding manifests'
10 adding file changes
10 adding file changes
11 added 1 changesets with 1 changes to 1 files (+1 heads)
11 added 1 changesets with 1 changes to 1 files (+1 heads)
12 (run 'hg heads' to see heads, 'hg merge' to merge)
12 (run 'hg heads' to see heads, 'hg merge' to merge)
13 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
13 merging a/f and b/f
14 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
14 (branch merge, don't forget to commit)
15 (branch merge, don't forget to commit)
15 M b/f
16 M b/f
17 a/f
16 A b/aa/g
18 A b/aa/g
17 a/aa/g
19 a/aa/g
18 R a/aa/g
20 R a/aa/g
@@ -88,14 +88,15 b' resolving manifests'
88 overwrite None partial False
88 overwrite None partial False
89 ancestor 924404dff337 local 94b33a1b7f2d+ remote 735846fee2d7
89 ancestor 924404dff337 local 94b33a1b7f2d+ remote 735846fee2d7
90 rev: versions differ -> m
90 rev: versions differ -> m
91 b: remote created -> g
91 a: remote copied to b -> m
92 getting b
92 copying a to b
93 merging rev
93 merging rev
94 my rev@94b33a1b7f2d+ other rev@735846fee2d7 ancestor rev@924404dff337
94 my rev@94b33a1b7f2d+ other rev@735846fee2d7 ancestor rev@924404dff337
95 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
95 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
96 (branch merge, don't forget to commit)
96 (branch merge, don't forget to commit)
97 --------------
97 --------------
98 M b
98 M b
99 a
99 C a
100 C a
100 --------------
101 --------------
101
102
@@ -105,14 +106,16 b' test L:nc a b R: W: - 6 not'
105 resolving manifests
106 resolving manifests
106 overwrite None partial False
107 overwrite None partial False
107 ancestor 924404dff337 local ac809aeed39a+ remote 97c705ade336
108 ancestor 924404dff337 local ac809aeed39a+ remote 97c705ade336
109 b: local copied to a -> m
108 rev: versions differ -> m
110 rev: versions differ -> m
109 merging rev
111 merging rev
110 my rev@ac809aeed39a+ other rev@97c705ade336 ancestor rev@924404dff337
112 my rev@ac809aeed39a+ other rev@97c705ade336 ancestor rev@924404dff337
111 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
113 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
112 (branch merge, don't forget to commit)
114 (branch merge, don't forget to commit)
113 --------------
115 --------------
116 M b
117 a
114 C a
118 C a
115 C b
116 --------------
119 --------------
117
120
118 --------------
121 --------------
@@ -121,17 +124,17 b' test L: R:nm a b W: - 7 get'
121 resolving manifests
124 resolving manifests
122 overwrite None partial False
125 overwrite None partial False
123 ancestor 924404dff337 local 94b33a1b7f2d+ remote e03727d2d66b
126 ancestor 924404dff337 local 94b33a1b7f2d+ remote e03727d2d66b
124 a: other deleted -> r
125 rev: versions differ -> m
127 rev: versions differ -> m
126 b: remote created -> g
128 a: remote moved to b -> m
129 copying a to b
127 removing a
130 removing a
128 getting b
129 merging rev
131 merging rev
130 my rev@94b33a1b7f2d+ other rev@e03727d2d66b ancestor rev@924404dff337
132 my rev@94b33a1b7f2d+ other rev@e03727d2d66b ancestor rev@924404dff337
131 1 files updated, 1 files merged, 1 files removed, 0 files unresolved
133 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
132 (branch merge, don't forget to commit)
134 (branch merge, don't forget to commit)
133 --------------
135 --------------
134 M b
136 M b
137 a
135 --------------
138 --------------
136
139
137 --------------
140 --------------
@@ -140,13 +143,15 b' test L:nm a b R: W: - 8 not'
140 resolving manifests
143 resolving manifests
141 overwrite None partial False
144 overwrite None partial False
142 ancestor 924404dff337 local ecf3cb2a4219+ remote 97c705ade336
145 ancestor 924404dff337 local ecf3cb2a4219+ remote 97c705ade336
146 b: local moved to a -> m
143 rev: versions differ -> m
147 rev: versions differ -> m
144 merging rev
148 merging rev
145 my rev@ecf3cb2a4219+ other rev@97c705ade336 ancestor rev@924404dff337
149 my rev@ecf3cb2a4219+ other rev@97c705ade336 ancestor rev@924404dff337
146 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
150 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
147 (branch merge, don't forget to commit)
151 (branch merge, don't forget to commit)
148 --------------
152 --------------
149 C b
153 M b
154 a
150 --------------
155 --------------
151
156
152 --------------
157 --------------
General Comments 0
You need to be logged in to leave comments. Login now