php svn仓库提交预处理

Posted huan & ping

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php svn仓库提交预处理相关的知识,希望对你有一定的参考价值。

需要做的事情

1.检查是否填写注释
2.php文件是否有语法错误

 

pre-commit脚本

hook脚本名称:hooks/pre-commit

REPOS="$1"
TXN="$2"

# Make sure that the log message contains some text.
SVNLOOK=/usr/bin/svnlook

LOGMSGLEN=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[^ \\t\\n]" | wc -c`
if [ $LOGMSGLEN -lt 5 ];then 
   echo -e "亲,忘了写注释哦~~~" 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

# 检查php文件语法
phpFiles=`$SVNLOOK changed -t "$TXN" "$REPOS" | grep -e \'.php\'| awk \'{print $2}\' | xargs`

retSts=0

for phpFile in $phpFiles;do
        ret=`$SVNLOOK cat -t "$TXN" "$REPOS" "$phpFile" | php -l`
        if [ $? != 0 ];then
            echo "${ret},file:${phpFile}" 1>&2
            retSts=1
        fi
done

if [[ "$retSts" -eq 1 ]];then
    exit 1
fi

# All checks passed, so allow the commit.
exit 0

 

参考资料

【1】svnlook命令介绍
www.cnblogs.com/wangjiyuan/p/svnnn.html
【2】SVN-钩子祥解与配置
http://www.cnblogs.com/gaohj/p/3154448.html

以上是关于php svn仓库提交预处理的主要内容,如果未能解决你的问题,请参考以下文章

SVN in Practice

「SVN迁移」SVN迁移服务器代码,包含全部提交日志

使用git svn工具进行svn 到git仓库的同步[持续更新]

SVN配置

SVN+Ansible搭建自动化提交代码

SVN下载上传文件