我正在尝试将CVS存储库转换为GIT。但我只想逐个模块转换,否则我会得到fals提交和文件差异。 存储库包含1个CVSROOT和4个模块。
所有命令均来自此cvs2git documentation。 当我使用命令行选项时:
python path\to\cvs2git --blobfile=cvs2svn-tmp\git-blob.dat --dumpfile=cvs2svn-tmp\git-dump.dat "--username=cvs2git" \\remoteServer\path\to\myrepo\module
迁移工作。
存储库位于远程服务器上,并且在我的电脑上创建了 git-blob.dat 和 git-dump.dat 。
为了更加灵活并将CVS作者转换为git作者我想使用options-file方法,但是这样做时会出错。
步骤
工作正常,但在pass4(FilterSymbolsPass)我收到一个错误:
我要转换的模块的路径是\\remoteServer\path\to\myrepo\module
。
过滤掉排除的符号并总结项目......错误: command' cvs -Q -R -f -d:local:\\ remoteServer \ path \ to \ myrepo K co -r1.1 -p -kb模块/ .cvsignore'退出状态= 1和失败 以下输出:cvs [checkout aborted]:本地访问网络 不支持共享(使用-N来验证此错误)。
我不知道为什么这是因为我在options-file和命令行方法中使用了相同的存储库路径。
那么我该如何解决这个问题呢?
答案 0 :(得分:1)
如果从命令行运行cvs2git
,则默认使用内部代码从CVS中读取数据。但是如果使用选项文件方法运行它,则默认使用CVSRevisionReader
,它使用cvs
命令从CVS存储库中获取信息。
一种选择是告诉选项方法使用ExternalBlobGenerator
而不是GitRevisionCollector
。但是,如果您的存储库实际上是由CVSNT编写的(而不是标准的CVS),那么建议您使用CVSRevisionReader
。
“不支持本地访问网络共享”的问题是CVSNT的特性。该错误消息还提示了解决方案:将-N
添加到选项中。您可以按照the instructions here并调整传递给CVSRevisionReader
构造函数的参数来执行此操作:
CVSRevisionReader(cvs_executable=r'cvs', global_options=['-q', '-N', '-f']),
希望有所帮助!