假设我有一个名为branch foo的两个提交a,b:
a b c
------o-------o-------o------- # default
\ d e
----------o---------o # branch foo
Run Code Online (Sandbox Code Playgroud)
我想看到a和e之间的差异(不包括在内).我当然可以使用修订版ID,但这不太实用.在git中,可以做git diff master..foo.我怎样才能在hg中做同样的事情?
Ry4*_*ase 33
在您的具体示例中,我认为您可以获得正常d
和e
使用的列表:
hg log -r "branch('foo') - branch('default')"
Run Code Online (Sandbox Code Playgroud)
其中-
定义为:
"x - y"
Changesets in x but not in y.
Run Code Online (Sandbox Code Playgroud)
从a到e的差异可以通过以下方式完成:
hg diff -r "ancestor(default, foo)" -r foo
Run Code Online (Sandbox Code Playgroud)
虽然有可能是我没看到的简写.
Ric*_*ard 12
另一种方法是,对于已经合并为默认值的分支也很有用:
hg diff -r "max(ancestors(foo) and branch(default)):foo"
Run Code Online (Sandbox Code Playgroud)
虽然这可能是一个痛苦的坑,所以我建议通过添加以下内容来设置别名:
[alias]
branchdiff = diff -r "max(ancestors('$1') and branch(default)):'$1'"
Run Code Online (Sandbox Code Playgroud)
到你的Mercurial.INI/hgrc,你可以像这样使用:
hg branchdiff <branch name>
Run Code Online (Sandbox Code Playgroud)
要么
hg branchdiff .
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9418 次 |
最近记录: |