我想将TortoiseSVN自动化作为提交过程的一部分。具体来说,我想为提交对话框动态创建一个日志条目。
我知道我可以从命令行启动提交对话框,也可以右键单击文件夹并选择svncommit。
我想使用start commit hook来设置日志条目。我认为这可以通过在MESSAGEFILE变量中传递一个条目文件名来实现,但是当我添加一个钩子脚本时,它无法看到这个变量(在右键单击并选择svncommit后钩子成功启动)。
当我尝试使用命令行时,我使用/ logmsgfile参数,但似乎没有任何效果。
我正在使用tortoisesvn 1.5.3。
发布于 2019-05-20 12:34:04
如果您只需要静态模板,请设置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"
发布于 2019-05-20 13:42:22
看起来这是我自己对由问题引起的API的误解。
解决方案: 1)我使用右键菜单设置区域中的钩子gui向TortoiseSVN添加了一个启动提交钩子脚本。
2)脚本接收3条信息:PATH MESSAGEFILE CWD 有关详细信息,请参阅:手册 这些作为命令行参数传递给脚本 - 出于某种原因,我认为它们被设置为临时环境变量。
然后我的脚本只打开第二个争论指定的文件并添加自定义文本。
当提交对话框出现时,自定义文本就在那里。
3)最重要的是,如果将tortoisesvn从脚本直接启动到提交对话框中: 例如[tortoiseproc / command:commit / path:。/ closeonend:1] 仍然会调用挂钩。
https://stackoverflow.com/questions/-100001162
复制相似问题