什么是这种设置的良好Mercurial使用模式?

我们在同一个封闭的(呃,愚蠢的政府)网络上有两个开发者,另一个开发者在路上开了几分钟,还有第四个开发者在全国各地进行了一半。对于不在同一网络上的人员,电子邮件,ftp和删除媒体都是可能的转移方式。

我是两个封闭的网络开发人员之一,认为我们是“主”位置。

什么是最适合团队的Mercurial设置/模式?向远程开发人员传输更改的最佳方式是什么?正如我负责的那样,我认为我必须至少保留一个拥有另一个本地回购的主回购商品,以便我可以开发。每个其他人只需要一个主人的克隆。这是正确的吗?我想这也让我对合并负责任?

正如你所看到的,我仍然试图围绕分布式的版本控制。我不认为有什么其他的方式来解决连接问题。

0

3 答案

网络外的用户可以制作补丁,和/或使用< a href =“http://hgbook.red-bean.com/hgbookch14.html#x18-32100014.4”rel =“nofollow noreferrer”>电子邮件将更新发送到主要的回购站或某人,像你一样合并它们。其他内部人员可以像本人一样拥有本地副本并进行合并 - 但是如果您没有网络补丁,那么一个人处理它们可能会更好,因此没有人会感到困惑,但这是您必须要做的事情考虑你自己。

另一种方式同步,你会创建一个补丁,他们通过电子邮件或闪存驱动器给远程开发人员修补他们的系统。你需要与队友进行一些良好的沟通,我很感谢你,我不在你身边。

这些是我唯一的建议 - 很明显,让他们成为VPN连接!我很想听听它是如何发展的,什么计划稳定在每周的沟槽等等。

0
额外

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

0
额外

修补程序是一个简单而多功能的解决方案。

为了移动更大的变化组(特别是二进制变化和合并),Mercurial提供了二进制包。一个bundle基本上是当您执行 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查看wiki

0
额外