补丁是一种简单而通用的解决方案。
为了移动更大的更改组(尤其是二进制更改和合并),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
存储库仅用作记住上游存储库中已找到哪些变更集的便捷方式。您也可以只记下变更集 ID,并hg bundle --base
在捆绑时使用以指定基本(通用)变更集。查看hg help bundle
或查看 wiki。