svn 在Linux服务器端验证用户提信息日志字数
a@b:/volume1/svn/repos/hooks$ ll
total 52
drwxrwxrwx+ 2 root root 4096 May 9 15:54 .
drwxrwxrwx+ 6 root root 4096 May 9 11:02 ..
-rwxrwxrwx+ 1 root root 2589 May 9 11:02 post-commit.tmpl
-rwxrwxrwx+ 1 root root 2715 May 9 11:02 post-lock.tmpl
-rwxrwxrwx+ 1 root root 2939 May 9 11:02 post-revprop-change.tmpl
-rwxrwxrwx+ 1 root root 2548 May 9 11:02 post-unlock.tmpl
-rwxrwxrwx 1 root root 4117 May 9 15:54 pre-commit
-rwxrwxrwx+ 1 root root 3974 May 9 11:02 pre-commit.tmpl
-rwxrwxrwx+ 1 root root 3609 May 9 11:02 pre-lock.tmpl
-rwxrwxrwx+ 1 root root 3437 May 9 11:02 pre-revprop-change.tmpl
-rwxrwxrwx+ 1 root root 3297 May 9 11:02 pre-unlock.tmpl
-rwxrwxrwx+ 1 root root 3682 May 9 11:02 start-commit.tmpl
将pre-commit.tmpl 文件拷贝到pre-commit,如果是windows系统,则改为pre-commit.bat
修改内容为
REPOS="$1"
TXN="$2"
# Make sure that the log message contains some text.
SVNLOOK=/var/packages/SVN/target/bin/svnlook
#$SVNLOOK log -t "$TXN" "$REPOS" | \
# grep "[a-zA-Z0-9]" > /dev/null || exit 1
LOGSIZE=$($SVNLOOK log -t "$TXN" "$REPOS" | wc -c)
if [ "$LOGSIZE" -lt 6 ]; then
echo -e "log text must more then 6 chars" 1>&2
exit 1
fi
# Check that the author of this commit has the rights to perform
# the commit on the files and directories being modified.
# commit-access-control.pl "$REPOS" "$TXN" commit-access-control.cfg || exit 1
# All checks passed, so allow the commit.
exit 0