在SVN预提交钩子中提取多行提交日志

时间:2018-10-19 13:39:01

标签: batch-file svn pre-commit-hook

我试图在pre commithook中获取完整的提交注释。以下是我的代码,

set REPOS=%1
set TXN=%2 
SET comment
FOR /F "tokens=*" %%g IN ('svnlook log %REPOS% -t %TXN%') do (SET comment=%comment%%%g)

但是我只能获取日志的最后一行。有什么办法可以获取完整的日志(多行)?

1 个答案:

答案 0 :(得分:2)

您基本上有延迟的扩展问题。这是批处理文件在执行代码行之前如何扩展变量的古怪事物之一。因此,您有两种选择来解决此问题。

启用延迟扩展并使用感叹号引用您的变量。

from utils import string #  instead of import string

string.generate_random_letters()

通过setlocal enabledelayedexpansion FOR /F "tokens=*" %%g IN ('svnlook log %REPOS% -t %TXN%') do (SET comment=!comment!%%g) 命令使用一些技巧。您可以将百分比符号加倍,并使用CALL命令,该命令为您提供了两个阶段的变量扩展。

CALL