我正在尝试创建一个脚本,该脚本可以解析svn中特定修订版本的日志,并从该日志中获取详细信息,例如作者姓名,受影响的基础路径以及执行的操作。我试图在perl中使用带有反引号的以下命令:
TortoiseProc.exe /command:log /path:"$svn_path" /startrev:"$svn_rev" /endrev:"$svn_rev" /outfile:$file
;
对于outfile选项,它被指定为/ outfile:path \ to \ file。我已经尝试了很多组合来获得正确的语法,但是没有创建日志文件。我试着做
/outfile:D:\other\to\filename.txt
我甚至尝试只放置文件名,认为它是在同一目录中创建的,尝试只提供路径,甚至尝试自己创建文件等待它写入。什么都行不通。任何帮助将不胜感激。
答案 0 :(得分:1)
Perl和大多数shell中的反斜杠需要正确引用。检查cmd.log文件并调整反斜杠的数量直到它工作
my $file = "D:\\\\other\\\\to\\\\filename.txt";
open my $fh,'>','cmd.log' or die $!;
print $fh "TortoiseProc.exe /command:log /path:\"$svn_path\" /startrev:\"$svn_rev\" /endrev:\"$svn_rev\" /outfile:\"$file\"\r\n";
close($fh);
my $out = `TortoiseProc.exe /command:log /path:"$svn_path" /startrev:"$svn_rev" /endrev:"$svn_rev" /outfile:"$file"`;
答案 1 :(得分:0)
outfile
参数仅在您使用每晚构建的TortoiseSVN时才有效。见here
另一种方法可能是使用svn.exe,它也带有TortoiseSVN,以下列方式:
svn.exe log -v -r 111041 >output.txt