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

时间:2019-04-23 13:51:45

标签: mercurial

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

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

2 个答案:

答案 0 :(得分:4)

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

一些步骤(尚未准备好使用解决方案)几乎为纯汞样式

  1. 重新阅读mysql> show databases; +--------------------+ | Database | +--------------------+ | cms_blog | | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec) + hg help revsets

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

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

hg help templates

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

-r "children(branchpoint())"

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

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

作为起点。

您可以:

  • hg log -r "children(branchpoint())" --template "{branch} - {author}\n"逻辑添加到模板中(不要为包含以下内容的变更集打印“旧”分支名称 ifeq
  • 将条件为“ USER”的AND条件添加到revset中,将完整命令定义为parametrised alias,并准备使用可共享的解决方案

答案 1 :(得分:1)

尝试这样的bash循环:

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