使用TortoiseProc.exe将来自tortoise svn的日志消息转储到文件中

时间:2013-12-05 05:39:54

标签: perl svn tortoisesvn

我正在尝试创建一个脚本,该脚本可以解析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

我甚至尝试只放置文件名,认为它是在同一目录中创建的,尝试只提供路径,甚至尝试自己创建文件等待它写入​​。什么都行不通。任何帮助将不胜感激。

2 个答案:

答案 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
相关问题