diff -r 12bc7f06fc41 -r 6f63c47cbb86 mercurial/localrepo.py --- a/mercurial/localrepo.py Fri Sep 05 11:34:29 2014 -0700 +++ b/mercurial/localrepo.py Fri Sep 05 11:36:20 2014 -0700 @@ -758,6 +758,7 @@ return self[changeid].parents() def setparents(self, p1, p2=nullid): + self.dirstate.beginparentchange() copies = self.dirstate.setparents(p1, p2) pctx = self[p1] if copies: @@ -771,6 +772,7 @@ for f, s in sorted(self.dirstate.copies().items()): if f not in pctx and s not in pctx: self.dirstate.copy(None, f) + self.dirstate.endparentchange() def filectx(self, path, changeid=None, fileid=None): """changeid can be a changeset revision, node, or tag.