##// END OF EJS Templates
wireprotov2: client support for advertising redirect targets...
wireprotov2: client support for advertising redirect targets With the server now able to emit a redirect target descriptor, we can start to teach the client to recognize it. This commit implements support for filtering the advertised redirect targets against supported features and for advertising compatible redirect targets as part of command requests. It also adds the minimal boilerplate required to fail when a content redirect is seen. The server doesn't yet do anything with the advertised redirect targets. And the client can't yet follow redirects if it did. But at least we're putting bytes on the wire. Differential Revision: https://phab.mercurial-scm.org/D4776

File last commit:

r39000:05ded838 default
r40060:86b22a4c default
Show More
narrowtemplates.py
48 lines | 1.5 KiB | text/x-python | PythonLexer
/ hgext / narrow / narrowtemplates.py
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 # narrowtemplates.py - added template keywords for narrow clones
#
# Copyright 2017 Google, Inc.
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from __future__ import absolute_import
from mercurial import (
Augie Fackler
narrowtemplates: update to use registrar mechanism...
r36108 registrar,
Augie Fackler
narrow: move from ELLIPSIS_NODE_FLAG to revlog.REVIDX_ELLIPSIS...
r36107 revlog,
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 )
Augie Fackler
narrowtemplates: update to use registrar mechanism...
r36108 keywords = {}
templatekeyword = registrar.templatekeyword(keywords)
revsetpredicate = registrar.revsetpredicate()
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 def _isellipsis(repo, rev):
Augie Fackler
narrow: move from ELLIPSIS_NODE_FLAG to revlog.REVIDX_ELLIPSIS...
r36107 if repo.changelog.flags(rev) & revlog.REVIDX_ELLIPSIS:
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 return True
return False
Yuya Nishihara
templatekw: switch non-showlist template keywords to new API
r36531 @templatekeyword('ellipsis', requires={'repo', 'ctx'})
def ellipsis(context, mapping):
Yuya Nishihara
narrow: drop redundant templatekw/revset names from help text...
r36457 """String. 'ellipsis' if the change is an ellipsis node, else ''."""
Yuya Nishihara
templatekw: switch non-showlist template keywords to new API
r36531 repo = context.resource(mapping, 'repo')
ctx = context.resource(mapping, 'ctx')
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 if _isellipsis(repo, ctx.rev()):
return 'ellipsis'
return ''
Yuya Nishihara
templatekw: switch non-showlist template keywords to new API
r36531 @templatekeyword('outsidenarrow', requires={'repo', 'ctx'})
def outsidenarrow(context, mapping):
Yuya Nishihara
narrow: drop redundant templatekw/revset names from help text...
r36457 """String. 'outsidenarrow' if the change affects no tracked files,
else ''."""
Yuya Nishihara
templatekw: switch non-showlist template keywords to new API
r36531 repo = context.resource(mapping, 'repo')
ctx = context.resource(mapping, 'ctx')
Martin von Zweigbergk
narrow: drop safehasattr() checks for always-present repo.narrowmatch...
r36490 m = repo.narrowmatch()
if not m.always():
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 if not any(m(f) for f in ctx.files()):
return 'outsidenarrow'
return ''
Pulkit Goyal
narrow: add '()' to ellipsis in the revset help...
r39000 @revsetpredicate('ellipsis()')
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 def ellipsisrevset(repo, subset, x):
Yuya Nishihara
narrow: drop redundant templatekw/revset names from help text...
r36457 """Changesets that are ellipsis nodes."""
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 return subset.filter(lambda r: _isellipsis(repo, r))