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英文和数字的结果作为变量
if [ "$LOGMSG" -lt 10 ];then
传入变量来判断变量长度是否小于10
-eq 等于号 -gt 大于号 -lt小于号
echo -e "\n 提交文件时必须添加注释,提交中止." 1>&2
exit 1
echo 错误提示信息的时候必须重定向到 stderr ,即 1>&2
问题
-
添加注释也不能提交
经检查/opt/CollabNet_Subversion/bin/svnlook不存在,使用whereis命令查看:
[root@localhost hooks]# whereis svnlook
svnlook: /usr/bin/svnlook /usr/share/man/man1/svnlook.1.gz
修改:SVNLOOK=/usr/bin/svnlook
-
中文注释问题
在代码中只对英文和数字字符做了计数,中文怎么处理?