diff -r 8a50fb0784a9 -r 6975cef3add1 mercurial/context.py --- a/mercurial/context.py Mon Jul 19 00:47:59 2021 +0200 +++ b/mercurial/context.py Mon Jul 19 01:44:24 2021 +0200 @@ -1838,9 +1838,15 @@ # wlock can invalidate the dirstate, so cache normal _after_ # taking the lock with self._repo.wlock(False): - if self._repo.dirstate.identity() == oldid: + dirstate = self._repo.dirstate + if dirstate.identity() == oldid: if fixup: - normal = self._repo.dirstate.normal + if dirstate.pendingparentchange(): + normal = lambda f: dirstate.update_file( + f, p1_tracked=True, wc_tracked=True + ) + else: + normal = dirstate.set_clean for f in fixup: normal(f) # write changes out explicitly, because nesting