如何在本地存储库的头部和远程存储库的头部之间查看差异?

时间:2012-01-14 15:10:53

标签: mercurial

在我推送到远程存储库之前,我希望在本地存储库的头部和我正在推动的存储库的头部之间看到一个整合的差异。我知道这样做的最好方法是hg clone远程存储库,获取头部的修订版,然后在我的头部和修订版之间做一个差异。但这很费时间。有快速的方法吗?

2 个答案:

答案 0 :(得分:23)

除了

$ 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()"

找到即将发生的变更集,但由于没有涉及网络往返,因此速度更快。

答案 1 :(得分:11)

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

$ hg outgoing -p

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

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

$ hg incoming

如果您需要,还可以使用-p表单。


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

如果您真的希望更改与其他人创建的远程仓库中的新头部之间存在差异,那么您需要完成更改。

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