2016-05-02 32 views
2

经常发生这种情况,我想知道我的本地项目副本的完整状态,与远程存储库相比较。以完整状态,我的意思是以下内容:Mercurial本地存储库的完整状态

  • 本地是否存在一些未提交的更改?
  • 本地有没有一些unpushed提交?
  • 是否存在一些远程无法提交的提交?
  • 我在默认分支的头上吗?

我知道我可以使用一些图形化工具,如HgView或TortoiseHg,甚至我的IDE来处理水银仓库,但我觉得它更方便地使用CLI在同一几个项目/回购工作时时间。

我目前做的方式是,如果一切正常使用别名

alias hg_full='hg incoming; hg outgoing; hg status' 

(即远程本地同步),我则确保

hg update default 

是在默认的头这种方法是完美的,但是当我使用慢速远程存储库时,在执行更新之前等待传入和传出命令返回是非常烦人的。

有没有某种方式(通过扩展名或更高级的命令)来获得本地副本的完整状态摘要与远程存储库进行比较,而不是顺序执行hg inhg out

回答

3

我想hg summary --remote可能正是你要寻找的:

$ hg summary --remote 
parent: 1:c15d3f90697a tip 
commit message here 
branch: default 
commit: 1 modified 
update: (current) 
remote: 1 or more incoming, 1 outgoing 
0

您可以通过执行hg incoming --bundle <filename>来保存一些网络流量,该流量获取传入的变更集并将其存储在捆绑文件中。然后,您可以运行hg outgoing(或hg pull)针对捆绑文件,根本不使用网络。

hg incoming --bundle incoming.bundle # Creates the bundle 
hg outgoing incoming.bundle 

hg pull incoming.bundle 
hg update default