如何在TortoiseSVN中使用启动提交挂钩来设置自定义日志条目?

时间:2008-09-12 13:45:27

标签: tortoisesvn

我想将TortoiseSVN自动化作为提交过程的一部分。 具体来说,我想为提交对话框动态创建一个日志条目。

我知道我可以从命令行启动提交对话框,也可以右键单击文件夹并选择svncommit。

我想使用start commit hook来设置日志条目。 我认为这可以通过在MESSAGEFILE变量中传递一个条目文件名来实现,但是当我添加一个钩子脚本时,它无法看到这个变量(右键单击并选择svncommit后钩子成功启动)。

当我尝试使用命令行时,我使用/ logmsgfile参数,但似乎没有效果。

我正在使用tortoisesvn 1.5.3。

2 个答案:

答案 0 :(得分:2)

看起来这是我自己对由问题引起的API的误解。

解决方案:
1)我使用右键菜单设置区域中的钩子gui向TortoiseSVN添加了一个启动提交钩子脚本。

2)脚本收到3条信息:PATH MESSAGEFILE CWD
  有关详细信息,请参阅:Manual
  这些作为命令行参与传递给脚本 - 出于某种原因,我认为它们被设置为临时环境变量。

我的脚本然后只需打开第二个争论指定的文件并添加自定义文本。

当提交对话框出现时,自定义文本就在那里。

3)最重要的是,如果将tortoisesvn从脚本直接启动到提交对话框中:
例如[tortoiseproc / command:commit / path:。 / closeonend:1]
钩子仍在调用。

答案 1 :(得分:1)

如果您只需要静态模板,请设置tsvn:logtemplate属性。

对于动态生成,/ logmsgfile参数确实有效,但似乎需要完整路径。看起来如下的批处理文件可能对您有用。

GenerateLogMsg.exe > tmp.msg
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:. /logmsgfile:"C:\Documents and Settings\User\My Documents\Visual Studio Projects\Project\tmp.msg"