1

我在一个项目中工作,我们使用 CVS 进行版本控制。但问题是中央 CVS 服务器位于钦奈(印度),我们必须每天从古尔冈(印度)访问或签出代码。结帐大约需要7个小时。这很耗时。

我们想要的是我们需要配置一个本地 CVS 服务器并通过从中央 CVS 服务器签出的方式导入代码,以便我们可以轻松地从本地服务器签出。但是这一步有两个问题——

  1. 是否可以通过从中央 CVS 服务器检查代码并使用代码导入本地 CVS 服务器来创建本地 CVS 服务器?

  2. 如果第一步是可能的,我们如何将本地 CVS 服务器与中央 CVS 服务器同步

请帮助我。或者有没有其他方法可以实现我的目的?

4

1 回答 1

2

CVS 不是分布式版本控制系统,因此大多数实现不支持为同一个存储库(即本地和远程)部署多个服务器的概念。

也就是说,维基百科上的 CVSNT 页面指出:

In November 2008 the project released version 2.5.04 with support for
multi site repository replication or 'local' repository caches and
specific performance features for using large files use over a WAN.

CVSNT 现在是一种商业产品,因此这对那些喜欢免费解决方案的人来说是一个挑战。(正如任何优秀的封闭式工具供应商所说,CVSNT 很欣赏free 不是 free的说法,但这是完全不同的事情。)

将 CVS 存储库转换为 CVSNT 应该是微不足道的,因为 CVSNT 源自 CVS。将复杂的 CVS 存储库迁移到 DVCS 不一定是微不足道的或没有风险的,特别是如果 CVS 存储库持续干预修订、标签、分支等等。

由于这种性质的任何努力都可能需要整个组织进行重大改变,因此如果要着手进行这样的努力,考虑迁移到更普遍的 DVCS 的可能性似乎是谨慎的。

CVSNT 不是 CVS 存储库复制解决方案的唯一商业供应商。例如,维基百科的WANdisco页面说:

WANdisco provides replicated products for CVS, Apache Subversion, Git, Gerrit and Apache Hadoop.

请注意,提及商业产品绝对不是对它们的认可,也不是推荐。共享的信息只是为读者提供了在这种情况下潜在选择的一些知识。

存在其他潜在的解决方案路径。关于“cvs 存储库复制”主题的 Web 搜索产生的结果表明,一些 CVS 用户拥有分布式复制块设备之类的工具来分发对存储库所在文件存储的访问。

此外,无论好坏,取决于本地和远程开发之间的并发级别,有时利用 DVCS 来减少与远程服务器的交互而不更改远程服务器是合理的,但请认识到以下段落是只是为了向出于某种原因不想将远程存储库迁移到另一个 VCS 的人分享一个潜在的非显而易见的解决方案。

该受访者看到了将 CVS 签出提交到 DVCS 中的实例,以便其他开发人员随后可以利用 DVCS 以分布式方式处理签出。根据需要,底层 CVS 签出会定期与 CVS 服务器合并。当然,这增加了很大的复杂性,在本地开发人员需要访问整个远程存储库的情况下并不令人满意,并且在本地和远程开发人员同时使用分支的情况下也很笨拙。这个想法实际上只适用于远程和本地开发松散耦合的情况(即存储库所在的远程开发人员不会过多地参与通过 DVCS 共享的代码)。

另请参阅: *如何与(“集中式”)DVCS 存储库并行运行 CVS?

于 2016-05-20T19:26:17.190 回答