Linux版本
在svn的hooks目录下新建一个名为pre-commit的文件并为其添加执行权限
pre-commit文件的内容以下:
#!/bin/sh
REPOS="$1"
TXN="$2"
SVNLOOK=/opt/CollabNet_Subversion/bin/svnlook
LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c)
if [ "$LOGMSG" -lt 10 ]; then
echo -e "\n 提交文件时必须添加注释,提交停止." 1>&2
exit 1
fi
pre-commit 文件增长可执行权限
chmod +x pre-commit
脚本命令解释
LOGMSG=$($SVNLOOK log -t “$TXN” “$REPOS” | grep “[a-zA-Z0-9]” | wc -c)
将提交的日志信息做为便来那个输入以后,将grep英文和数字的结果做为变量
bash
if [ "$LOGMSG" -lt 10 ];then
传入变量来判断变量长度是否小于10
-eq 等于号 -gt 大于号 -lt小于号svn
echo -e "\n 提交文件时必须添加注释,提交停止." 1>&2
exit 1
echo 错误提示信息的时候必须重定向到 stderr ,即 1>&2
日志
问题
添加注释也不能提交
经检查/opt/CollabNet_Subversion/bin/svnlook不存在,使用whereis命令查看:code
[root@localhost hooks]# whereis svnlook
svnlook: /usr/bin/svnlook /usr/share/man/man1/svnlook.1.gzit
修改:SVNLOOK=/usr/bin/svnlookio
中文注释问题
在代码中只对英文和数字字符作了计数,中文怎么处理?class