一,下載下傳相關軟體:
[[email protected] test]# wget http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gz
[[email protected] test]# wget http://subversion.tigris.org/downloads/subversion-deps-1.6.1.tar.gz
二,安裝及配置:
1,解壓,要在同一個目錄下:
[root@ localhost test]# tar -zxvf subversion-1.6.1.tar.gz
[root@ localhost test]# tar -zxvf
subversion-deps-1.6.1.tar.gz
2,編譯及安裝:
[root@ localhost test]#cd subversion-1.6.1/
[root@ localhost subversion-1.6.1]#
./configure--prefix=/usr/local/svn/
[root@ localhost subversion-1.6.1]# make && make
install
注(可能會報錯,直接複制錯誤資訊到百度搜解決方案,就不記錄了)
3,把svn相關的指令添加到環境變量中:
[root@ localhost subversion-1.6.1]# echo
"exportPATH=$PATH:/usr/local/svn/bin/" >> /etc/profile
[root@ localhost subversion-1.6.1]# source /etc/profile
三,建立測試倉庫:
1,建立SVN的根目錄:
[[email protected] subversion-1.6.1]# mkdir -p /data/svn/{目錄自己選擇}
-p:
可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項後,系統将自動建立好那些尚不存在的目錄,即一次可以建立多個目錄;
2,建立一個測試倉庫:
進入到根目錄運作下面的指令,就會在/data/svn/下面建立一個名字叫firstsvn的庫
[[email protected] subversion-1.6.1]# svnadmin create firstsvn
3、導入版本庫
svn import [源路徑] [目标版本庫路徑] -m [日志資訊]
svn import svn/ file:///data/svn/firstsvn -m '初始化svn目錄'
3,修改配置檔案:
[[email protected] svnfirst]# cd /data/svn/firstsvn/conf/
[root@ localhost conf]# vim svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = /data/svn/firstsvn/passwd
authz-db = /data/svn/firstsvn/authz
[root@ localhost conf]# vim passwd
svnname = 123456
使用者名=密碼
[root@ localhost conf]# vim authz
[groups]
admin = xiaoran.shen,test1
user = test2
[/]
@admin = rw
@user = rw
#除了以上使用者其餘使用者權限為空,禁止通路
* =
四,在Windows 上安裝svn用戶端:
五,啟伺服器及測試:
1,啟SVN服務,并指定SVN的根目錄:
檢視SVN服務是否啟動
ps aux | grep svnserve
停止服務: killall svnserve
啟動服務指定根目錄
[[email protected] test]# svnserve -d -r /data/svn/
2,服務已經正常起來:
[[email protected] test]# netstat -tunlp | grep svn
tcp 0 00.0.0.0:3690 0.0.0.0:* LISTEN 8646/svnserve
3,測試:
在Windows
盤符下建立一個名稱為firstsvn的目錄,在此目錄上點選右鍵,選擇Checkout,在首行填寫svn伺服器的IP位址及倉庫名稱
例:svn://192.168.1.12/firstsvn
六、配置post-commit,實作自動同步svn版本庫檔案到web目錄
為了可以在修改完代碼送出到SVN伺服器後,WEB伺服器直接同步.需要配置SVN的鈎子,打開hooks目錄,
/data/svn/svnfirst/hooks
可以看到有一個post-commit.tmpl檔案,這是一個模闆檔案,複制一份放在此目錄下,命名為post-commit,并将其使用者組設為www,并設定為可執行:
chown www:www post-commit
chmod +x post-commit
這樣就有了通路www目錄的權限。*裡面原有的代碼全部注釋掉*.這裡可以執行shell指令,每次commit完成後都會調用此檔案.
我的檔案内容為:
#!/bin/sh
#設定環境變量,如果沒有設定可能會出現update報錯
export LANG=en_US.UTF-8
REPOS="$1"
REV="$2"
SVN_PATH=/usr/localh/svn/bin/svn{伺服器上svn安裝的路徑}
WEB_PATH=/home/wwwroot/default{web站點目錄,如果根目錄下有多個項目還需要把要同步的項目檔案夾的名稱寫上,要與svn中的名字相同}
LOG_PATH=/tmp/svn_update.log{日志檔案}
$SVN_PATH update $WEB_PATH --username user(svn的使用者名) --password
password(svn使用者名對應的密碼) --no-auth-cache >>
$LOG_PATH
說明:
1、#!/bin/sh 說明是執行shell指令
2、export LANG=zh_CN.UTF-8 是為了解決svn post commit 中文亂碼。
如果你是GBK編碼可能會提示:Erroroutput could not be translated from the native
locale to UTF-8
這是用戶端和伺服器編碼的問題,預設是utf-8,可嘗試設定export
LANG=zh_CN.GBK或者exportLANG=zh_CN.UTF-8
如果不行的話可以重新開機SVN服務
結束服務:killall svnserve
啟動:svnserve -d -r /data/svn
設定SVN服務随機自啟
1、編輯rc.local檔案
#vi /etc/rc.local
進入到rc.local檔案
加入如下啟動指令:
/usr/local/svn/bin/svnserve -d -r /data/svn/
注:
/usr/local/svn/bin/svnserve是SVN svnserve檔案的安裝絕對路徑,
/data/svn/是svn版本庫根目錄的絕對路徑。