【发布时间】:2010-12-09 20:04:27
【问题描述】:
我有一个20-year-old project,我想从 RCS 迁移到 git,而不会丢失历史记录。所有网页都表明唯一的真正途径是通过 CVS。但是经过一个小时的谷歌搜索和尝试不同的脚本后,我还没有找到任何成功将我的 RCS 项目树转换为 CVS 的东西。我希望 Stackoverflow 的好人知道什么是真正有效的,而不是那些声称有效而无效的方法。
(我使用原生 SO 搜索和 Google 搜索搜索 Stackoverflow,但如果数据库中有有用的答案,我就错过了。)
更新:http://git.oblomov.eu/rcs-fast-export 的 rcs-fast-export 工具已于 2009 年 4 月 14 日修复,这个版本似乎对我有用。此工具将 直接 转换为 git,而无需中间 CVS。谢谢朱塞佩和雅库布!!!
我仍然记得的没用的事情:
在 CVS 源代码的
contrib目录中提供的rcs-to-cvs脚本http://git.oblomov.eu/rcs-fast-export 上的
rcs-fast-export工具在 2010 年 4 月 13 日之前的版本中在名为“CVS-RCS-HOW-TO Document for Linux”的文档中找到
rcs2cvs脚本
【问题讨论】:
-
如果您发现了许多行不通的方法,并且您正在寻找行之有效的方法,我认为列出行之有效的方法是明智之举'不工作,所以没有人浪费更多时间:)
-
附带说明,有些人认为从 CVS(一旦你到达那里)到 git 的最佳方式是通过颠覆。 stackoverflow.com/questions/881158/…
-
为什么有人保留历史?我是一名科学家和工程师,我研究软件。拥有20年历史的神器代表着不可替代的数据!
-
阅读这篇文章后,我能够将一个 RCS 存储库(一个文件)转换为 git。对于新手,以下 Unix 命令可能会帮助您入门。确保安装了 ruby 和 git。转到包含逗号-v 文件的目录(称为 file.txt,v 之类的文件)。键入“git --bare init”以创建一个裸 git 存储库。输入“ruby your/path/to/rcs-fast-export.rb | git fast-import”。
-
当我将 RCS 存储库转换为 CVS 后,我刚刚创建了一个 CVS 存储库并将 RCS
*,v文件复制到其中。 CVS 存储库基本上是一个目录树,其中包含一堆 RCS 样式的*,v文件。CVSROOT目录很特殊,但它是在创建 CVS 存储库时创建的。