Mercurial > evolve
diff hgext3rd/topic/__init__.py @ 6298:b4f9b7e468ee stable
topic: invalidate the topic cache when branchcache is invalidated
The branchmap is cleared in the superclass function, but I didn't see any sign
that this is ever cleared.
This fixes an issue in TortoiseHg where stale topic labels appear in certain
cases, such as if a commit has a topic and is stripped, and an unrelated commit
is pulled in from a remote repo. Additionally, it fixes an issue with the topic
display in TortoiseHg and cmdserver when using `hg rollback`. In the new test,
the result of the command that applies `topic2` without this fix was:
6 d (topic2)
5 c (topic2)
4 b (topic1)
0 a ()
The tie in was that rev 4 used to be `topic1` before the rollback. Also note
that without the fix, the final log command printed the following, even though
it showed no signs of `topic1`, and nothing should have changed:
active topic 'topic1' grew its first changeset
(see 'hg help topics' for more information)
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Tue, 04 Oct 2022 16:52:23 -0400 |
parents | 2b30ff6c8e82 |
children | b4df25613811 |
line wrap: on
line diff
--- a/hgext3rd/topic/__init__.py Thu Jul 14 16:39:49 2022 +0400 +++ b/hgext3rd/topic/__init__.py Tue Oct 04 16:52:23 2022 -0400 @@ -541,6 +541,10 @@ start=start, closed=closed) + def invalidatecaches(self): + self._topiccache.clear() + super(topicrepo, self).invalidatecaches() + def invalidatevolatilesets(self): # XXX we might be able to move this to something invalidated less often super(topicrepo, self).invalidatevolatilesets()