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
|
``remotebranches.upstream`` setting, it defaults to behaving
|
||||||
identically to ``pushed()``. The ``remotebranches()`` revset simply
|
identically to ``pushed()``. The ``remotebranches()`` revset simply
|
||||||
returns all remote branches head changesets.
|
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:
|
except ImportError:
|
||||||
revset = None
|
revset = None
|
||||||
|
|
||||||
|
try:
|
||||||
|
from mercurial import templatekw
|
||||||
|
# force demandimport to load templatekw
|
||||||
|
templatekw.keywords
|
||||||
|
except ImportError:
|
||||||
|
templatekw = None
|
||||||
|
|
||||||
from hgext import schemes
|
from hgext import schemes
|
||||||
|
|
||||||
def reposetup(ui, repo):
|
def reposetup(ui, repo):
|
||||||
@ -207,3 +214,19 @@ if revset is not None:
|
|||||||
revset.symbols.update({'upstream': upstream,
|
revset.symbols.update({'upstream': upstream,
|
||||||
'pushed': pushed,
|
'pushed': pushed,
|
||||||
'remotebranches': remotebranchesrevset})
|
'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
|
| | 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
|
1:7c3bad9141dc alpha/default
|
||||||
2:95cb4ab9fe1d alpha/stable
|
2:95cb4ab9fe1d alpha/stable
|
||||||
3:78f83396d79e beta/default
|
3:78f83396d79e beta/default
|
||||||
|
Loading…
Reference in New Issue
Block a user