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)