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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (30)

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

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

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

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

我正在使用tortoisesvn 1.5.3。

提问于
用户回答回答于

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

解决方案: 1)我使用右键菜单设置区域中的钩子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"

扫码关注云+社区

领取腾讯云代金券