我想将TortoiseSVN自动化作为提交过程的一部分。 具体来说,我想为提交对话框动态创建一个日志条目。
我知道我可以从命令行启动提交对话框,也可以右键单击文件夹并选择svncommit。
我想使用start commit hook来设置日志条目。 我认为这可以通过在MESSAGEFILE变量中传递一个条目文件名来实现,但是当我添加一个钩子脚本时,它无法看到这个变量(右键单击并选择svncommit后钩子成功启动)。
当我尝试使用命令行时,我使用/ logmsgfile参数,但似乎没有效果。
我正在使用tortoisesvn 1.5.3。
答案 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"