_('set branch name even if it shadows an existing branch')), ('C', 'clean', None, _('reset branch name to parent branch name')), ('r', 'rev', , _('change branches of the given revs (EXPERIMENTAL)')),
+ ('s', 'show', None, _('show branch name of the given rev'))], _('[-fC] [NAME]'), helpcategory=command.CATEGORY_CHANGE_ORGANIZATION)
@@ -1097,6 +1098,11 @@ui.write("%s\n" % repo.dirstate.branch()) return
+ elif opts.get('show') and label:
+ ctx = scmutil.revsingle(repo, label)
+ ui.write("%s\n" % ctx.branch())
How about adding the -r/--rev option to the branches command instead?
I came to this idea while working on the issue4505, tag sorting. I haven't sent
the patch yet because I noticed we would also want to sort tags
lexicographically, which can't be achieved by the revset. But at least, tags,
branches, and bookmarks can be filtered by the -r/--rev option.
branch, tag, and bookmark (without -l) are basically the commands to mutate
the repository, and the -r option of the branch command is highly experimental.
IIRC, @pulkit regrets of adding branch -r.
Thanks for the info @yuja. I'm thinking to move --rev/-r to branches command and replacing --show/-s that I've made to --rev/-r in the branch command itself.
I'm not sure if I get it, but my idea is to add hg branches -r/--rev
that selects branches to be listed by revisions. So, hg branch -srREV in
your original patch will be equivalent to hg branches -qrREV (-q to
suppress detailed output.)