如何与(“集中式”)DVCS存储库并行运行CVS?

时间:2012-11-15 16:27:04

标签: migration cvs dvcs

目前我正在调查如何引入DVCS(特别是我正在考虑Hg和Git),同时保留CVS存储库(甚至只是通过CVS协议的访问机制)。这里有一些开发人员非常不愿意从CVS切换,但是并行运行它们应该没问题,如果它们可以自动同步或者有CVS协议前端。

过去,CVS存储库已经过手动编辑(磁盘上),但似乎一切都是一致的,我之前无论如何都可以尝试转换,我们也可以保留CVS存储库的副本。当我们迁移时。

鉴于Git对它的支持,我的想法是运行git-cvsserver(1)前端,但我没有经验,也没有预先进行的实际转换。假设这是一个理智的想法,任何人都可以指出列出这个迁移路径经验的文章。如果你必须提供任何这样的建议,那么了解潜在的警告也会很棒。

迁移应该尽可能无缝。因此,只要CVS前端在之后无缝地工作,那么在几次“排练”之后的晚上进行演出就会没问题。

DVCS的工作流程最终将再次集中,但我想利用卓越的合并跟踪和古老的CVS根本没有的其他机制。

1 个答案:

答案 0 :(得分:1)

虽然git提供CVS服务器,但此服务器非常有限。您无法创建标记或分支,git分支显示为CVS模块。此外,您无法将CVS repo转换为git,以便之后文件修订号相同(git cvsserver在需要时为每个git分支创建自己的文件修订数据库)。

OTOH你可以使用git作为cvs前端。工作流程是您使用git cvsimport从CVS服务器提取历史记录,并使用git cvsexportcommit将一些git提交导出到本地CVS结帐中。 Tsuna's blog中有一篇文章详细介绍了这一点。

解决此问题的另一种方法是分析您的同事不想切换的原因。在这里,他们根本不知道/关心VCS的新方法,以及我们总是这样做的习惯。在一个试点项目中使用mercurial是说服其他团队成员的关键。