如何在Mercurial中确定,是否已经嫁接了修订版指定的变更集?

Yev*_*niy 7 mercurial

如果变更集已在branchX和default之间嫁接,我怎么看?我知道,hg嫁接检查这个给我,在那里我不能移植两次,但我想列出所有更改集,这些更改集未在branchX和default之间嫁接.提前感谢您的回答.

Mar*_*ler 7

此信息存储在嫁接变更集内的所谓"额外"字典中.这是一个简单的键值映射,您可以看到它hg log --debug.

遗憾的是,这些信息并未作为revset谓词公开,因此您必须采用传统的方式:从

$ hg --debug log -b branchX
Run Code Online (Sandbox Code Playgroud)

获取变更集branchX.然后grep或以其他方式搜索匹配的行

extra:       source=[0-9a-f]{40}
Run Code Online (Sandbox Code Playgroud)

如果您想要更高级别的访问权限,可以使用Mercurial绑定.目前有Java,Python和Scala库.


ngo*_*aum 7

如果你有Mercurial 2.3或更新版本,你可以使用revset来做到这一点:

$ hg log -r "destination()"
Run Code Online (Sandbox Code Playgroud)

获取作为移植目的地的所有变更集的列表.你也可以这样做:

$ hg log -r "origin()"
Run Code Online (Sandbox Code Playgroud)

获取所有移植起源变更集的列表.这些revset都将另一个revset作为参数,因此您可以使用可组合revset的全部功能在搜索中向下钻取.