這里不過多介紹svn的安裝、配置、使用。介紹一下Subversion的原理和工作機制。
成都創(chuàng)新互聯(lián)公司專注于莎車企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站開發(fā)。莎車網(wǎng)站建設(shè)公司,為莎車等地區(qū)提供建站服務(wù)。全流程定制設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)一、實現(xiàn)原理:Subversion是一種集中的分享信息的系統(tǒng),它的核心是版本庫,它存儲所有的數(shù)據(jù),版本庫按照文件樹形式存儲所有數(shù)據(jù),包括所有的文件和目錄。任意數(shù)量的客戶端可以連接到版本庫,讀寫這些文件,通過寫數(shù)據(jù),別人可以看到這些信息。通過讀數(shù)據(jù),別人可以看到版本的修改。
二、工作機制
1、每個工作拷貝都會保留一份基準(zhǔn)版本。
2、只要在該基準(zhǔn)版本有過修改,所屬的本層文件以及所有的父級文件夾都會呈現(xiàn)出來修改標(biāo)志。
3、update成功時,基準(zhǔn)版本會變成服務(wù)器的head版本。
4、如果提交成功,服務(wù)器的head版本變?yōu)橛脩籼峤换鶞?zhǔn)版本。
5、revert操作都是將工作區(qū)恢復(fù)到基準(zhǔn)版本。
6、merge操作即是對兩個不用的版本數(shù)進行比較,然后將不同應(yīng)用拷貝到另一個版本數(shù)中
三、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
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。