从RCS迁移项目的git?(Migrate project from RCS to git?)

2019-09-01 02:09发布

我有一个20岁的项目 ,我想从RCS迁移到Git的,又不失历史。 所有网页显示,一个真正路径是通过CVS。 但是,谷歌搜索和尝试不同的脚本的一个小时后,我还没有找到任何东西,我的RCS项目树成功地转换为CVS。 我希望善良的人在#1会知道什么实际工作,而不是什么声称工作,没有。

(我搜索#2同时使用本地SO搜索和谷歌搜索,但如果有在数据库中有帮助的答案,我错过了。)

工程进展rcs-fast-export的工具http://git.oblomov.eu/rcs-fast-export被修复于2009年4月14日,这个版本似乎为我工作。 该工具直接转换,没有中间CVS与git。 由于朱塞佩和的Jakub!


没有工作的事情,我还记得:

  • rcs-to-cvs脚本船只在contrib的CVS源代码目录

  • rcs-fast-export的工具http://git.oblomov.eu/rcs-fast-export在版本13 2010年4月之前

  • rcs2cvs在文档中发现的脚本被称为“CVS-RCS- HOW-TO文件的Linux”

Answer 1:

见InterfacesFrontendsAndTools对Git的Wiki页面,在“工具”,“与其他版本控制系统进行交互”,“其他”。 在那里,你会发现一个描述和RCS快速出口 (链接的GitWeb由Giuseppe“奥勃洛莫夫” Bilotta)Ruby脚本。

(网络搜索也会找到Ohloh对网页及公告的项目提到)。



Answer 2:

作为一般规则,你应该小心,因为你跑什么脚本。 对于RCS - > GIT它可能是您的最佳利益遵循RCS-> CVS-> GIT方法。

简单浏览了一下RCS-快速export.rb为2011-01-12和整个代码的这部分跑了。 这是可怕的最好的。

# steal username/email data from other init files that may contain the
# information
def steal_username
    [
            # the user's .hgrc file for a username field
            ['~/.hgrc',   /^\s*username\s*=\s*(["'])?(.*)\1$/,       2],
            # the user's .(g)vimrc for a changelog_username setting
            ['~/.vimrc',  /changelog_username\s*=\s*(["'])?(.*)\1$/, 2],
            ['~/.gvimrc', /changelog_username\s*=\s*(["'])?(.*)\1$/, 2],
            []
    ].each do |fn, rx, idx|
...


Answer 3:

OK,稍微修改一下后,我发现这是微不足道的RCS转换为CVS。 该文件是在相同的格式,所以它只是将文件移动到现有的CVS根的问题。 这是假设你有机会到RCS文件。

# Create CVS root dir. You only need to do this once.
mkdir $HOME/cvs/
cd $HOME/cvs/
cvs init

# Import a repository from RCS to CVS
cp -a _projectname_/RCS $HOME/cvs/_projectname_


Answer 4:

刚刚发现这一点,这对我来说工作得很好:

http://cynic.cc/blog/posts/migrate-from-rcs-to-git/

只是注意,“CVS-源目录”该网页上的需要是绝对路径。



Answer 5:

我也有这个问题,并与cvs2svn,parsecvs和诸如此类的东西搏斗。 parsecvs得到的最接近但基思似乎已经留下了它,现在随机叉弹出。 我用它击中的问题是它会解析RCS文件得很好,但它做的最后一件事是git rm文件,所以我将不得不淤泥与周围git reset撤消删除。

后来我发现Mercurial的convert : https://www.mercurial-scm.org/wiki/ConvertExtension问题解决了!

我试图从增量单独RCS树木添加一些东西,它似乎已经奏效。



文章来源: Migrate project from RCS to git?