如何将一个分支与默认分支进行比较


73

我切换到本地存储库上的一个分支,注意到它给了我显示x个文件已更新的消息。这让我感到惊讶,因为我不知道该分支有什么区别。如何将该分支与默认分支进行比较以查看发生了什么变化?

Answers:


110

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

您收到有关“ x个文件已更新”的消息,因为原始分支上的文件已更改,而未必一定是因为另一个分支上的文件已更改。Mercurial向您显示两个分支中已更改文件集的并集。


17
...如果你已经(干净),切换到那个分支: hg diff -r default 将做同样的
词尾

如何与仅输出文件名区别?
宝马

6

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

hg diff --stat -r BRANCH1:BRANCH2

这给出了这样的输出:

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

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

hg diff --stat -r BRANCH1:BRANCH2 | sed "s/|.*$//g"

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

mypath/file1.cpp
mypath/file2.cpp
mypath/file3.cpp
3 files changed, 160 insertions(+), 2 deletions(-)

1

要查看otherbranch与当前分支的分支差异:

hg diff -r otherbranch
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.