修补程序是一个简单和多功能的解决方案。
为了移动更大的变化组(特别是二进制变化和合并),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。