如何在TortoiseSVN中使用启动提交钩子来设置自定义日志条目?
时间:2020-03-05 18:52:13 来源:igfitidea点击:
我想在提交过程中自动化TortoiseSVN。
具体来说,我想为提交对话框动态创建一个日志条目。
我知道我可以从命令行启动提交对话框,也可以右键单击文件夹并选择svncommit来启动提交对话框。
我想使用启动提交钩子来设置日志条目。
我认为这可以通过在MESSAGEFILE变量中传递条目文件名来实现,但是当我添加一个钩子脚本时,它看不到该变量(在右键单击并选择svncommit后,钩子成功启动)。
当我尝试使用命令行时,我使用了/ logmsgfile参数,但它似乎没有作用。
我正在使用tortoisesvn 1.5.3.
解决方案
回答
看起来是我自己对由问题引起的API的误解。
解决方案:
1)我已经使用右键菜单的设置区域中的hooks gui向TortoiseSVN添加了一个开始提交钩子脚本。
2)脚本收到3条信息:PATH MESSAGEFILE CWD
有关详细信息,请参见:手册
由于某些原因,我将这些参数作为命令行参数传递给脚本,因为我认为它们被设置为临时环境变量。
然后,我的脚本仅打开第二个争论所指定的文件,并添加自定义文本。
当提交对话框出现时,自定义文本在那里。
3)最重要的是,如果tortoisesvn从脚本直接启动到提交对话框中:
例如[tortoiseproc / command:commit / path:。 / closeonend: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"