Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找在mercurial中创建新分支的提交_Mercurial - Fatal编程技术网

查找在mercurial中创建新分支的提交

查找在mercurial中创建新分支的提交,mercurial,Mercurial,我正在尝试编写一些与mercurial存储库相关的自动化流程。我希望能够做的一件事是识别创建新分支的提交。我找不到任何简单的方法来做这件事 我希望能够一次性获得所有分支,而不必查找分支名称列表,然后为每个分支名称查找最早的提交 最好我也可以选择只对打开的分支执行此操作,但如果需要,我可以通过其他方式解决此问题。的第一次迭代(尚未按要求运行:返回“超出需要的”更改集,仅处理命名分支,而不处理匿名分支/在HG/中完全合法) 日志的revset: children(branchpoint())-mer

我正在尝试编写一些与mercurial存储库相关的自动化流程。我希望能够做的一件事是识别创建新分支的提交。我找不到任何简单的方法来做这件事

我希望能够一次性获得所有分支,而不必查找分支名称列表,然后为每个分支名称查找最早的提交

最好我也可以选择只对打开的分支执行此操作,但如果需要,我可以通过其他方式解决此问题。

的第一次迭代(尚未按要求运行:返回“超出需要的”更改集,仅处理命名分支,而不处理匿名分支/在HG/中完全合法) 日志的revset:

children(branchpoint())-merge()-branch(默认值)

对于这种非常常见的树,我仍然无法编写revset的最后一部分(在“?”)并考虑模板中的revset(),以便在输出阶段过滤“坏孩子”

第二次迭代,简单到“一,二,三”

当我扭曲基于revset的解决方案时,我非常愚蠢。我看到了,因为

hg log -T"{ifeq(p1.branch, branch,'','{myrev}: {sob}')}"
(其中,
ifeq()
的最后一部分只是我的自定义字符串,带有一些
[templatealias]
以供娱乐)做这个把戏

>hg log -T"{ifeq(p1.branch, branch,'','{myrev}: {sob}')}"
r4: New branch detected - two
r2: New branch detected - one
而且是alias的真正候选人


欢迎在真实存储库上进行测试

谢谢。有机会的时候我会看看这个。branchpoint似乎是一个有趣的起点,我以前从未遇到过。如果这证明太难了,那么我总是可以在每个分支上运行一个命令-这只意味着我的程序要慢得多,但性能不是特别关键。。。我认为,如果我已经知道分支的名称,就可以很容易地使用该名称获得第一次提交…@Chris-单分支revset一点问题都没有(甚至有两种解决方案—“from head”或“from branchpoint”)。这只是我的梦想——即使没有扩展,也能在一个命令内部完成所有工作最简单、最短的单分支oneliner
hg log-r“first(branch('BRANCHNAME'))”
。Revset可以放在参数化revsetlias中