【问题标题】:How to view diff between head of local repository and head of remote repository?如何查看本地存储库负责人和远程存储库负责人之间的差异?
【发布时间】:2012-02-10 09:27:19
【问题描述】:

在我推送到远程存储库之前,我想查看本地存储库的头部和我正在推送的存储库的头部之间的综合差异。我知道这样做的最好方法是hg clone 远程存储库,获取头部的修订版,然后在我的头部和那个修订版之间做一个差异。但这很耗时。有什么快捷的方法吗?

【问题讨论】:

  • 如果你推送到一个仓库,它的头部不是你当前版本的祖先,这不是表明你可能做错了什么吗?
  • 远程仓库的头是我本地头的祖先。我想得到那个头和我的本地头之间的差异。所以也许我只是想要一个 hg 命令来打印出远程存储库的头部修订。然后我可以手动比较该版本。

标签: mercurial


【解决方案1】:

除了

$ hg outgoing -p

我通常使用的,我想将您指向revision sets。这是一种查询语言,您可以将其与hg diff(以及所有其他允许您指定变更集的命令)一起使用。所以你可以通过

实现hg outgoing -p
$ hg log -r "outgoing()" -p

你可以得到第一个传出变更集的父级和最后一个传出变更集之间的差异

$ hg diff -r "p1(first(outgoing()))" -r "last(outgoing())"

最后,remotebranch extension 可以维护有关远程分支的本地信息,这样您就不需要使用网络来查找这些信息。它让你使用

$ hg log -r "not pushed()"

找到传出的变更集,但速度要快得多,因为不涉及网络往返。

【讨论】:

    【解决方案2】:

    如果您正在寻找一种方法来获取您所做的所有不在远程存储库中的更改。

    $ hg outgoing -p
    

    -p 是可选的,以补丁的形式报告,否则它以与hg log 相同的方式报告。这只是您的更改,无论其他人是否已将任何内容推送到远程存储库。

    如果您正在寻找远程存储库中没有的更改,那么您可以使用

    $ hg incoming
    

    如果您需要,还有一个 -p 表单。


    这些都不是您所要求的,但我怀疑您实际上并不想要。

    如果您真的想要您的更改与其他人创建的远程 repo 中的新 head 之间的差异,那么您需要拉回他们的更改。

    hg pull
    hg heads                     # find revision number of new head 
    hg diff -r 124992            # or whatever the revision number is.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-12
      • 1970-01-01
      • 2018-08-16
      • 2018-06-15
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多