如何将CVS导入git scm?

时间:2012-03-07 22:12:06

标签: git cvs git-cvs

为了导入CVS模块的修订版, 我正在使用:

/usr/lib/git-core/git-cvsimport -a -i -p r,revisionname -k -v -d :pserver:user@xxx.com:2401/srv/cvs/rootname modulename

它工作了一段时间然后我得到类似cvsps的错误。如何确定cvsps错误是什么?

4 个答案:

答案 0 :(得分:3)

放弃这种方法并使用cvs2git

  

cvs2git是一个可用于将CVS存储库迁移到较新版本控制工具(包括git)的工具。

样本用法:

cvs2git \
    --blobfile=cvs2git-tmp/git-blob.dat \
    --dumpfile=cvs2git-tmp/git-dump.dat \
    --username=cvs2git \
    /path/to/cvs/repo

答案 1 :(得分:2)

来自http://git-scm.com/docs/git-cvsimport

  

警告:git cvsimport使用cvsps版本2,该版本被认为已弃用;它不适用于cvsps版本3及更高版本。如果您正在执行CVS存储库的一次性导入,请考虑使用cvs2git或parsecvs。

检查您是否拥有cvsps版本3或更高版本

$ cvsps --version

如果你可以将它降级到cvsps版本2,那么你就完成了。

主要区别是cvs2git不是增量的(使用this解决方法除外),因此它针对一次性结帐。使用cvsimport,您可以执行增量更新,并及时了解cvs repo。

答案 2 :(得分:2)

您可以将其降级为cvsps-2.1并重新测试,因为git cvsimportcvsps-3.x无法正常工作,因为它的语法不同。

在OSX上你可以(有brew):

brew tap homebrew/versions
brew install cvsps2
brew unlink cvsps
brew link --overwrite cvsps2

答案 3 :(得分:1)

首先尝试cvs-fast-export:

http://www.catb.org/esr/cvs-fast-export/

在某些奇怪的情况下,它将彻底失败。如果发生这种情况,请尝试cvs2git。您不希望先使用cvs2git,因为它非常慢,会以不方便的格式生成结果,不会转换cvsignore文件,并且还有其他一些小问题。

不要使用git-cvsimport或任何版本的cvsps-它们吸收得很糟,可能会放错分支连接的位置。我是负责cvsps-3.x发行的人;我对代码进行了深入的介绍,以支持后来成为cvs-fast-export的代码。