Mercurial > hg
changeset 39213:303dae0136b0
fastannotate: rip out specialized support for remotefilelog
remotefilelog can choose to collaborate with fastannotate for now if
it needs to, and in the future when we make good on our longstanding
desire to move remotefilelog-like features in-house we'll make sure
things are well-supported via a reasonable interface.
Differential Revision: https://phab.mercurial-scm.org/D4201
author | Augie Fackler <augie@google.com> |
---|---|
date | Thu, 09 Aug 2018 15:05:43 -0400 |
parents | ca053fc7efc5 |
children | 8da20fc9fc07 |
files | hgext/fastannotate/__init__.py hgext/fastannotate/protocol.py hgext/fastannotate/support.py |
diffstat | 3 files changed, 8 insertions(+), 60 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/fastannotate/__init__.py Thu Aug 09 14:56:29 2018 -0400 +++ b/hgext/fastannotate/__init__.py Thu Aug 09 15:05:43 2018 -0400 @@ -53,19 +53,11 @@ serverbuildondemand = True # update local annotate cache from remote on demand - # (default: True for remotefilelog repo, False otherwise) - client = True + client = False # path to use when connecting to the remote server (default: default) remotepath = default - # share sshpeer with remotefilelog. this would allow fastannotate to peek - # into remotefilelog internals, and steal its sshpeer, or in the reversed - # direction: donate its sshpeer to remotefilelog. disable this if - # fastannotate and remotefilelog should not share a sshpeer when their - # endpoints are different and incompatible. (default: True) - clientsharepeer = True - # minimal length of the history of a file required to fetch linelog from # the server. (default: 10) clientfetchthreshold = 10 @@ -108,12 +100,8 @@ # # * rename the config knob for updating the local cache from a remote server # -# * remove the remotefilelog-peer-sharing functionality -# # * move various global-setup bits to extsetup() or reposetup() # -# * assume repo.requirements will always exist -# # * move `flock` based locking to a common area # # * revise wireprotocol for sharing annotate files @@ -154,7 +142,7 @@ configitem('fastannotate', 'modes', default=['fastannotate']) configitem('fastannotate', 'server', default=False) configitem('fastannotate', 'useflock', default=True) -configitem('fastannotate', 'client') +configitem('fastannotate', 'client', default=False) configitem('fastannotate', 'unfilteredrepo', default=True) configitem('fastannotate', 'defaultformat', default=['number']) configitem('fastannotate', 'perfhack', default=False) @@ -162,7 +150,6 @@ configitem('fastannotate', 'forcetext', default=True) configitem('fastannotate', 'forcefollow', default=True) configitem('fastannotate', 'clientfetchthreshold', default=10) -configitem('fastannotate', 'clientsharepeer', default=True) configitem('fastannotate', 'serverbuildondemand', default=True) configitem('fastannotate', 'remotepath', default='default') @@ -188,7 +175,6 @@ elif name == 'fctx': from . import support support.replacefctxannotate() - support.replaceremotefctxannotate() commands.wrapdefault() else: raise hgerror.Abort(_('fastannotate: invalid mode: %s') % name) @@ -203,9 +189,5 @@ localrepo.localrepository._wlockfreeprefix.add('fastannotate/') def reposetup(ui, repo): - client = ui.configbool('fastannotate', 'client', default=None) - if client is None: - if util.safehasattr(repo, 'requirements'): - client = 'remotefilelog' in repo.requirements - if client: + if ui.configbool('fastannotate', 'client'): protocol.clientreposetup(ui, repo)
--- a/hgext/fastannotate/protocol.py Thu Aug 09 14:56:29 2018 -0400 +++ b/hgext/fastannotate/protocol.py Thu Aug 09 15:05:43 2018 -0400 @@ -134,33 +134,14 @@ def annotatepeer(repo): ui = repo.ui - # fileservice belongs to remotefilelog - fileservice = getattr(repo, 'fileservice', None) - sharepeer = ui.configbool('fastannotate', 'clientsharepeer', True) - - if sharepeer and fileservice: - ui.debug('fastannotate: using remotefilelog connection pool\n') - conn = repo.connectionpool.get(repo.fallbackpath) - peer = conn.peer - stolen = True - else: - remotepath = ui.expandpath( - ui.config('fastannotate', 'remotepath', 'default')) - peer = hg.peer(ui, {}, remotepath) - stolen = False + remotepath = ui.expandpath( + ui.config('fastannotate', 'remotepath', 'default')) + peer = hg.peer(ui, {}, remotepath) try: - # Note: fastannotate requests should never trigger a remotefilelog - # "getfiles" request, because "getfiles" puts the stream into a state - # that does not exit. See "clientfetch": it does "getannotate" before - # any hg stuff that could potentially trigger a "getfiles". yield peer finally: - if not stolen: - for i in ['close', 'cleanup']: - getattr(peer, i, lambda: None)() - else: - conn.__exit__(None, None, None) + peer.close() def clientfetch(repo, paths, lastnodemap=None, peer=None): """download annotate cache from the server for paths""" @@ -209,16 +190,10 @@ master = repo.ui.config('fastannotate', 'mainbranch') or 'default' - if 'remotefilelog' in repo.requirements: - ctx = scmutil.revsingle(repo, master) - f = lambda path: len(ctx[path].ancestormap()) - else: - f = lambda path: len(repo.file(path)) - result = [] for path in paths: try: - if f(path) >= threshold: + if len(repo.file(path)) >= threshold: result.append(path) except Exception: # file not found etc. result.append(path)
--- a/hgext/fastannotate/support.py Thu Aug 09 14:56:29 2018 -0400 +++ b/hgext/fastannotate/support.py Thu Aug 09 15:05:43 2018 -0400 @@ -120,12 +120,3 @@ def replacefctxannotate(): extensions.wrapfunction(hgcontext.basefilectx, 'annotate', _fctxannotate) - -def replaceremotefctxannotate(): - try: - r = extensions.find('remotefilelog') - except KeyError: - return - else: - extensions.wrapfunction(r.remotefilectx.remotefilectx, 'annotate', - _remotefctxannotate)