diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -2395,7 +2395,11 @@ class localrepository(object): tr.close() if changesets > 0: - branchmap.updatecache(self) + if srctype != 'strip': + # During strip, branchcache is invalid but coming call to + # `destroyed` will repair it. + # In other case we can safely update cache on disk. + branchmap.updatecache(self) def runhooks(): # forcefully update the on-disk branch cache self.ui.debug("updating the branch cache\n") diff --git a/tests/test-keyword.t b/tests/test-keyword.t --- a/tests/test-keyword.t +++ b/tests/test-keyword.t @@ -507,7 +507,6 @@ amend $ hg -q commit -d '14 1' -m 'prepare amend' $ hg --debug commit --amend -d '15 1' -m 'amend without changes' | grep keywords - invalidating branch cache (tip differs) overwriting a expanding keywords $ hg -q id 67d8c481a6be