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

jho*_*ack 12 mercurial

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

Mar*_*ler 23

此外

$ hg outgoing -p
Run Code Online (Sandbox Code Playgroud)

我通常使用,我想指出修订集.这是一种可以使用的查询语言hg diff(以及允许您指定更改集的所有其他命令).所以,你可以实现hg outgoing -p通过

$ hg log -r "outgoing()" -p
Run Code Online (Sandbox Code Playgroud)

并且您可以在第一个传出变更集的父级和最后一个传出变更集之间获得差异

$ hg diff -r "p1(first(outgoing()))" -r "last(outgoing())"
Run Code Online (Sandbox Code Playgroud)

最后,remotebranch扩展可以维护有关远程分支的本地信息,因此您无需使用网络来查找此信息.它可以让你使用

$ hg log -r "not pushed()"
Run Code Online (Sandbox Code Playgroud)

找到传出的变更集,但它更快,因为没有涉及网络往返.


Pau*_*l S 11

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

$ hg outgoing -p
Run Code Online (Sandbox Code Playgroud)

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

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

$ hg incoming
Run Code Online (Sandbox Code Playgroud)

-p如果你想要的话,还有一个表格.


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

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

hg pull
hg heads                     # find revision number of new head 
hg diff -r 124992            # or whatever the revision number is.
Run Code Online (Sandbox Code Playgroud)