Show More
@@ -274,7 +274,7 b' class mercurial_source(converter_source)' | |||||
274 | if self.ignoreerrors: |
|
274 | if self.ignoreerrors: | |
275 | # calling getcopies() is a simple way to detect missing |
|
275 | # calling getcopies() is a simple way to detect missing | |
276 | # revlogs and populate self.ignored |
|
276 | # revlogs and populate self.ignored | |
277 | self.getcopies(ctx, files) |
|
277 | self.getcopies(ctx, parents, files) | |
278 | return [(f, rev) for f in files if f not in self.ignored], {} |
|
278 | return [(f, rev) for f in files if f not in self.ignored], {} | |
279 | if self._changescache and self._changescache[0] == rev: |
|
279 | if self._changescache and self._changescache[0] == rev: | |
280 | m, a, r = self._changescache[1] |
|
280 | m, a, r = self._changescache[1] | |
@@ -282,12 +282,12 b' class mercurial_source(converter_source)' | |||||
282 | m, a, r = self.repo.status(parents[0].node(), ctx.node())[:3] |
|
282 | m, a, r = self.repo.status(parents[0].node(), ctx.node())[:3] | |
283 | # getcopies() detects missing revlogs early, run it before |
|
283 | # getcopies() detects missing revlogs early, run it before | |
284 | # filtering the changes. |
|
284 | # filtering the changes. | |
285 | copies = self.getcopies(ctx, m + a) |
|
285 | copies = self.getcopies(ctx, parents, m + a) | |
286 | changes = [(name, rev) for name in m + a + r |
|
286 | changes = [(name, rev) for name in m + a + r | |
287 | if name not in self.ignored] |
|
287 | if name not in self.ignored] | |
288 | return sorted(changes), copies |
|
288 | return sorted(changes), copies | |
289 |
|
289 | |||
290 | def getcopies(self, ctx, files): |
|
290 | def getcopies(self, ctx, parents, files): | |
291 | copies = {} |
|
291 | copies = {} | |
292 | for name in files: |
|
292 | for name in files: | |
293 | if name in self.ignored: |
|
293 | if name in self.ignored: | |
@@ -296,6 +296,14 b' class mercurial_source(converter_source)' | |||||
296 | copysource, copynode = ctx.filectx(name).renamed() |
|
296 | copysource, copynode = ctx.filectx(name).renamed() | |
297 | if copysource in self.ignored or not self.keep(copynode): |
|
297 | if copysource in self.ignored or not self.keep(copynode): | |
298 | continue |
|
298 | continue | |
|
299 | # Ignore copy sources not in parent revisions | |||
|
300 | found = False | |||
|
301 | for p in parents: | |||
|
302 | if copysource in p: | |||
|
303 | found = True | |||
|
304 | break | |||
|
305 | if not found: | |||
|
306 | continue | |||
299 | copies[name] = copysource |
|
307 | copies[name] = copysource | |
300 | except TypeError: |
|
308 | except TypeError: | |
301 | pass |
|
309 | pass |
General Comments 0
You need to be logged in to leave comments.
Login now