我们有两个开发商在同一个封闭的(呃,愚蠢的政府)网络上,另一个开发商在沿路行驶几分钟的地方,第四个开发商在半个国家的另一边。对于不在同一网络上的人来说,电子邮件、ftp 和移动媒体都是可能的传输方法。

我是两个封闭网络开发者之一,将我们视为“主”位置。

最适合团体的 Mercurial 设置/模式是什么?将更改传输给远程开发人员/从远程开发人员那里传输更改的最佳方式是什么?由于我负责,我认为我必须保留至少一个主存储库和另一个我可以开发的本地存储库。其他人应该只需要主人的一个克隆。这是正确的吗?我想这也让我负责合并?

正如您所看到的,我仍在尝试研究分布式版本控制。我认为在连接情况下没有其他方法可以做到这一点。

有帮助吗?

解决方案

外网用户可以 补丁, ,和/或使用 电子邮件 将更新发送到主存储库或某人(例如您自己)以合并它们。其他内部人员可以像您一样拥有本地副本并进行合并 - 但如果您拥有这些网络补丁,最好由一个人处理它们,这样就不会有人感到困惑,但这是您必须做的事情考虑一下你自己。

以另一种方式同步,您将创建一个补丁,然后他们通过电子邮件或将闪存驱动器发送给远程开发人员来修补他们的系统。你需要与团队成员进行一些良好的沟通,我很庆幸我不处于你的处境。

这些是我唯一的建议——嗯,很明显,给他们提供 VPN 连接!我很想听听进展如何,每周的计划稳定下来等等。

其他提示

补丁是一种简单且通用的解决方案。

为了移动更大的更改组(尤其是二进制更改和合并),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 或者 看看维基百科.

正确的。任何东西进入封闭网络的唯一方法是通过闪存驱动器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top