使用选项文件中止cvs2git checkout(Windows)

时间:2017-11-13 08:59:15

标签: git cvs cvs2svn cvs2git

我正在尝试将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方法,但是这样做时会出错。

步骤

  1. pass1(CollectRevsPass)
  2. pass2(CleanMetadataPass)
  3. pass3(Collat​​eSymbolsPass)
  4. 工作正常,但在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和命令行方法中使用了相同的存储库路径。

    那么我该如何解决这个问题呢?

1 个答案:

答案 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']),

希望有所帮助!