2008-08-07 79 views
12

我们在同一个封闭的(呃,愚蠢的政府)网络上有两个开发者,另一个开发者在路上驾车几分钟,第四个开发者在全国各地中途开车。对于不在同一网络上的人员,电子邮件,ftp和删除媒体都是可能的转移方式。什么是该设置的良好Mercurial使用模式?

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

什么是最好的Mercurial设置/模式组?向远程开发人员传输更改的最佳方式是什么?正如我负责的那样,我认为我必须至少保留一个拥有另一个本地回购的主回购商品,以便我可以开发。每个其他人只需要一个主人的克隆。这是正确的吗?我想这也让我对合并负责任?正如你所看到的,我仍然试图围绕分布式版本控制。我不认为有什么其他的方式来解决连接问题。

回答

1

网络外部的用户可以使用patches和/或使用email将更新发送到主存储库或某人,像您自己合并它们。其他内部人员可以像本人一样拥有本地副本并进行合并 - 但是如果您没有网络补丁,那么一个人处理它们可能会更好,因此没有人会感到困惑,但这是您必须要做的事情考虑你自己。

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

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

0

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

3

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

为了移动更大的变化组(特别是二进制变化和合并),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 bundlelook in the wiki

相关问题