cvs2git 结帐因选项文件 (Windows) 而中止
cvs2git checkout aborted with options-file (Windows)
我正在尝试将 CVS 存储库转换为 GIT。但我只想逐个模块转换,否则我会得到错误提交和文件差异。
存储库包含 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 作者,我想使用选项文件方法,但这样做时出现错误。
步骤
- pass1 (CollectRevsPass)
- pass2 (CleanMetadataPass)
- pass3 (CollateSymbolsPass)
工作正常,但在 pass4 (FilterSymbolsPass) 中出现错误:
我要转换的模块的路径是 \remoteServer\path\to\myrepo\module
.
Filtering out excluded symbols and summarizing items... ERROR: The
command 'cvs -Q -R -f -d :local:\remoteServer\path\to\myrepo
K co -r1.1 -p -kb module/.cvsignore' failed with exit status=1 and the
following output: cvs [checkout aborted]: Local access to network
share not supported (Use -N to o verride this error).
我不知道这是为什么,因为我在选项文件和命令行方法中使用了相同的存储库路径。
那么我该如何解决这个问题呢?
如果您从命令行运行 cvs2git
,默认是使用内部代码从 CVS 中读取数据。但是如果你 运行 它使用选项文件方法,默认是使用 CVSRevisionReader
,它使用 cvs
命令从你的 CVS 存储库中获取信息。
一个选项是告诉选项方法使用 ExternalBlobGenerator
而不是 GitRevisionCollector
。但是,如果您的存储库实际上是由 CVSNT 编写的(而不是标准 CVS),那么建议您使用 CVSRevisionReader
.
"Local access to network share is not supported" 的问题是 CVSNT 的一个特点。错误消息还建议解决方案:将 -N
添加到选项中。您可以通过遵循 the instructions here 并调整传递给 CVSRevisionReader
构造函数的参数来做到这一点:
CVSRevisionReader(cvs_executable=r'cvs', global_options=['-q', '-N', '-f']),
希望对您有所帮助!
我正在尝试将 CVS 存储库转换为 GIT。但我只想逐个模块转换,否则我会得到错误提交和文件差异。 存储库包含 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 作者,我想使用选项文件方法,但这样做时出现错误。
步骤
- pass1 (CollectRevsPass)
- pass2 (CleanMetadataPass)
- pass3 (CollateSymbolsPass)
工作正常,但在 pass4 (FilterSymbolsPass) 中出现错误:
我要转换的模块的路径是 \remoteServer\path\to\myrepo\module
.
Filtering out excluded symbols and summarizing items... ERROR: The command 'cvs -Q -R -f -d :local:\remoteServer\path\to\myrepo K co -r1.1 -p -kb module/.cvsignore' failed with exit status=1 and the following output: cvs [checkout aborted]: Local access to network share not supported (Use -N to o verride this error).
我不知道这是为什么,因为我在选项文件和命令行方法中使用了相同的存储库路径。
那么我该如何解决这个问题呢?
如果您从命令行运行 cvs2git
,默认是使用内部代码从 CVS 中读取数据。但是如果你 运行 它使用选项文件方法,默认是使用 CVSRevisionReader
,它使用 cvs
命令从你的 CVS 存储库中获取信息。
一个选项是告诉选项方法使用 ExternalBlobGenerator
而不是 GitRevisionCollector
。但是,如果您的存储库实际上是由 CVSNT 编写的(而不是标准 CVS),那么建议您使用 CVSRevisionReader
.
"Local access to network share is not supported" 的问题是 CVSNT 的一个特点。错误消息还建议解决方案:将 -N
添加到选项中。您可以通过遵循 the instructions here 并调整传递给 CVSRevisionReader
构造函数的参数来做到这一点:
CVSRevisionReader(cvs_executable=r'cvs', global_options=['-q', '-N', '-f']),
希望对您有所帮助!