Svn 限制message个数
SVN下提交代码强制输入commit message 废话不少,直接说方法吧 :一、在cvs仓库下 找到hooks目录 ,里面有不少钩子例子。我们这里采用的 pre-commit,从文件名称基本可以看出这个钩子的作用,就是在commit前的检查动作。window下是 .bat的文件,linux下是shell脚本。当然脚本中可以调用其他批处理或者shell脚本。二、编写pre-com
·
SVN下提交代码强制输入commit message
废话不少,直接说方法吧 :
一、在cvs仓库下 找到hooks目录 ,里面有不少钩子例子。我们这里采用的 pre-commit,从文件名称基本可以看出这个钩子的作用,就是在commit前的检查动作。window下是 .bat的文件,linux下是shell脚本。当然脚本中可以调用其他批处理或者shell脚本。
二、编写pre-commit.bat或者 pre-commit脚本 。
1、window下 :
@echo off
setlocal
set REPOS=%1
set TXN=%2
rem check that logmessage contains at least 10_characters
D:\Progra~1\Subversion\bin\svnlook log "%REPOS%" -t "%TXN%" | findstr ".........." > nul
if %errorlevel% gtr 0 goto err
exit 0
:err
echo 你至少需要输入10个字符, 请修改后重新提交! 1>&2
exit 1
其中 indstr ".........." 是控制字符重读, 10个.表示10个字符,20个就表示20个字符以上。%1和%2是钩子自带2个变量 ,可以查查svn手册,这些不详细解释了。
2、linux下
REPOS="$1"
TXN="$2"
# Make sure that the log message contains some text.
SVNLOOK=/usr/subversion/bin/svnlook
LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`
echo $LOGMSG
if [ "$LOGMSG" -lt 20 ];#
then
echo -e "[Commit]log message cann't be empty! YOU MUST input more than 20_chars as comment! " 1>&2
exit 1
fi
exit 0
其中SVNLOOK要注意路径,LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`这个统计长度。
三、将编辑好文件放到svn服务器仓库hooks中,linux下要确保pre-commit可执行的。
四、可以在svn客户端实验了,window下可以乌龟客户端。
何小荣 个人原创 ,请转载保留个人信息 ,请勿用于商业用途 。
更多推荐
已为社区贡献1条内容
所有评论(0)