2

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

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

鉴于 Git 对它的支持,我的想法是运行git-cvsserver(1)前端,但我没有这方面的经验,也没有必须事先进行的实际转换。假设总体而言这是一个理智的想法,任何人都可以指点列出有关此迁移路径的经验的文章。如果您必须提供任何此类建议,了解潜在的警告也是很好的。

迁移应该尽可能无缝。因此,只要 CVS 前端之后无缝运行,在几次“排练”之后在晚上进行它就可以了。

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

4

1 回答 1

1

虽然 git 提供了 CVS 服务器,但该服务器非常有限。您不能创建标签或分支,并且 git 分支显示为 CVS 模块。此外,您无法将 CVS 存储库转换为 git,以使之后的文件修订号相等(git cvsserver 在需要时为每个 git 分支创建自己的文件修订数据库)。

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

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

于 2012-11-16T22:24:57.353 回答