【问题标题】:How can I improve CVS performance in a multi-site scenario?如何在多站点场景中提高 CVS 性能?
【发布时间】:2008-09-26 08:23:07
【问题描述】:

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

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

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

【问题讨论】:

    标签: performance cvs


    【解决方案1】:

    为什么不切换选项?

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

    甚至还有 svn tools/guidesgit tools/guides 可以为您完成 CVS 转换。

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

    【讨论】:

    • 我们一定会换的!然而,考虑到组织的规模(超过 200 人)以及相当多的依赖 CVS 的自动化工具和程序,我想这需要几个月的时间才能使更改生效。我们需要一些时间来计划,并说服管理者。 =)
    • 更有理由更快地切换。 > 200 人的时间被浪费了。
    • 我能够在一天内完成几个非常大的项目,但我的团队只有大约 20 人。
    • 实际上,只有
    • 也许您一次只能转换一个项目。即使您没有遇到任何 CVS 问题,与 SVN 的区别也是巨大的。我从 CVS 切换到 SVN 的唯一遗憾是我没有早点这样做。你将成为一个更有生产力的团队。更多。
    【解决方案2】:

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

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

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-04
      • 2014-11-20
      • 1970-01-01
      • 2011-01-23
      • 1970-01-01
      • 2011-01-30
      • 2011-06-13
      相关资源
      最近更新 更多