【问题标题】:Dump a log message from tortoise svn to a file using TortoiseProc.exe使用 TortoiseProc.exe 将来自 tortoise svn 的日志消息转储到文件中
【发布时间】:2016-08-25 18:55:43
【问题描述】:

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

我什至尝试只将文件名放在那里,以为它会在同一个目录中创建,尝试只提供路径,甚至尝试自己创建文件等待它写入​​。没有任何效果。任何帮助将不胜感激。

【问题讨论】:

  • 我知道可以使用 svnlook 命令,但是我没有安装命令行界面。如果有人可以帮助我将 svnlook 输出转储到文件中,那就太好了。但当务之急是使用 TortoiseProc.exe

标签: perl svn tortoisesvn


【解决方案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"`;

【讨论】:

    【解决方案2】:

    outfile 参数仅在您使用 TortoiseSVN 的夜间构建时才有效。见here

    另一种方法可能是使用 TortoiseSVN 附带的 svn.exe,方法如下:

    svn.exe log -v -r 111041 >output.txt
    

    【讨论】:

      猜你喜欢
      • 2017-12-03
      • 2012-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多