如何在多站点方案中提高CVS性能?

时间:2008-09-26 08:23:08

标签: performance cvs

我目前正在开发一个项目,开发人员在三个站点上工作。其中一个地点位于印度德里,另外两个位于欧洲。欧洲办事处与德里办事处之间的通信带宽较差,延迟时间非常糟糕,即使只有少数文件发生变化,CVS更新也需要5-10分钟。

那里有没有好的CVS代理,或者保持单独的CVS服务器同步的任何简洁方法?关于如何在这种情况下改进性能,您还有其他任何提示吗?

不幸的是,在这个项目的范围内我们会被CVS困住,所以在短期内不能选择完全不同的东西。

2 个答案:

答案 0 :(得分:1)

为什么不切换选项?

我强烈建议改用SVN或git。而且你要尽快进行转换......就像今天一样:)

甚至有svn tools/guidesgit tools/guides可以为您执行此CVS转换。

我个人使用并喜欢SVN用于我的工作,但根据您的上述描述,听起来git可能是更适合您的选择。

答案 1 :(得分:1)

这是我很久以前在带宽和不可靠网络成为问题的类似情况下所做的事情:

  • 制作存储库的副本并将其安装在远程位置。你知道有CVS1和CVS2。
  • 通过阻止提交来锁定两个副本之一(CVS1)。这是通过修改CVSROOT模块中的'commitinfo'来实现的。
  • CVS1仅可用于更新
  • CVS2可用于更新和提交

如果要在提交中授予访问权限以复制1,请按以下步骤操作:

  • 锁定CVS2
  • 将CVS2复制到CVS1
  • 解锁CVS1

这听起来很麻烦,如果你手动完成,它就可以了。如果你手动完成它需要一些纪律。可能是时区在你身边一次。

我编写了一个工具来跟踪谁拥有提交令牌,并通过rsync和SSH自动将存储库从一个站点传输到另一个站点。它工作了好几年。我们从未丢失任何数据,将令牌从一个位置转移到另一个位置大约需要5分钟。

转移工具是用perl编写的,我花了大约两个星期来开发它,全职工作。

我知道很久以前FreeBSD开发人员使用CVSup但我自己从未使用过该工具。