如何在多站点场景中提高 CVS 性能?

发布于 2024-07-07 06:55:01 字数 258 浏览 8 评论 0原文

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

是否有任何好的 CVS 代理,或者任何保持单独的 CVS 服务器同步的巧妙方法? 对于如何在这种情况下提高性能,您还有其他建议吗?

不幸的是,在这个项目范围内我们将一直使用 CVS,因此短期内不可能切换到完全不同的东西。

I am currently working in a project with developers working on three sites. One of the sites is in Delhi, India while the other two are in Europe. The communication between the European offices and the office in Delhi has poor bandwidth and quite bad latency, and a CVS update from there often takes 5-10 minutes even though only a few files have changed.

Is there any good CVS proxies out there, or any neat way of keeping separate CVS servers in sync? Do you have any other tips on how the performance can be improved in this scenario?

Unfortunately, we will be stuck with CVS during the scope of this project, so switching to something completely different is not an option in the short-term.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦旅人picnic 2024-07-14 06:55:01

为什么不切换选项?

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

甚至还有 svn 工具/指南git 工具/指南 可以为您完成此 CVS 转换。

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

Why isn't switching an option?

I would highly recommend to switch to SVN or git instead. And that you do this conversion as soon as possible... like today :)

There are even svn tools/guides and git tools/guides out there that will do this CVS conversion for you.

I personally use and love SVN for my work, but based on your above description, it sounds like git might be the better option for you.

苏佲洛 2024-07-14 06:55:01

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

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

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

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

这听起来很麻烦,如果您这样做的话确实如此手动,但它有效。 如果您手动执行此操作,则需要一些纪律。 也许时区这一次站在了你这边。

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

该传输工具是用 Perl 编写的,我花了大约两周的时间来开发它,并全职致力于它。

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

Here is what I have done a long time ago in similar circumstances when bandwidth and unreliable networks were an issue:

  • Make a copy of the repository and install it in the remote location. You know have CVS1 and CVS2.
  • Lock one of the two copies (CVS1) by preventing commits. This is achieved by modifying 'commitinfo' in the CVSROOT module.
  • CVS1 can be used for updates only
  • CVS2 can be used for updates and commit

When you want to give access in commit to copy 1, proceed as follows:

  • Lock CVS2
  • Copy CVS2 to CVS1
  • Unlock CVS1

This sounds cumbersome, and it is if you do it manually, but it works. It requires a bit of discipline if you do it manually. May be timezones are on your side for once.

I wrote a tool to keep track of who had the commit token and to transfer repositories from one site to another automatically via rsync and SSH. It worked nicely for a couple of years. We never lost any data and it took about 5 minutes to transfer the token from one location to another.

The transfer tool was written in perl and it took me about two weeks to develop it, working on it full time.

I know that a long time ago FreeBSD developers used CVSup but I never used that tool myself.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文