1.環境
centos6.4php
2.安裝svn
yum -y install subversionweb
3.配置apache
創建版本庫目錄
mkdir /usr/svncentos
svnserve -d -r /usr/svn 啓動svn服務服務器
4.創建版本庫svn
建立一個新的Subversion項目
svnadmin create /usr/svn/projectpost
配置容許用戶user訪問 將註釋去掉
cd /usr/svn/project/confspa
vi svnserve.conf
anon-access=read
auth-access=write
password-db=passwd日誌
注:修改的文件前面不能有空格,不然啓動svn server出錯code
vi passwd
[users]
#<用戶1> = <密碼1>
#<用戶2> = <密碼2>
user=123456
vi authz 添加用戶組
此時版本庫已經建好了
######################################
客戶端使用svn
svn co svn://ip/project
6.實現SVN與WEB同步,能夠CO一個出來,也能夠直接配在倉庫中
1)設置WEB服務器根目錄爲/var/www/webroot
2)checkout一份SVN
svn co svn://localhost/njlrxx /var/www/webroot/njlrxx
修改權限爲WEB用戶
chown -R apache:apache /var/www/webroot/njlrxx
3)創建同步腳本
cd /var/www/svndata/njlrxx/hooks/
cp post-commit.tmpl post-commit
編輯post-commit,在文件最後添加如下內容
REPOS="$1" REV="$2" BASEPATH=/var/www/webroot/njlrxx WEBPATH="$BASEPATH/" export LANG=zh_CN.UTF-8 svn update $WEBPATH --username jiqing --password 123456 --no-auth-cache
增長腳本執行權限
chmod +x post-commit
最後操做是關閉服務然再打開服務:
svn服務的關閉:
killall svnserve
svn開啓:
svnserve -d -r /var/www/svndata
===============================================================
SVN自動同步程序執行流程:
一、用戶提交文件到SVN服務器,提交操做成功後觸發post-commit腳本
二、在post-commit版本文件中使用php_script.php執行PHP腳本
三、在PHP腳本中經過exec系統調用更新服務器上的版本庫工做副本
四、根據更新操做結果日誌,對另外一個SVN版本庫進行對應的操做處理
svn有兩種存儲方式:BDB和FSFS,目前用的最多的是FSFS方式,這種方式的話,通常是存儲在\db\revs文件夾下,裏面有一堆以版本號命名的文件,如:0、一、二、三、4......,那個就是了。
svn先把0版本的狀態壓縮成1個文件,而後每次版本更新時就針對變更的部分作一個壓縮文件,每次都是增長一個增量包,最後在服務器上能看到文件名爲從0開始到最終版本的一系列文件