Show More
@@ -272,25 +272,19 b' def _changesetforwardcopies(a, b, match)' | |||||
272 | heapq.heapify(work) |
|
272 | heapq.heapify(work) | |
273 | alwaysmatch = match.always() |
|
273 | alwaysmatch = match.always() | |
274 | while work: |
|
274 | while work: | |
275 |
r, i1, copies |
|
275 | r, i1, copies = heapq.heappop(work) | |
276 | if work and work[0][0] == r: |
|
276 | if work and work[0][0] == r: | |
277 | # We are tracing copies from both parents |
|
277 | # We are tracing copies from both parents | |
278 | r, i2, copies2 = heapq.heappop(work) |
|
278 | r, i2, copies2 = heapq.heappop(work) | |
279 | copies = {} |
|
279 | for dst, src in copies2.items(): | |
280 | allcopies = set(copies1) | set(copies2) |
|
|||
281 | for dst in allcopies: |
|
|||
282 | # Unlike when copies are stored in the filelog, we consider |
|
280 | # Unlike when copies are stored in the filelog, we consider | |
283 | # it a copy even if the destination already existed on the |
|
281 | # it a copy even if the destination already existed on the | |
284 | # other branch. It's simply too expensive to check if the |
|
282 | # other branch. It's simply too expensive to check if the | |
285 | # file existed in the manifest. |
|
283 | # file existed in the manifest. | |
286 |
if dst in copies |
|
284 | if dst not in copies: | |
287 |
# If it was copied on the p1 side, |
|
285 | # If it was copied on the p1 side, leave it as copied from | |
288 | # that side, even if it was also copied on the p2 side. |
|
286 | # that side, even if it was also copied on the p2 side. | |
289 | copies[dst] = copies1[dst] |
|
|||
290 | else: |
|
|||
291 | copies[dst] = copies2[dst] |
|
287 | copies[dst] = copies2[dst] | |
292 | else: |
|
|||
293 | copies = copies1 |
|
|||
294 | if r == b.rev(): |
|
288 | if r == b.rev(): | |
295 | _filter(a, b, copies) |
|
289 | _filter(a, b, copies) | |
296 | return copies |
|
290 | return copies |
General Comments 0
You need to be logged in to leave comments.
Login now