我正在编写一个解析mercurial日志的脚本,并生成任何两个修订版之间所有更改的报告。为了处理分支,我相信我需要使用revsets来生成最终修订版的祖先,但是我想限制范围以排除任何作为起始修订版的祖先的修订版。
10
/
/
9
|\
| \
| \
8 |
| 7
| 6 |
|/ |
5 4
| /
| /
|/
3
|
|
|
2
|
|
|
1
在3处,从默认分支创建功能分支。
在5处,从默认分支创建发布分支(6)。
在9处,功能分支合并回默认值并创建新版本(10)。
我想要一个自5以来影响10 =>的所有更改的列表-4,5,7,8,9,10-
我遇到的困难是在通过功能分支到达3时限制祖先搜索。我不想要它,因为3已经是5的一部分。
我审核的其他讨论:
Close但没有帮助限制范围。
This one意味着你知道分支,但我需要动态地找到它们。
答案 0 :(得分:1)
好的,如果您的业务任务是“发布时的新内容”,则revset的最佳迭代次数为ancestors(LAST) - ancestors(PREVIOUS)
,即您的样本
hg log -r "ancestors(10) - ancestors(6)"
(注意输出中缺少r5,因为它是在6中)
也许revset在[revsetalias]中更有用,添加了别名以提高可读性,smth.like(未经测试!!!)
[revsetalias]
new($1,$2) = ancestors($1) - ancestors($2)
[alias]
cl = log -r "new($1,$2)" --style changelog