仅在提交影响特定路径时才执行操作的提交后挂钩

时间:2012-07-17 10:59:10

标签: svn batch-file hook visualsvn-server post-commit

在某些情况下,只有在满足某些条件时才需要执行提交后操作。

E.g。仅在提交的修订影响'/ tags'目录时发送电子邮件。 我在网上搜索了这样的脚本示例,以便在Windows环境中运行,并且无法找到任何内容,所以我必须自己编写。

2 个答案:

答案 0 :(得分:2)

post-commit.bat 代码:

REM The command checks whether the committed revision changes any data under '/tags'
"%VISUALSVN_SERVER%bin\svnlook.exe" dirs-changed %1 --revision %2 | findstr /b "[Tt]ags"

REM If 'findstr' returns error code 0, it means that the commit involves the '/tags' directory.
REM So if the the returned code is 0 the command runs external batch 'post-commit-run.bat'
If %ERRORLEVEL% EQU 0 call %~dp0post-commit-run.bat %*

答案 1 :(得分:1)

我有一个提交后的 Watcher 脚本,可以完全按照您的要求进行操作。它是一个Perl脚本,但您可以从ActiveState或Strawberry Perl项目下载Perl for Windows。

我的提交后挂钩位于GitHub。它使用配置文件指定要监视的目录。 (实际上,每个用户都可以设置自己的配置文件)。