Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';Cygwin CVS是否读取Ruby/Perl脚本中的CVS密码文件?_Ruby_Perl_Cygwin_Cvs - Fatal编程技术网

为什么可以';Cygwin CVS是否读取Ruby/Perl脚本中的CVS密码文件?

为什么可以';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

在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/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##";