Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 如何将复制与版本控制系统结合使用?_Version Control_Merge_Replication_Wan - Fatal编程技术网

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

Version control 如何将复制与版本控制系统结合使用?,version-control,merge,replication,wan,Version Control,Merge,Replication,Wan,情况如下: 我们公司有两个主要生产基地,通过WAN进行通信。我们在内部开发了一个软件,它在我们的服务器上使用了大约100Gb的磁盘空间(使用大量图像部署到客户的应用程序数据)。为了提高性能,我们的网络管理员选择DFS复制(每6小时一次)。这意味着我们的用户(公司内部的人)不必等待(有时2-3小时)下载所需的文件,因为它们在本地(通过局域网)可用 问题是,DFS复制使用的算法是“最后一个写入程序获胜”。因此,如果同时发生更改(在开发/维护期间),则以最新日期的文件为准。我希望避免此类数据丢失 我是

情况如下:

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

问题是,DFS复制使用的算法是“最后一个写入程序获胜”。因此,如果同时发生更改(在开发/维护期间),则以最新日期的文件为准。我希望避免此类数据丢失

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

一些可能的解决办法是:

  • 仅对WAN使用版本控制(希望压缩足以加快速度)

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

  • 找到两种方法的变通方法

  • 团队规模较小(约10人)。感谢您的帮助和经验

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

    每个团队的回购协议应定期(例如,每天、在您的6小时计划中,甚至更频繁地)与其他地点的回购协议同步,以反映该分支机构的变更。然后将它们合并到站点的分支(理想情况下,这将作为同一更新的一部分自动完成,但合并方式的具体细节可能会有所不同,具体取决于您选择的风投和分支模式)

    请记住:

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

    每个团队的回购协议应定期(例如,每天、在您的6小时计划中,甚至更频繁地)与其他地点的回购协议同步,以反映该分支机构的变更。然后将它们合并到站点的分支(理想情况下,这将作为同一更新的一部分自动完成,但合并方式的具体细节可能会有所不同,具体取决于您选择的风投和分支模式)


    记住:

    在我写这篇文章三年后,我意识到我没有正确理解这个问题。我必须编写一个新的自定义IDE,这样我们的开发人员就可以根据模板预先生成新的应用程序。我将据此标出你的答案。我仍然不知道如何使VCS系统易于非编程人员学习……在我写这篇文章三年后,我意识到我没有正确理解这个问题。我必须编写一个新的自定义IDE,这样我们的开发人员就可以根据模板预先生成新的应用程序。我将据此标出你的答案。我仍然不知道如何使VCS系统易于非编程人员学习,虽然。。。