Mercurial > hg
view hgext/narrow/narrowtemplates.py @ 39933:d5498db5f86a
narrow: move the wireprotocol narrow capability name to core
We are trying to integrate the whole of narrow logic into core and it will be
helpful for upcoming patches to have these capability names in core. The next
patch will move the ellipses capability to core also.
The exact motivation is to know whether we are cloning a ellipses repo or not
and adding an ellipses repo requirement.
Differential Revision: https://phab.mercurial-scm.org/D4808
author | Pulkit Goyal <pulkit@yandex-team.ru> |
---|---|
date | Sun, 30 Sep 2018 03:42:35 +0530 |
parents | 05ded838c997 |
children | 45c18f7345c1 |
line wrap: on
line source
# 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 ( registrar, revlog, ) keywords = {} templatekeyword = registrar.templatekeyword(keywords) revsetpredicate = registrar.revsetpredicate() def _isellipsis(repo, rev): if repo.changelog.flags(rev) & revlog.REVIDX_ELLIPSIS: return True return False @templatekeyword('ellipsis', requires={'repo', 'ctx'}) def ellipsis(context, mapping): """String. 'ellipsis' if the change is an ellipsis node, else ''.""" repo = context.resource(mapping, 'repo') ctx = context.resource(mapping, 'ctx') if _isellipsis(repo, ctx.rev()): return 'ellipsis' return '' @templatekeyword('outsidenarrow', requires={'repo', 'ctx'}) def outsidenarrow(context, mapping): """String. 'outsidenarrow' if the change affects no tracked files, else ''.""" repo = context.resource(mapping, 'repo') ctx = context.resource(mapping, 'ctx') m = repo.narrowmatch() if not m.always(): if not any(m(f) for f in ctx.files()): return 'outsidenarrow' return '' @revsetpredicate('ellipsis()') def ellipsisrevset(repo, subset, x): """Changesets that are ellipsis nodes.""" return subset.filter(lambda r: _isellipsis(repo, r))