Mercurial > evolve
changeset 1889:d9b929bcc3ad
topicmap: ensure that 'served' view is updated with topicmap
There is multiple place that explicitly update the 'served' branchmap to ensure
it stay up to date. We ensure it use the proper topicmap in this case.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Mon, 14 Mar 2016 00:15:54 +0000 |
parents | dfaf0de6f4d8 |
children | e846b8f402d0 |
files | src/topic/__init__.py |
diffstat | 1 files changed, 12 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/topic/__init__.py Mon Mar 14 00:12:22 2016 +0000 +++ b/src/topic/__init__.py Mon Mar 14 00:15:54 2016 +0000 @@ -16,6 +16,7 @@ from mercurial.i18n import _ from mercurial import branchmap from mercurial import bundle2 +from mercurial import changegroup from mercurial import cmdutil from mercurial import commands from mercurial import context @@ -80,6 +81,10 @@ branchmap.branchcache = oldbranchcache branchmap._filename = oldfilename +def cgapply(orig, repo, *args, **kwargs): + with usetopicmap(repo): + return orig(repo, *args, **kwargs) + def reposetup(ui, repo): orig = repo.__class__ if not isinstance(repo, localrepo.localrepository): @@ -106,7 +111,8 @@ not self.currenttopic): # we are amending and need to remove a topic del ctx.extra()[constants.extrakey] - return orig.commitctx(self, ctx, error=error) + with usetopicmap(self): + return orig.commitctx(self, ctx, error=error) @property def topics(self): @@ -127,6 +133,10 @@ branchmap.updatecache(self) return self._topiccaches[self.filtername] + def destroyed(self, *args, **kwargs): + with usetopicmap(self): + return super(topicrepo, self).destroyed(*args, **kwargs) + def invalidatecaches(self): super(topicrepo, self).invalidatecaches() if '_topiccaches' in vars(self.unfiltered()): @@ -308,6 +318,7 @@ bundle2.handlecheckheads.params = frozenset() # we need a proper wrape b2 part stuff bundle2.parthandlermapping['check:heads'] = bundle2.handlecheckheads extensions.wrapfunction(exchange, '_pushb2phases', discovery._pushb2phases) +extensions.wrapfunction(changegroup.cg1unpacker, 'apply', cgapply) exchange.b2partsgenmapping['phase'] = exchange._pushb2phases topicrevset.modsetup() cmdutil.summaryhooks.add('topic', summaryhook)