mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 17:27:53 +03:00
remotebranches: add remotebranches template keyword
Return names of all remote branches heads on a revision.
This commit is contained in:
parent
f0fbb42e99
commit
9c1e5dd717
4
README
4
README
@ -42,3 +42,7 @@ a repository whose path is listed in the ``upstream`` field of the
|
||||
``remotebranches.upstream`` setting, it defaults to behaving
|
||||
identically to ``pushed()``. The ``remotebranches()`` revset simply
|
||||
returns all remote branches head changesets.
|
||||
|
||||
When template keywords can be registered (Mercurial 1.5 and later),
|
||||
remotebranches adds a ``remotebranches`` keyword returning a space
|
||||
separated list of all names of remote branches heads on a changeset.
|
@ -15,6 +15,13 @@ try:
|
||||
except ImportError:
|
||||
revset = None
|
||||
|
||||
try:
|
||||
from mercurial import templatekw
|
||||
# force demandimport to load templatekw
|
||||
templatekw.keywords
|
||||
except ImportError:
|
||||
templatekw = None
|
||||
|
||||
from hgext import schemes
|
||||
|
||||
def reposetup(ui, repo):
|
||||
@ -207,3 +214,19 @@ if revset is not None:
|
||||
revset.symbols.update({'upstream': upstream,
|
||||
'pushed': pushed,
|
||||
'remotebranches': remotebranchesrevset})
|
||||
|
||||
def remotebrancheskw(**args):
|
||||
""":remotebranches: List of strings. Any remote branch associated
|
||||
with the changeset.
|
||||
"""
|
||||
repo, ctx = args['repo'], args['ctx']
|
||||
remotenodes = {}
|
||||
for name, node in repo._remotebranches.iteritems():
|
||||
remotenodes.setdefault(node, []).append(name)
|
||||
if ctx.node() in remotenodes:
|
||||
names = sorted(remotenodes[ctx.node()])
|
||||
return templatekw.showlist('remotebranch', names,
|
||||
plural='remotebranches', **args)
|
||||
|
||||
if templatekw is not None:
|
||||
templatekw.keywords['remotebranches'] = remotebrancheskw
|
||||
|
@ -199,9 +199,10 @@ but configured, it'll do the expected thing:
|
||||
| | summary: add d
|
||||
| |
|
||||
|
||||
Test remotebranches revset
|
||||
Test remotebranches revset and keyword
|
||||
|
||||
$ hg log -r 'remotebranches()' --template '{rev}:{node|short} {tags}\n'
|
||||
$ hg log -r 'remotebranches()' \
|
||||
> --template '{rev}:{node|short} {remotebranches}\n'
|
||||
1:7c3bad9141dc alpha/default
|
||||
2:95cb4ab9fe1d alpha/stable
|
||||
3:78f83396d79e beta/default
|
||||
|
Loading…
Reference in New Issue
Block a user