如何将复制与版本控制系统结合使用?

时间:2010-10-06 16:27:22

标签: version-control merge replication wan

情况如下:

我们公司在两个主要生产基地工作,通过 WAN 进行通信。我们在内部开发了一个软件,在我们的服务器上使用大约<100Gb的磁盘空间(部署到我们客户的应用程序数据包含大量图像)。为了提高性能,我们的网络管理员选择了DFS复制(每6小时一次)。这意味着我们的用户(公司内部的人员)不必等待(有时2-3小时)下载所需的文件,因为它们在本地(通过LAN)可用。

问题是 DFS复制使用的算法是“Last Writer Wins”。因此,如果同时更改(在开发/维护期间),具有最新日期的文件将获胜。我想避免这种数据丢失

我是整个开发过程的项目经理。我想要做的是向人们介绍版本控制系统以解决同时修改问题。我计划使用Mercurial有几个原因,主要是因为它是分布式的,易于解释,可供个人使用,免费,并且(最重要的是)具有很强的合并功能。但是,由于复制过程(WAN)不知道如何合并,本地(LAN)使用版本控制系统的好处会丢失。

一些可能的解决方案是:

  1. 仅使用WAN上的版本控制(希望压缩足以加快速度)

  2. 仅使用DFS,并手动跟踪更改(容易出错)

  3. 找到两种方法的解决方法

  4. 团队很小(约10人)。感谢您的帮助和经验。

1 个答案:

答案 0 :(得分:1)

如果是我,我会在每个位置都有一个“中央”存储库,每个站点的开发人员在不同的分支上工作。其中一个应该被选为“主要”分支(理想情况下是最大变化的分支),尽管在实践中它并不重要。

每个团队的回购应定期(例如,每天,在您的6小时时间表,甚至更频繁地)与来自其他位置的回购同步,以反映在该分支中所做的更改。然后它们将合并到网站的分支(理想情况下,这将作为同一更新的一部分自动完成,但是合并将如何发生的确切细节可能会有所不同,具体取决于您选择的VCS和分支模型)。

请记住:"sync early, sync often"