此设置的良好 Mercurial 使用模式是什么?
-
08-06-2019 - |
题
我们有两个开发商在同一个封闭的(呃,愚蠢的政府)网络上,另一个开发商在沿路行驶几分钟的地方,第四个开发商在半个国家的另一边。对于不在同一网络上的人来说,电子邮件、ftp 和移动媒体都是可能的传输方法。
我是两个封闭网络开发者之一,将我们视为“主”位置。
最适合团体的 Mercurial 设置/模式是什么?将更改传输给远程开发人员/从远程开发人员那里传输更改的最佳方式是什么?由于我负责,我认为我必须保留至少一个主存储库和另一个我可以开发的本地存储库。其他人应该只需要主人的一个克隆。这是正确的吗?我想这也让我负责合并?
正如您所看到的,我仍在尝试研究分布式版本控制。我认为在连接情况下没有其他方法可以做到这一点。
其他提示
补丁是一种简单且通用的解决方案。
为了移动更大的更改组(尤其是二进制更改和合并),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
或者 看看维基百科.
正确的。任何东西进入封闭网络的唯一方法是通过闪存驱动器。