diff -r 41e9d58ec56f -r 12bc7f06fc41 mercurial/localrepo.py --- a/mercurial/localrepo.py Mon Sep 08 20:57:44 2014 +0200 +++ b/mercurial/localrepo.py Fri Sep 05 11:34:29 2014 -0700 @@ -1102,7 +1102,11 @@ return l def unlock(): - self.dirstate.write() + if self.dirstate.pendingparentchange(): + self.dirstate.invalidate() + else: + self.dirstate.write() + self._filecache['dirstate'].refresh() l = self._lock(self.vfs, "wlock", wait, unlock,