Mercurial > evolve
changeset 4459:d46360b8c0dc stable
topic: make topics compatible with branchmap refactor
See https://phab.mercurial-scm.org/D5290
author | Martijn Pieters <mj@octobus.net> |
---|---|
date | Wed, 21 Nov 2018 12:00:46 +0000 |
parents | 9b0cde5efbc9 |
children | dd679f5fc96f |
files | hgext3rd/serverminitopic.py hgext3rd/topic/topicmap.py |
diffstat | 2 files changed, 26 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext3rd/serverminitopic.py Wed Mar 27 20:52:30 2019 +0800 +++ b/hgext3rd/serverminitopic.py Wed Nov 21 12:00:46 2018 +0000 @@ -146,6 +146,10 @@ return hasminitopic(repo) and repo.filtername not in _publiconly class _topiccache(branchmap.branchcache): # combine me with branchmap.branchcache + @classmethod + def fromfile(cls, repo): + orig = super(_topiccache, cls).fromfile + return wrapread(orig, repo) def __init__(self, *args, **kwargs): # super() call may fail otherwise @@ -226,6 +230,12 @@ def uisetup(ui): wrapclass(branchmap, 'branchcache', _topiccache) - extensions.wrapfunction(branchmap, 'read', wrapread) + try: + # Mercurial 4.8 and older + extensions.wrapfunction(branchmap, 'read', wrapread) + except AttributeError: + # Mercurial 4.9; branchcache.fromfile now takes care of this + # which is alredy defined on _topiccache + pass extensions.wrapfunction(wireproto, '_capabilities', wireprotocaps) extensions.wrapfunction(context.changectx, 'branch', topicbranch)
--- a/hgext3rd/topic/topicmap.py Wed Mar 27 20:52:30 2019 +0800 +++ b/hgext3rd/topic/topicmap.py Wed Nov 21 12:00:46 2018 +0000 @@ -118,7 +118,21 @@ class topiccache(_topiccache, branchmap.branchcache): pass branchmap.branchcache = topiccache - extensions.wrapfunction(branchmap, 'updatecache', _wrapupdatebmcache) + + try: + # Mercurial 4.9 + class remotetopiccache(_topiccache, branchmap.remotebranchcache): + pass + branchmap.remotebranchcache = remotetopiccache + + def _wrapupdatebmcachemethod(orig, self, repo): + # pass in the bound method as the original + return _wrapupdatebmcache(orig.__get__(self), repo) + extensions.wrapfunction(branchmap.BranchMapCache, 'updatecache', _wrapupdatebmcachemethod) + except AttributeError: + # Mercurial 4.8 and before + extensions.wrapfunction(branchmap, 'updatecache', _wrapupdatebmcache) + def _wrapupdatebmcache(orig, repo): previous = getattr(repo, '_autobranchmaptopic', False)