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