1

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

有没有好的 CVS 代理,或者有什么巧妙的方法可以让单独的 CVS 服务器保持同步?对于在这种情况下如何提高性能,您还有其他提示吗?

不幸的是,在这个项目的范围内,我们将被 CVS 卡住,所以在短期内切换到完全不同的东西不是一个选择。

4

2 回答 2

1

为什么不切换选项?

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

甚至还有svn 工具/指南git 工具/指南可以为您进行 CVS 转换。

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

于 2008-09-26T08:23:49.733 回答
1

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

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

当您想在提交中授予对副本 1 的访问权限时,请执行以下操作:

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

这听起来很麻烦,如果您手动执行它,但它确实有效。如果您手动进行,则需要一些纪律。可能时区一次就在你身边。

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

传输工具是用 perl 编写的,我花了大约两周的时间来开发它,全职工作。

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

于 2008-09-26T13:38:51.603 回答