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 "."  这样修改就可以了!

 

posted @ 2015-06-22 10:36  lijianzhq  阅读(2411)  评论(0)    收藏  举报