【问题标题】:How do I diff one branch with my default branch如何区分一个分支与我的默认分支
【发布时间】:2012-04-24 14:26:12
【问题描述】:

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

【问题讨论】:

    标签: mercurial


    【解决方案1】:

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

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

    【讨论】:

    • ...如果您已经(干净地)切换到该分支:hg diff -r default 也会这样做
    • 如何区分仅输出文件名?
    【解决方案2】:

    要仅列出有差异的文件,请添加 --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(-)
    

    【讨论】:

      【解决方案3】:

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

      hg diff -r otherbranch
      

      【讨论】:

        猜你喜欢
        • 2011-07-22
        • 2012-02-15
        • 2020-05-26
        • 2012-10-29
        • 1970-01-01
        • 2016-12-12
        • 1970-01-01
        • 2017-08-03
        • 1970-01-01
        相关资源
        最近更新 更多