2

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

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

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

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

我正在使用 tortoisesvn 1.5.3。

4

2 回答 2

2

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

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

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

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

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

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

于 2008-09-12T15:40:52.820 回答
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"
于 2008-09-12T15:50:24.980 回答