Mercurial相当于在一个分支中显示提交而在另一个分支中不显示提交的内容是什么?

Bia*_*cki 9 mercurial

在git中,我可以执行以下操作:

git log foo ^bar
Run Code Online (Sandbox Code Playgroud)

显示分支中的变更集foo但不显示分支中的变更集bar.有没有办法在Mercurial中做到这一点?

编辑:解释一下用例.假设我在Mercurial中有一个分支(称之为foo)分支default.我想知道的是foo分支中的提交,因此尚未合并default.也许我正在考虑这个错误的方法,但是在git中,我可以开始工作foo,合并master然后再开始工作foo并使用上面的命令来查看哪些提交尚未合并.

因此,具体的用例是知道分支是否已完成合并为默认值.从使用水银,如果我开始一个分支foo关闭的default上一个功能工作,然后离开它有这么合并和分叉的foo打造bar,其中包含建立在对事物的顶部另一个特点foo,foo最终被无效,因为bar包含了所有的foo中的更改集,但我可能只想合并更改集,foo因为我知道这些是好的,而bar仍处于开发阶段.希望这很有帮助.

Lau*_*lst 31

尝试使用revsets(hg help revsets)

hg log -r "branch(foo) and not branch(bar)"
Run Code Online (Sandbox Code Playgroud)

但这有点无用,因为变更集一次只能在一个命名分支中.

也许你的意思是书签的所有祖先都不是另一个书签的祖先?

hg log -r "::a and not ::b"
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,revsets帮助页面都可以帮助您入门.


jke*_*ian 11

究竟你的意思是分支foo中的提交但不是吧?提交从根本上只在mercurial的一个分支.

hg log -b foo  #lists all commits that are in branch foo
Run Code Online (Sandbox Code Playgroud)