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

StackOverflow https://stackoverflow.com/questions/59007

  •  09-06-2019
  •  | 
  •  

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

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

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

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

我正在使用 tortoisesvn 1.5.3。

有帮助吗?

解决方案

看起来是我自己对API的误解导致的问题。

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

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

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

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

3)最重要的是,如果从脚本直接启动 tortoisesvn 到提交对话框中:
例如[ tortoiseproc /命令:提交/路径:。/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"
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top