D5486: branches: add -r option to show branch name(s) of a given rev (issue5948)
navaneeth.suresh (Navaneeth Suresh)
phabricator at mercurial-scm.org
Thu Dec 27 16:02:14 UTC 2018
navaneeth.suresh created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D5486
AFFECTED FILES
mercurial/commands.py
tests/test-branches.t
tests/test-completion.t
CHANGE DETAILS
diff --git a/tests/test-completion.t b/tests/test-completion.t
--- a/tests/test-completion.t
+++ b/tests/test-completion.t
@@ -238,7 +238,7 @@
bisect: reset, good, bad, skip, extend, command, noupdate
bookmarks: force, rev, delete, rename, inactive, list, template
branch: force, clean, rev
- branches: active, closed, template
+ branches: active, closed, rev, template
bundle: force, rev, branch, base, all, type, ssh, remotecmd, insecure
cat: output, rev, decode, include, exclude, template
clone: noupdate, updaterev, rev, branch, pull, uncompressed, stream, ssh, remotecmd, insecure
diff --git a/tests/test-branches.t b/tests/test-branches.t
--- a/tests/test-branches.t
+++ b/tests/test-branches.t
@@ -157,6 +157,18 @@
summary: Adding b branch
+---- going to test branch listing by rev
+ $ hg branches -r0
+ default 0:19709c5a4e75 (inactive)
+ $ hg branches -qr0
+ default
+--- now more than one rev
+ $ hg branches -r2:5
+ b 4:aee39cd168d0
+ a 5:d8cbc61dbaa6 (inactive)
+ $ hg branches -qr2:5
+ b
+ a
---- going to test branch closing
$ hg branches
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -1129,6 +1129,7 @@
[('a', 'active', False,
_('show only branches that have unmerged heads (DEPRECATED)')),
('c', 'closed', False, _('show normal and closed branches')),
+ ('r', 'rev', [], _('show branch name(s) of the given rev'))
] + formatteropts,
_('[-c]'),
helpcategory=command.CATEGORY_CHANGE_ORGANIZATION,
@@ -1158,13 +1159,22 @@
"""
opts = pycompat.byteskwargs(opts)
+ revs = opts.get('rev')
+ selectedbranches = None
+ if revs:
+ revs = scmutil.revrange(repo, revs)
+ getbi = repo.revbranchcache().branchinfo
+ selectedbranches = {getbi(r)[0] for r in revs}
+
ui.pager('branches')
fm = ui.formatter('branches', opts)
hexfunc = fm.hexfunc
allheads = set(repo.heads())
branches = []
for tag, heads, tip, isclosed in repo.branchmap().iterbranches():
+ if selectedbranches is not None and tag not in selectedbranches:
+ continue
isactive = False
if not isclosed:
openheads = set(repo.branchmap().iteropen(heads))
@@ -6153,4 +6163,4 @@
if overrides:
ui.warn(_("extension '%s' overrides commands: %s\n")
% (name, " ".join(overrides)))
- table.update(cmdtable)
+ table.update(cmdtable)
\ No newline at end of file
To: navaneeth.suresh, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list