当我输入hg outgoing
时,我得到这样的回复:
comparing with ssh://server:1234/path/to/repo
并且在通过网络进行通信时会出现延迟。
为什么需要此网络流量? Mercurial是否存在一些基本的东西,这意味着它无法记住哪些提交被推送,哪些提交没有?
是否有替代命令可以在不通过网络进行通信的情况下向我提供类似的信息?
答案 0 :(得分:14)
由于Mercurial是一个分布式系统,因此您可以通过多种方式将更改从本地仓库转移到远程仓库。
例如:
但是,如果您有Mercurial 2.1或更高版本,则可以使用hg phase
来确定已推送的更改集。假设您没有使用hg phase
来更改任何更改集的状态,那么相位为draft
或secret
的更改集尚未推送,且相位为public
的更改集有。使用
$ hg log -r "not public()"
查看未发布的变更集。
它不会抓住我上面给出的两个例子,但如果你只是想知道你没有推动哪些变更集,它可能会很好。
查看here或查看hg help phases
以获取有关如何使用阶段的说明。
答案 1 :(得分:3)
mercurial存储库可能与多个其他存储库连接。所以,我想它需要确保未从您的存储库推送的更改不会从另一个存储库到达。