如何检测提交是否可以推送

时间:2011-11-25 12:28:34

标签: mercurial push commit

在Git中很容易,因为remote/branch指向的是与branch不同的提交。如何使用Mercurial?

6 个答案:

答案 0 :(得分:7)

如果您的意思是看到您的本地回购和您要推送的回购之间有什么不同,请尝试

hg outgoing

答案 1 :(得分:2)

remotebranch extension可以为您提供类似Git的设置。它跟踪[paths]中列出的存储库的远程磁头,并将它们公开为名为<path>/<branch>的标签。这可以让你运行

$ hg diff -r foo/default

查看自default存储库中的foo分支以来发生了哪些更改。还有新的revset关键字可以让您执行

之类的操作
$ hg log -r "not pushed()"

得到什么

$ hg outgoing

可以,但没有任何网络流量。

答案 2 :(得分:2)

自Mercurial 2.1以来,还有一个纯粹的本地解决方案:阶段draft阶段可能正是您所寻找的。有关详细信息,请参阅:

https://www.mercurial-scm.org/wiki/Phases

您可能会发现hg phase <rev>hg log -r "draft()"很有趣。

答案 3 :(得分:1)

我会像其他人建议的那样使用hg outgoing,但hg summary也会告诉您。可能需要--remote选项才能检查远程默认服务器。

答案 4 :(得分:1)

如果您需要选择更改集以进行进一步处理,则可以使用outgoing revset predicate。这使您可以重新实现hg outgoing

hg log -r "outgoing()"

但真正的好处是你可以在其他环境中使用它,例如

hg strip "outgoing()"

答案 5 :(得分:1)

  

在草稿阶段显示所有修订的命令行调用是什么?

hg log --style phases

这将显示日志+阶段,因为Mercurial 2.7 (2013-08-01)