Tortoise SVN Post-提交挂钩 Windows

Tortoise SVN Post-Commit Hook Windows

我正在通过客户端 post-commit hook 在 Windows Tortoise SVN 中使用 curl 发送 JSON 来为 SVN 项目开发一个简单的松弛集成。我想 post 一些基本信息,最好是修订号和提交时的评论。我添加了一个 post-commit 客户端挂钩,它执行一个 postcommit.bat 文件,该文件成功地向我的松弛通道发送了一条消息。我无法工作的是包括从乌龟传入的变量。根据乌龟,SVN 客户端挂钩 post-commit 将包含以下参数 PATH DEPTH MESSAGEFILE REVISION ERROR CWD https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html

这是我的工作代码,它发送一个静态字符串(不包括 message/revision 到我的松弛通道):

C:\p\curl -H "Content-Type: application/json" -X POST https://hooks.slack.com/services/MYSECRETSERVICE -d "{\"text\":\"Test message\"}"

我想做这样的事情,但是下面的代码没有,它只是posts "RevMessage",或者换句话说参数没有正确传递:

C:\p\curl -H "Content-Type: application/json" -X POST https://hooks.slack.com/services/MYSECRETSERVICE -d "{\"text\":\"Rev%REVISION%Message%MESSAGE%\"}"

好吧,这可能太具体了(根据观看次数判断),我必须自己回答,大声笑。无论如何,也许其他人会发现这很有用,这就是最终为我工作的东西。首先需要从参数中设置变量,然后可以如下所示引用它们:

    set tsvnPath=%1
    set tsvnDepth=%2
    set tsvnMsgFile=%3
    set /p THEMSG=<%3
    set tsvnRevision=%4
    set tsvnError=%5
    set tsvnCwd=%6
    C:\p\curl -H "Content-Type: application/json" -X POST https://hooks.slack.com/services/MYSECRET -d "{\"text\":\"MSG %THEMSG% REV %tsvnRevision%\"}"