需要svn post-commit
批处理脚本的帮助。我在这里:
-commit.bat后:
1. @ECHO OFF
2. cd D:\Subversion\...\hooks
3. SET OUTPUT = default
4. FOR /F "tokens=*" %%a in ('revision.bat') do ( SET OUTPUT=%%a )
5. findstr /m "Autobuild" D:\Subversion\...\db\revprops\0\%OUTPUT%
6. if %errorlevel%==0 (
7. call website.bat
8. )
website.bat:
D:\Subversion\...\hooks\wget http://website.com/service-trigger
revision.bat:
svnlook youngest D:\Subversion\...
所以,这里发生的是
提交到存储库后,脚本会提取最后revision
个数字
使用该号码在修订日志中查找文件
尝试在该日志中找到特定字符串
如果特定字符串存在,请触发一些网址
我的问题是这个脚本是在直接从cmd调用时执行的,但是当SVN调用它时,似乎在第5行中发生了一些奇怪的事情,因为我没有收到任何错误,但是从不调用第7行。 / p>
我怀疑也许我应该以管理员身份运行脚本,但由于我从未认真为Windows编程,我不确定,我需要一些帮助
答案 0 :(得分:1)
SET
语句中的空格很重要。在第3行中,您要设置变量"output "
而不是"output"
删除第3行=
周围和第4行%%a
之后的空格(但仅限于此处的化妆品。)
另外 - 不清楚...
是(省略)还是(父母)。如果绝对文件名包含空格"quote it"
也可能是每个调用的起始目录都不同。第2行的cd
更改D:
驱动器上的当前目录,但不会影响默认驱动器。您需要执行D:
将默认设置切换为驱动器D:
。第4行的revision.bat
相对于默认值。