如果我尝试执行以下脚本,则会出现“svn:Write error” 但是,如果我禁用“最后”行,则没有任何错误 为什么呢?
#!/usr/bin/perl
my $repos = $ARGV[0];
my $rev = $ARGV[1];
my $repoURL = "file:///" . $ARGV[0];
open (SVNLOG, "svn log -r $rev -v $repoURL | ");
while (my $line = <SVNLOG>) {
last;
}
close(SVNLOG);
答案 0 :(得分:2)
因为svn
进程正在尝试写入流(其标准输出),并且在流完成之前关闭了流。如果您不希望看到此错误行,则必须将svn
标准错误重定向到/dev/null
,或者确保在关闭之前阅读其输出的所有文件句柄。
答案 1 :(得分:0)
不直接回答您的问题,但您应该考虑使用CPAN中的SVN::Client而不是直接使用svn命令行工具。