diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -1367,7 +1367,7 @@ class localrepository(object): # if minimal phase was 0 we don't need to retract anything phases.retractboundary(self, targetphase, [n]) tr.close() - branchmap.updatecache(self) + branchmap.updatecache(self.filtered('served')) return n finally: if tr: @@ -2388,7 +2388,7 @@ class localrepository(object): # 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) + branchmap.updatecache(self.filtered('served')) 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 @@ -579,6 +579,7 @@ Commit and show expansion in original an invalid branchheads cache (served): tip differs c c: copy a:0045e12f6c5791aac80ca6cbfd97709a88307292 + invalid branchheads cache (served): tip differs overwriting c expanding keywords committed changeset 2:25736cf2f5cbe41f6be4e6784ef6ecf9f3bbcc7d $ cat a c @@ -762,7 +763,6 @@ Commit with multi-line message and custo $ hg --debug commit -l log -d '2 0' -u 'User Name ' invalid branchheads cache (served): tip differs a - invalid branchheads cache: tip differs invalid branchheads cache (served): tip differs overwriting a expanding keywords committed changeset 2:bb948857c743469b22bbf51f7ec8112279ca5d83 @@ -805,7 +805,6 @@ remove with status checks $ hg debugrebuildstate $ hg remove a $ hg --debug commit -m rma - invalid branchheads cache: tip differs committed changeset 3:d14c712653769de926994cf7fbb06c8fbd68f012 $ hg status ? c @@ -918,7 +917,6 @@ kwexpand x/a should abort $ hg --debug commit -m xa -d '3 0' -u 'User Name ' x/a x/a: copy a:779c764182ce5d43e2b1eb66ce06d7b47bfe342e - invalid branchheads cache: tip differs overwriting x/a expanding keywords committed changeset 3:b4560182a3f9a358179fd2d835c15e9da379c1e4 $ cat a diff --git a/tests/test-mq-symlinks.t b/tests/test-mq-symlinks.t --- a/tests/test-mq-symlinks.t +++ b/tests/test-mq-symlinks.t @@ -45,6 +45,7 @@ test updating a symlink popping updatelink now at: symlink.patch $ hg qpush --debug + invalid branchheads cache (served): tip differs applying updatelink patching file a a diff --git a/tests/test-phases.t b/tests/test-phases.t --- a/tests/test-phases.t +++ b/tests/test-phases.t @@ -177,16 +177,26 @@ check that branch cache with "unserved" $ ls ../push-dest/.hg/cache/branchheads* ../push-dest/.hg/cache/branchheads-served + $ cat ../push-dest/.hg/cache/branchheads-served + 6d6770faffce199f1fddd1cf87f6f026138cf061 6 465891ffab3c47a3c23792f7dc84156e19a90722 + b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e default + 6d6770faffce199f1fddd1cf87f6f026138cf061 default + $ hg heads -R ../push-dest --template '{rev}:{node} {phase}\n' #update visible cache too + 6:6d6770faffce199f1fddd1cf87f6f026138cf061 draft + 5:2713879da13d6eea1ff22b442a5a87cb31a7ce6a secret + 3:b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e draft + $ ls ../push-dest/.hg/cache/branchheads* + ../push-dest/.hg/cache/branchheads-served ../push-dest/.hg/cache/branchheads-visible + $ cat ../push-dest/.hg/cache/branchheads-served + 6d6770faffce199f1fddd1cf87f6f026138cf061 6 465891ffab3c47a3c23792f7dc84156e19a90722 + b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e default + 6d6770faffce199f1fddd1cf87f6f026138cf061 default $ cat ../push-dest/.hg/cache/branchheads-visible 6d6770faffce199f1fddd1cf87f6f026138cf061 6 b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e default 2713879da13d6eea1ff22b442a5a87cb31a7ce6a default 6d6770faffce199f1fddd1cf87f6f026138cf061 default - $ cat ../push-dest/.hg/cache/branchheads-served - cf9fe039dfd67e829edf6522a45de057b5c86519 4 - b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e default - cf9fe039dfd67e829edf6522a45de057b5c86519 default Restore condition prior extra insertion.