2016-05-02 34 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