Subversion实现原理介绍及钩子的使用-创新互联-成都快上网建站

Subversion实现原理介绍及钩子的使用-创新互联

这里不过多介绍svn的安装、配置、使用。介绍一下Subversion的原理和工作机制。

成都创新互联公司专注于莎车企业网站建设,响应式网站建设,商城网站开发。莎车网站建设公司,为莎车等地区提供建站服务。全流程定制设计,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务

     一、实现原理:Subversion是一种集中的分享信息的系统,它的核心是版本库,它存储所有的数据,版本库按照文件树形式存储所有数据,包括所有的文件和目录。任意数量的客户端可以连接到版本库,读写这些文件,通过写数据,别人可以看到这些信息。通过读数据,别人可以看到版本的修改。

    二、工作机制

        1、每个工作拷贝都会保留一份基准版本。

        2、只要在该基准版本有过修改,所属的本层文件以及所有的父级文件夹都会呈现出来修改标志。

        3、update成功时,基准版本会变成服务器的head版本。

        4、如果提交成功,服务器的head版本变为用户提交基准版本。

        5、revert操作都是将工作区恢复到基准版本。

        6、merge操作即是对两个不用的版本数进行比较,然后将不同应用拷贝到另一个版本数中

    三、svn的pre-commit钩子

 #!/bin/sh
 #自动同步钩子
 REPOS="$1"
 REV="$2"
    
 export LANG=en_US.UTF-8
 SVN=/usr/bin/svn
 WEBDIR=/var/www/webroot   
 $SVN update $WEBDIR --username dev-user --password dev123 -- no-auth-cache 2>1 /root/svn_post_commit.log

    四、svn的post-commit文件做提交时语法检查和svn log检验

#!/bin/sh
REPOS="$1"
TXN="$2"

SVNLOOK=/usr/bin/svnlook

LOGMSG=`/usr/bin/svnlook log -t "$TXN" "$REPOS"|grep "[a-zA-Z0-9]"|wc -c`
if [ "$LOGMSG" -lt 20]; then
    echo $LOGMSG 1>&2
    echo -e "\nmust input log message and length larger than 20" 1>&2
    exit 1
fi

PHP="/usr/bin/php"
FILES=$($SVNLOOK changed -t "$TXN" "$REPOS" | awk '/^[AU]/ {print $NF}')
HASERROR=0
for FILE in $FILES; do
    CONTENT=$($SVNLOOK cat -t "$TXN" "$REPOS" "$FILE")
    if echo "$CONTENT" | grep -q $'var_dump'; then
        echo "######Debug Code found :$FILE#########" 1>&2
        echo "Please remove var_dump from $FILE" 1>&2
        HASERROR=1
    fi
    if [[ "$FILE" =~ \.(php)$ ]]; then
        MESSAGE=$(echo "$CONTENT" | $PHP -l 2>&1)
        if [ $? -ne 0 ]; then
            echo "######Error found :$FILE#########" 1>&2
            echo "$MESSAGE"  1>&2
            HASERROR=1
        fi
    fi
done
if [$HASERROR -eq 1]; then
    exit 1
fi

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站名称:Subversion实现原理介绍及钩子的使用-创新互联
分享链接:http://kswjz.com/article/jsoei.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流