Patchwork D5486: branches: add -r option to show branch name(s) of a given rev (issue5948)

login
register
mail settings
Submitter phabricator
Date Dec. 28, 2018, 5:06 a.m.
Message ID <a5be832639f16bd44247be98a4a133f8@localhost.localdomain>
Download mbox | patch
Permalink /patch/37369/
State Not Applicable
Headers show

Comments

phabricator - Dec. 28, 2018, 5:06 a.m.
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG4506f801e492: branches: add -r option to show branch name(s) of a given rev (issue5948) (authored by navaneeth.suresh, committed by ).

CHANGED PRIOR TO COMMIT
  https://phab.mercurial-scm.org/D5486?vs=12989&id=12991#toc

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D5486?vs=12989&id=12991

REVISION DETAIL
  https://phab.mercurial-scm.org/D5486

AFFECTED FILES
  mercurial/commands.py
  tests/test-branches.t
  tests/test-completion.t

CHANGE DETAILS




To: navaneeth.suresh, #hg-reviewers
Cc: mercurial-devel

Patch

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
@@ -1132,6 +1132,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,
@@ -1161,13 +1162,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))