1

情况如下:

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

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

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

一些可能的解决方案是:

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

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

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

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

4

1 回答 1

1

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

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

记住:“尽早同步,经常同步”

于 2010-11-10T00:09:04.997 回答