修補程序是一個簡單和多功能的解決方案。
爲了移動更大的變化組(特別是二進制變化和合並),Mercurial提供了二進制包。一個包基本上是在你做hg push
時在網絡上發送的二進制東西,但是在這裏它被捕獲在一個文件中。
讓我們想象我已經得到了一個克隆(通過閃存驅動器,DVD等)。稱它爲upstream
。然後我做第二個克隆,叫它devel
。我在devel
中完成了所有的開發工作,並進行了大量的提交,合併等操作。由於Mercurial是分佈式的,我可以在離線情況下完成所有這些工作。
要查看哪些變更中丟失了upstream
我做
% hg outgoing ../upstream
當我有東西送,我可以使用
% hg bundle changes.hg ../upstream
得到一個二進制壓縮文件,該文件包含的變更,包括所有他們的元數據。然後,我可以將這個文件刻錄到CD上並通過郵件發送。
捆的接收者可以做
% hg incoming changes.hg
看到變更列表和
% hg pull changes.hg
解包和變更集添加到他的倉庫。然後,他很可能不得不合並 - 這就好像他是通過HTTP或SSH直接從存儲庫中提取的。
請注意,upstream
存儲庫僅用作記憶上游存儲庫中已找到哪些更改集的便利方法。您還可以記下變更集標識,並在捆綁時使用hg bundle --base
指定基本(通用)變更集。請參閱hg help bundle
或look in the wiki。