strip: do not update branchcache during strip (
issue3745)
At this moment, the cache is invalid, and will be thrown away.
Later the strip function will call the `localrepo.destroyed` method
that will update the branchmap cache.
--- a/mercurial/localrepo.py Wed Dec 26 15:04:07 2012 -0800
+++ b/mercurial/localrepo.py Fri Dec 28 00:02:40 2012 +0100
@@ -2395,7 +2395,11 @@
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")
--- a/tests/test-keyword.t Wed Dec 26 15:04:07 2012 -0800
+++ b/tests/test-keyword.t Fri Dec 28 00:02:40 2012 +0100
@@ -507,7 +507,6 @@
$ 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