73

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

4

3 回答 3

110

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

您收到有关“x files updated”的消息是因为原始分支上的文件已更改,不一定是因为另一个分支上的文件已更改。Mercurial 向您显示来自两个分支的更改文件集的联合。

于 2012-04-24T14:32:00.920 回答
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(-)
于 2018-06-14T01:54:51.470 回答
1

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

hg diff -r otherbranch
于 2018-07-27T15:29:36.200 回答