VisualSVN使用hook
VisualSVN使用hook可以增加一些自己的需求处理。
在VisualSVN的Repository目录下,有一些hook的例子介绍以及使用方法说明,具体可以参考以下。
其他参考文档:
http://tortoisesvn.net/support.html (TortoiseSVN)
hook的编写例子:
http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/
http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/
下面举例常见一些需求:
1.要求svn客户端提交前必须填写log日志,有两种方法:
第一:如果客户端是TortoiseSVN,可以在该客户端下面进行配置。(优点:当满足条件时,提交窗口的OK按钮才会Enabled)
第二:在VisualSVN Server上通过编辑Pre-commit hook,要求log信息不能为空(或者不能少于XX字符)。(优点:所有客户端都受限制)
在SVN的Repository目录右键---》所有任务---》Manage hooks...---》找到Pre-commit hook 双击
然后增加以下代码:
@echo off :: :: Stops commits that have empty log messages. :: @echo off setlocal rem Subversion sends through the path to the repository and transaction id set REPOS=%1 set TXN=%2 rem check for an empty log message svnlook log %REPOS% -t %TXN% | findstr ".........." > nul if %errorlevel% gtr 0 (goto err) else exit 0 :err echo 1>&2 echo 抱歉,由于您没有正确填写Log或者Log字数过少(必须大于10),系统拒绝提交! 1>&2 echo Log格式: 新增/修改/删除: 提交内容 1>&2 echo 请详细描述提交内容,然后再提交. -- 谢谢! 1>&2 exit 1
其中:findstr ".........." 点符号是表示通配符的意思,匹配所有字符;findstr表示log日志长度不能少于多少。如果仅仅限制不能为空的话,只要findstr "." 这样修改就可以了!

浙公网安备 33010602011771号