>hg glog -r 410:426 --template "{rev} - {desc|firstline|fill68}\n"
o 426 - Merge test fixes for dulwich changes and output changes.
|\
| o 425 - Merge incoming fix.
| |\
| | o 424 - getremotechanges: fix incoming support
| | |
o | | 423 - overlay: stop using deprecated tree.entries() method
| | |
| o | 422 - Fix all-version-tests.
| | |
o | | 421 - Test output format tweaks for test-outgoing.
| | |
o | | 420 - test-incoming: fixes for hg 1.7
| | |
| o | 419 - Merge fix for `hg out` failing on empty repo.
| |\ \
| | o | 418 - In some situations where a reference is being used but does not
| | | | exist in _map_git or _map_hg, silently skip the reference rather
| | | | than throwing an error. This allows hg outgoing to work on
| | | | repositories which do not contain any revisions at all.
| o | | 417 - only want heads and tags
| |/ /
| o | 416 - test-url-parsing: update expecations missed by edaadbd99074
| | |
| o | 415 - to be recognized port number in path to repository
| | |
| o | 414 - Unbreak outgoing to non-git repos with hg pre-1.9
| | |
| o | 413 - test fixes for progress cleanup
| |/
| o 412 - Fix mercurial issue2855
| |
| o 411 - Convert dulwich progress into mercurial ui.progress
|/
o 410 - test-incoming: only run on hg 1.7.x and newer
我没有使用 gist 中极度退化的案例,而是使用了真实存储库 DAG(hg-git 存储库)的一部分。我希望,选择足以说明正在解决的问题。
需要的 revset(用简单的英语)将是
“范围 A:B 没有第二个父级,它是合并集的祖先”
在修订功能语言(TBT!)
-r "410::426 - (p2(merge()) or ancestors(p2(merge())))"
如果将全部变更集作为源代码,则更具可读性的形式将类似于
hg log -r "!(p2(merge()) or ancestors(p2(merge())))"
编辑 1
我测试了 revset,重新考虑了方法(而不是排除我只想将需要添加到空集),目前我的用例的最近迭代(有错误,找不到解决方案)是
(p1(ancestors(p1(426))) or p1(426) or 426) and 410::426
其中(仍然)包括一些不需要的修订