Mercurial > hg-stable
changeset 13000:417f3c27983b stable
commit: search both parents for missing copy revision (issue2484)
raise a proper abort if we can't find an ancestor
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Mon, 15 Nov 2010 17:04:55 -0600 |
parents | acd69df118ab |
children | cc4e13c92dfa ea68947ad0ce |
files | mercurial/localrepo.py |
diffstat | 1 files changed, 10 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/localrepo.py Mon Nov 15 17:00:43 2010 -0600 +++ b/mercurial/localrepo.py Mon Nov 15 17:04:55 2010 -0600 @@ -819,15 +819,20 @@ if not crev: self.ui.debug(" %s: searching for copy revision for %s\n" % (fname, cfname)) - for ancestor in self['.'].ancestors(): + for ancestor in self[None].ancestors(): if cfname in ancestor: crev = ancestor[cfname].filenode() break - self.ui.debug(" %s: copy %s:%s\n" % (fname, cfname, hex(crev))) - meta["copy"] = cfname - meta["copyrev"] = hex(crev) - fparent1, fparent2 = nullid, newfparent + if crev: + self.ui.debug(" %s: copy %s:%s\n" % (fname, cfname, hex(crev))) + meta["copy"] = cfname + meta["copyrev"] = hex(crev) + fparent1, fparent2 = nullid, newfparent + else: + self.ui.warn(_("warning: can't find ancestor for '%s' " + "copied from '%s'!\n") % (fname, cfname)) + elif fparent2 != nullid: # is one parent an ancestor of the other? fparentancestor = flog.ancestor(fparent1, fparent2)