为了导入 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 错误是什么?
放弃了这种方法并使用了cvs2git
.
该
cvs2git
工具可用于将 CVS 存储库迁移到更新的版本控制工具,包括 git。
示例用法:
cvs2git \
--blobfile=cvs2git-tmp/git-blob.dat \
--dumpfile=cvs2git-tmp/git-dump.dat \
--username=cvs2git \
/path/to/cvs/repo
来自http://git-scm.com/docs/git-cvsimport
警告: git cvsimport 使用 cvsps 版本 2,该版本已被弃用;它不适用于 cvsps 版本 3 及更高版本。如果您正在执行 CVS 存储库的一次性导入,请考虑使用 cvs2git 或 parsecvs。
检查您是否有 cvsps 版本 3 或更高版本
$ cvsps --version
如果你可以将它降级到 cvsps 版本 2,你就完成了。
主要区别cvs2git
不是增量(使用此解决方法除外),因此它针对一次性结帐。你可以做增量更新,并cvsimport
保持最新的 cvs repo。
您可以将其降级cvsps-2.1
并重新测试,因为git cvsimport
它不能正常工作cvsps-3.x
,因为它具有不同的语法。
在 OSX 上,您可以(拥有brew
):
brew tap homebrew/versions
brew install cvsps2
brew unlink cvsps
brew link --overwrite cvsps2
先试试 cvs-fast-export:
http://www.catb.org/esr/cvs-fast-export/
在一些奇怪的情况下,它会彻底失败。如果发生这种情况,请尝试 cvs2git。您不想先使用 cvs2git,因为它非常慢,生成格式不方便的结果,不转换 cvsignore 文件,并且还有其他几个小问题。
不要使用 git-cvsimport 或任何版本的 cvsps - 它们非常糟糕,并且可能会放错您的分支连接。我是 cvsps-3.x 版本的负责人;我对那个代码进行了深度处理,以支持成为 cvs-fast-export 的东西。