SVN提交内容时必须填写日志
这里需要用到钩子问题,具体呢只需在hooks文件夹下添加两个文件即可
第一个文件 pre-commit ,内容如下:
#!/bin/sh
REPOS=\"$1\"
TXN=\"$2\"
SVNLOOK=D:\\ProgramFiles\\Subversion\\bin\\svnlook.exe# svnlook.exe的安装路径
# check that logmeage contains at least 10 alphanumeric characters##设置日志需填写至少10个字符 LOGMSG=`$SVNLOOK log -t \"$TXN\" \"$REPOS\" | grep \"[a-zA-Z0-9]\" | wc -c`
if [ \"$LOGMSG\" -lt 10 ];
then
echo -e \"\\nEmpty log meage not allowed.Commit aborted!\" 1>&2
exit 1
fi
第二个文件pre-commit.bat ,内容如下:
@echo off
setlocal
set REPOS=%1
set TXN=%2
rem check that logmeage contains at least 10 characters
svnlook log \"%REPOS%\" -t \"%TXN%\" | findstr \"..........\" > nul// \"..........\" 十个“.”代表十个字符 if %errorlevel% gtr 0 goto err
exit 0
:err
echo Empty log meage not allowed.Commit aborted! 1>&2
exit 1
#①set REPOS=%1
#set TXN=%2还记得我们前面提到的但事务提交时,会传递两个参数吗?这里就是分别用来接收URL和事务号的
#②svnlook log \"%REPOS%\" -t \"%TXN%\" | findstr \"..........\" > nul
#这句是核心程序。首先svnlook log是用来查看某个版本库某次提交的log的,那么我们怎么知道这两个
#参数呢?答案就是我们前面已经保存的REPOS和TXN参数。
#它的作用是查看%REPOS%这个URL第%TXN%次提交的log信息,那么| findstr \"..........\"呢?细心 的读者会发现这里有10个圆点号,即表示10个字符。
#整句的作用就是先获取当前提交的log内容,然后判断是否有10个字符以上
#③echo Empty log meage not allowed.Commit aborted! 1>&2
#这句话的作用是当提交检查失败时,输出的提示信息