【发布时间】:2012-04-24 14:26:12
【问题描述】:
我切换到本地 repo 上的一个分支,并注意到它给了我显示 x 个文件已更新的消息。这让我感到惊讶,因为我不知道那个分支有什么不同。如何将该分支与默认分支进行比较以查看发生了什么变化?
【问题讨论】:
标签: mercurial
我切换到本地 repo 上的一个分支,并注意到它给了我显示 x 个文件已更新的消息。这让我感到惊讶,因为我不知道那个分支有什么不同。如何将该分支与默认分支进行比较以查看发生了什么变化?
【问题讨论】:
标签: mercurial
使用hg diff -r BRANCH1:BRANCH2,其中 BRANCH1 和 BRANCH2 是分支的名称。这将向您展示两个分支的负责人之间的差异。
您收到有关“x files updated”的消息是因为原始分支上的文件已更改,不一定是因为另一个分支上的文件已更改。 Mercurial 向您显示来自两个分支的更改文件集的联合。
【讨论】:
hg diff -r default 也会这样做
要仅列出有差异的文件,请添加 --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(-)
【讨论】:
查看分支otherbranch 与当前分支的差异:
hg diff -r otherbranch
【讨论】: