Mercurial 日志,包括最终修订的祖先,但在开始修订之前排除默认分支上的任何内容
Mercurial log that includes the ancestry of a final revision but excludes anything on the default branch prior to the starting revision
我正在编写一个脚本来解析 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 暗示你知道分支,但我需要动态地找到它们。
好的,如果您的 业务任务 是 "What's new in release",revset 的最佳迭代将是 ancestors(LAST) - ancestors(PREVIOUS)
,即您的示例
hg log -r "ancestors(10) - ancestors(6)"
(注意输出中缺少 r5,因为 它在 6 中是)
也许 revset 在 [revsetalias] 中更有用,添加了别名以提高可读性,smth.like(未经测试!!!)
[revsetalias]
new(,) = ancestors() - ancestors()
[alias]
cl = log -r "new(,)" --style changelog
我正在编写一个脚本来解析 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 暗示你知道分支,但我需要动态地找到它们。
好的,如果您的 业务任务 是 "What's new in release",revset 的最佳迭代将是 ancestors(LAST) - ancestors(PREVIOUS)
,即您的示例
hg log -r "ancestors(10) - ancestors(6)"
(注意输出中缺少 r5,因为 它在 6 中是)
也许 revset 在 [revsetalias] 中更有用,添加了别名以提高可读性,smth.like(未经测试!!!)
[revsetalias]
new(,) = ancestors() - ancestors()
[alias]
cl = log -r "new(,)" --style changelog