在Windows命令行和Cygwin bash的我可以执行以下没有问题:为什么Cygwin CVS无法读取Ruby/Perl脚本中的CVS密码文件?
cvs login
cvs -Q log -N -rVersion_01_00
在同一目录中的Ruby脚本包含以下内容:
`cvs login`;
`cvs -Q log -N -rVersion_01_00`;
当我在执行Ruby脚本Windows命令行我得到以下错误:
cvs log: warning: failed to open /cygdrive/c/Documents and Settings/za100744/.cvspass for reading: No such file or directory
如果我在cygwin bash shell中运行脚本,我得到sam e输出,我会手动输入命令。
我不知道发生了什么问题。 Ruby脚本生成的路径是错误的,因为它是一个cygwin路径,但它直接在命令行上正确运行。我使用之际,cygwin的一部分CVS:
which cvs
cvs is an external : C:\cygwin\bin\cvs.exe
Ruby是一键安装版本:
which ruby
/cygdrive/c/Ruby/bin/ruby
好像红宝石下CVS无法解决/ cygdrive/C到c:但从cmdline可以正常工作。
Perl给了我完全相同的问题。
my $str = "cvs -Q log -N -r$cvs_tag|";
open(CVS_STATUS, $str) or die "\n##ERROR##";
你的ruby/perl,他们是不是也来自cygwin? – 2009-09-15 13:30:38
Ruby和perl不是Cygwin。 – Gerhard 2009-09-16 05:16:56