我正在Windows服务器上运行SVN,而我正在使用Perl脚本来实现一些预提交挂钩。我看到来自TortoiseSVN的以下错误消息:
错误!! ScriptError !!无法解析 line:_U path / to / files / trunk
这是脚本:
foreach my $line (`$svnlook changed -t "$txn" "$repos"`)
{
chomp($line);
if ($line !~ /([AUD]).\s\s(.+)$/)
{
print STDERR "!!Script Error!! Can't parse line: $line\n";
exit(1);
}
else
{
# perform some actions
}
}
exit(0);
我尝试用/_([AUD]).\s\s(.+)$/
替换正则表达式而没有成功 - 我甚至试过/.*([AUD]).\s\s(.+)$/
。
思考?建议?
答案 0 :(得分:4)
不看SVN文档,我只是猜测:
在上面的输出中,在U和实际路径之间只显示一个空格,但在所有正则表达式中都有\s\s
。
[编辑] 好的,现在我看看svnlook reference。首先,你的正则表达式失败了当前版本的svnlook,因为输出指定如下:
所以,你应该能够匹配^([_AUD]+)\s+(.+)$
之类的东西。人们可以更具体,但这不是必要的。
如果这不匹配,请将命令的输出传递给文件,并在此处发布相关部分。
答案 1 :(得分:0)
if ($line !~ /^_?([AUD])\s+(.+)$/
应该可以正常使用。