为什么可以';Cygwin CVS是否读取Ruby/Perl脚本中的CVS密码文件?
在Windows命令行和cygwin bash上,我可以毫无问题地执行以下操作:为什么可以';Cygwin CVS是否读取Ruby/Perl脚本中的CVS密码文件?,ruby,perl,cygwin,cvs,Ruby,Perl,Cygwin,Cvs,在Windows命令行和cygwin bash上,我可以毫无问题地执行以下操作: cvs login cvs -Q log -N -rVersion_01_00 同一目录中的ruby脚本包含以下内容: `cvs login`; `cvs -Q log -N -rVersion_01_00`; 在Windows命令行上执行ruby脚本时,出现以下错误: cvs log: warning: failed to open /cygdrive/c/Documents and Settings/za1
cvs login
cvs -Q log -N -rVersion_01_00
同一目录中的ruby脚本包含以下内容:
`cvs login`;
`cvs -Q log -N -rVersion_01_00`;
在Windows命令行上执行ruby脚本时,出现以下错误:
cvs log: warning: failed to open /cygdrive/c/Documents and Settings/za100744/.cvspass for reading: No such file or directory
如果我在cygwin bash shell中运行脚本,我将获得与手动输入命令相同的输出
我不知道出了什么问题。Ruby脚本生成的路径是错误的,因为它是cygwin路径,但它直接在命令行上正常工作。我使用的CV是cygwin的一部分:
which cvs
cvs is an external : C:\cygwin\bin\cvs.exe
Ruby是一键式安装程序版本:
which ruby
/cygdrive/c/Ruby/bin/ruby
Ruby下的cvs似乎无法将/cygdrive/c解析为c:但在cmdline下工作正常
Perl给了我完全相同的问题
my $str = "cvs -Q log -N -r$cvs_tag|";
open(CVS_STATUS, $str) or die "\n##ERROR##";
看起来可能是CVS无法创建文件,或者您的路径错误。文件
.cvspass
是否存在?如果没有,建议您尝试创建一个空的.cvspass
文件,然后运行命令。e、 g.做
touch ~/.cvspass
如果这没有帮助,那么问题可能与路径有关。有一些可能性
$HOME
设置不正确,您的HOME目录与\etc\passwd
中的目录不匹配等。请参阅以了解一些有助于解决问题的疑难解答步骤。在基于cygwin的perl脚本和rsync等内置工具中,unix、混合和windows样式的路径存在多个问题。例如,rsync无法处理风型路径。使用工具“cygpath.exe”正确调整它们。也许这就是原因 使用a解决了这个问题。这并不理想,因为我必须为拥有cygwin cvs的用户发送带有脚本的cvs可执行文件,但总比没有好。该文件存在并且可以访问。ruby下的cvs似乎无法将/cygdrive/c解析为c:
,但在cmdline下工作正常。该路径是cvs可执行文件的内部路径,因此cygpath.exe不会有帮助。但是我将这些信息归档以备将来使用。你的ruby/perl也是cygwin的吗?ruby和perl不是cygwin的。
my $str = "cvs -Q log -N -r$cvs_tag|";
open(CVS_STATUS, $str) or die "\n##ERROR##";