如何使用默认分支区分一个分支

jaf*_*ffa 70 mercurial

我切换到我本地仓库的一个分支,发现它给了我显示x文件更新的消息.这令我感到惊讶,因为我不知道那个分支有什么不同.如何将该分支与默认分支进行比较以查看更改内容?

Nia*_* C. 107

使用hg diff -r BRANCH1:BRANCH2,其中BRANCH1和BRANCH2是分支的名称.这将显示两个分支的头部之间的差异.

您收到有关"x files updated"的消息,因为原始分支上的文件已更改,不一定是因为另一个分支上的文件已更改.Mercurial向您展示了两个分支中已更改文件集的并集.

  • ...如果你已经(干净地)切换到那个分支:`hg diff -r default`也会这样做 (16认同)

Ant*_*ny. 6

要仅列出差异文件,请添加--stat选项:

hg diff --stat -r BRANCH1:BRANCH2
Run Code Online (Sandbox Code Playgroud)

这给出了这样的输出:

mypath/file1.cpp    |    1 -
mypath/file2.cpp    |  143 ++++++++++
mypath/file3.cpp    |   18 +-
3 files changed, 160 insertions(+), 2 deletions(-)
Run Code Online (Sandbox Code Playgroud)

或者稍微清理一下输出,通过sed将其通过管道删除,以删除管道符号后的所有内容:

hg diff --stat -r BRANCH1:BRANCH2 | sed "s/|.*$//g"
Run Code Online (Sandbox Code Playgroud)

这仅给您列出了已更改的文件和最后的摘要行:

mypath/file1.cpp
mypath/file2.cpp
mypath/file3.cpp
3 files changed, 160 insertions(+), 2 deletions(-)
Run Code Online (Sandbox Code Playgroud)