diff -r 12bc7f06fc41 -r 6f63c47cbb86 hgext/mq.py --- a/hgext/mq.py Fri Sep 05 11:34:29 2014 -0700 +++ b/hgext/mq.py Fri Sep 05 11:36:20 2014 -0700 @@ -816,12 +816,14 @@ merged.append(f) else: removed.append(f) + repo.dirstate.beginparentchange() for f in removed: repo.dirstate.remove(f) for f in merged: repo.dirstate.merge(f) p1, p2 = repo.dirstate.parents() repo.setparents(p1, merge) + repo.dirstate.endparentchange() if all_files and '.hgsubstate' in all_files: wctx = repo[None] @@ -1451,7 +1453,7 @@ if keepchanges and tobackup: raise util.Abort(_("local changes found, refresh first")) self.backup(repo, tobackup) - + repo.dirstate.beginparentchange() for f in a: util.unlinkpath(repo.wjoin(f), ignoremissing=True) repo.dirstate.drop(f) @@ -1460,6 +1462,7 @@ repo.wwrite(f, fctx.data(), fctx.flags()) repo.dirstate.normal(f) repo.setparents(qp, nullid) + repo.dirstate.endparentchange() for patch in reversed(self.applied[start:end]): self.ui.status(_("popping %s\n") % patch.name) del self.applied[start:end] @@ -1599,6 +1602,7 @@ bmlist = repo[top].bookmarks() try: + repo.dirstate.beginparentchange() if diffopts.git or diffopts.upgrade: copies = {} for dst in a: @@ -1651,6 +1655,7 @@ # assumes strip can roll itself back if interrupted repo.setparents(*cparents) + repo.dirstate.endparentchange() self.applied.pop() self.applieddirty = True strip(self.ui, repo, [top], update=False, backup=False)