Mercurial > hg-stable
changeset 9533:e151b66bcf38
Merge with -crew-stable
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Wed, 07 Oct 2009 23:45:30 -0500 |
parents | ba8a86d86fd6 (current diff) 989cb39d1df4 (diff) |
children | f0417b6ff98a 7cea12e70129 |
files | |
diffstat | 1 files changed, 15 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/convert/hg.py Wed Oct 07 23:25:41 2009 -0500 +++ b/hgext/convert/hg.py Wed Oct 07 23:45:30 2009 -0500 @@ -248,8 +248,7 @@ return self.lastctx def parents(self, ctx): - return [p.node() for p in ctx.parents() - if p and self.keep(p.node())] + return [p for p in ctx.parents() if p and self.keep(p.node())] def getheads(self): if self.rev: @@ -275,20 +274,20 @@ if self.ignoreerrors: # calling getcopies() is a simple way to detect missing # revlogs and populate self.ignored - self.getcopies(ctx, files) + self.getcopies(ctx, parents, files) return [(f, rev) for f in files if f not in self.ignored], {} if self._changescache and self._changescache[0] == rev: m, a, r = self._changescache[1] else: - m, a, r = self.repo.status(parents[0], ctx.node())[:3] + m, a, r = self.repo.status(parents[0].node(), ctx.node())[:3] # getcopies() detects missing revlogs early, run it before # filtering the changes. - copies = self.getcopies(ctx, m + a) + copies = self.getcopies(ctx, parents, m + a) changes = [(name, rev) for name in m + a + r if name not in self.ignored] return sorted(changes), copies - def getcopies(self, ctx, files): + def getcopies(self, ctx, parents, files): copies = {} for name in files: if name in self.ignored: @@ -297,6 +296,14 @@ copysource, copynode = ctx.filectx(name).renamed() if copysource in self.ignored or not self.keep(copynode): continue + # Ignore copy sources not in parent revisions + found = False + for p in parents: + if copysource in p: + found = True + break + if not found: + continue copies[name] = copysource except TypeError: pass @@ -309,7 +316,7 @@ def getcommit(self, rev): ctx = self.changectx(rev) - parents = [hex(p) for p in self.parents(ctx)] + parents = [p.hex() for p in self.parents(ctx)] if self.saverev: crev = rev else: @@ -332,7 +339,7 @@ changes = [], ctx.manifest().keys(), [] else: i = i or 0 - changes = self.repo.status(parents[i], ctx.node())[:3] + changes = self.repo.status(parents[i].node(), ctx.node())[:3] changes = [[f for f in l if f not in self.ignored] for l in changes] if i == 0: