diff --git a/hgext/convert/hg.py b/hgext/convert/hg.py --- a/hgext/convert/hg.py +++ b/hgext/convert/hg.py @@ -8,8 +8,9 @@ import os, time +from mercurial.i18n import _ from mercurial.node import * -from mercurial import hg, revlog, util +from mercurial import hg, lock, revlog, util from common import NoRepo, commit, converter_source, converter_sink @@ -21,6 +22,16 @@ class mercurial_sink(converter_sink): self.repo = hg.repository(self.ui, path) except: raise NoRepo("could not open hg repo %s as sink" % path) + self.lock = None + self.wlock = None + + def before(self): + self.lock = self.repo.lock() + self.wlock = self.repo.wlock() + + def after(self): + self.lock = None + self.wlock = None def revmapfile(self): return os.path.join(self.path, ".hg", "shamap") @@ -72,6 +83,7 @@ class mercurial_sink(converter_sink): p2 = parents.pop(0) a = self.repo.rawcommit(files, text, commit.author, commit.date, hg.bin(p1), hg.bin(p2), extra=extra) + self.repo.dirstate.invalidate() text = "(octopus merge fixup)\n" p2 = hg.hex(self.repo.changelog.tip())