如何列出由Mercurial中某个用户启动的分支?

Yak*_*ovL 5 mercurial

标题中添加的内容不多。hg branches --help --verbose不会显示任何有用的信息,尽管我不确定是否可以通过该--template选项显示用户(在这种情况下,grep可以提供帮助的工具)。还是我看错了方向?

自动执行此搜索将非常有用,因为当前项目中有许多未关闭的分支,这将有助于检查我是否离开了一些打开的分支,并建议同事查看某些分支。

Laz*_*ger 6

@Jello 的 Bashism 相当不错,但是......这是 bashism。

一些步骤(未准备好使用的解决方案)几乎是纯汞风格

  1. 重读hg help revsets+hg help templates

分支的所有起点(命名和匿名)都是分支点的子节点。所有变更集都有作者。因为每个分支中可能有任意数量的分支点(每个分支点意味着2个子分支),分支名称可以在建议命令的输出中重复(而且我懒得清理它)

任务 1 - 查找分支的所有起始修订

-r "children(branchpoint())"

任务 2 - 仅输出分支和变更集的作者

--template "{branch} - {author}"

全命令(T1+T2,所有用户的所有分支),像这样

hg log -r "children(branchpoint())" --template "{branch} - {author}\n"

作为起点。

你可以:

  • ifeq逻辑添加到模板中(不要为变更集打印“旧”分支名称 branch(r)=branch(p1))
  • 将 ANDed 条件“USER”添加到 revset,将完整命令定义为参数化别名并准备使用可共享的解决方案


Jel*_*llo 2

尝试像这样的 bash 循环:

for branch in $(hg branches -q); do hg log -r "branch($branch)and 0:" -u "username" -l 1; done