CVS文件位置在Perl中有效吗?

CVS文件位置在Perl中有效吗?,perl,cvs,Perl,Cvs,是否有任何方法可以确定CVS中是否存在partiualr文件?我不想签出该文件,只想通过Perl查看该文件是否存在。您可以使用cvs status命令进行检查。或者 通过系统调用直接调用它 my @output = `cvs status $filename`; 您可以试探性地grep”、v“字符串的结果文本(始终是CVS存储库文件的后缀),或者实际解析输出,查找“存储库修订:”行 或者使用Cvs模块: use Cvs; my $cvs = new Cvs("/u1/cvs", cvsro

是否有任何方法可以确定CVS中是否存在partiualr文件?我不想签出该文件,只想通过Perl查看该文件是否存在。

您可以使用
cvs status
命令进行检查。或者

  • 通过系统调用直接调用它

    my @output = `cvs status $filename`;
    
    您可以试探性地grep
    ”、v“
    字符串的结果文本(始终是CVS存储库文件的后缀),或者实际解析输出,查找“存储库修订:”行

  • 或者使用
    Cvs
    模块:

    use Cvs; 
    my $cvs = new Cvs("/u1/cvs", cvsroot => $ENV{CVSROOT}, password =>"*****") 
        or die $Cvs::ERROR; 
    my $status = $cvs->status("CVS_file"); 
    print $status->status() . "\n";
    
    ====> Needs Checkout
    
    my $status = $cvs->status("bogus_file"); 
    print $status->status() . "\n";
    
    ====> Unknown
    

  • @伊姆兰——不完全是。在我的测试中,不存在的文件具有“状态:未知”,而存在的文件具有“状态:需要签出”。这可能是因为我已经签出了目录,尽管我在未签出文件时收到以下错误消息oot“cvs[状态中止]:找不到“我的文件”:没有这样的文件或目录“@DVK-如果签出了该特定目录中的任何其他文件,我可以看到未知状态,如果没有签出任何文件,那么显示“无此类文件或目录”。
    use Cvs; 
    my $cvs = new Cvs("/u1/cvs", cvsroot => $ENV{CVSROOT}, password =>"*****") 
        or die $Cvs::ERROR; 
    my $status = $cvs->status("CVS_file"); 
    print $status->status() . "\n";
    
    ====> Needs Checkout
    
    my $status = $cvs->status("bogus_file"); 
    print $status->status() . "\n";
    
    ====> Unknown