0

我正在编写一个脚本,该脚本解析一个 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 的一部分。

我回顾的其他讨论:

关闭但无助于限制范围。

意味着您知道分支,但我需要动态找到它们。

4

1 回答 1

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
于 2015-11-04T01:07:31.083 回答