##// END OF EJS Templates
merge with mainline
Benoit Boissinot -
r3171:70627786 merge default
parent child Browse files
Show More
@@ -133,6 +133,10 b' def findcopies(repo, m1, m2, limit):'
133 Find moves and copies between m1 and m2 back to limit linkrev
133 Find moves and copies between m1 and m2 back to limit linkrev
134 """
134 """
135
135
136 # avoid silly behavior for update from empty dir
137 if not m1:
138 return {}
139
136 dcopies = repo.dirstate.copies()
140 dcopies = repo.dirstate.copies()
137 copy = {}
141 copy = {}
138 match = {}
142 match = {}
@@ -167,7 +171,12 b' def findcopies(repo, m1, m2, limit):'
167
171
168 return copy
172 return copy
169
173
170 def manifestmerge(ui, m1, m2, ma, overwrite, backwards, partial):
174 def filtermanifest(man, partial):
175 if partial:
176 for k in man.keys():
177 if not partial(k): del man[k]
178
179 def manifestmerge(ui, m1, m2, ma, overwrite, backwards):
171 """
180 """
172 Merge manifest m1 with m2 using ancestor ma and generate merge action list
181 Merge manifest m1 with m2 using ancestor ma and generate merge action list
173 """
182 """
@@ -183,13 +192,6 b' def manifestmerge(ui, m1, m2, ma, overwr'
183 ui.debug(" %s: %s -> %s\n" % (f, msg, m))
192 ui.debug(" %s: %s -> %s\n" % (f, msg, m))
184 action.append((f, m) + args)
193 action.append((f, m) + args)
185
194
186 # Filter manifests
187 if partial:
188 for f in m1.keys():
189 if not partial(f): del m1[f]
190 for f in m2.keys():
191 if not partial(f): del m2[f]
192
193 # Compare manifests
195 # Compare manifests
194 for f, n in m1.iteritems():
196 for f, n in m1.iteritems():
195 if f in m2:
197 if f in m2:
@@ -356,19 +358,20 b' def update(repo, node, branchmerge=False'
356 (short(p1), short(p2), short(pa)))
358 (short(p1), short(p2), short(pa)))
357
359
358 action = []
360 action = []
359
360 copy = {}
361 copy = {}
361 if not (backwards or overwrite):
362 copy = findcopies(repo, m1, m2, repo.changelog.rev(pa))
363
362
364 m1 = workingmanifest(repo, m1, status)
363 m1 = workingmanifest(repo, m1, status)
364 filtermanifest(m1, partial)
365 filtermanifest(m2, partial)
365
366
366 if not force:
367 if not force:
367 checkunknown(repo, m2, status)
368 checkunknown(repo, m2, status)
368 if not branchmerge:
369 if not branchmerge:
369 action += forgetremoved(m2, status)
370 action += forgetremoved(m2, status)
371 if not (backwards or overwrite):
372 copy = findcopies(repo, m1, m2, repo.changelog.rev(pa))
370
373
371 action += manifestmerge(repo.ui, m1, m2, ma, overwrite, backwards, partial)
374 action += manifestmerge(repo.ui, m1, m2, ma, overwrite, backwards)
372 del m1, m2, ma
375 del m1, m2, ma
373
376
374 ### apply phase
377 ### apply phase
General Comments 0
You need to be logged in to leave comments. Login now