天天看點

linux中svn服務端搭建

安裝說明

系統環境:CentOS-6.3

安裝方式:yum install (源碼安裝容易産生版本相容的問題)

安裝軟體:系統自動下載下傳SVN軟體

檢查已安裝版本

#檢查是否安裝了低版本的SVN

rpm -qa subversion

#解除安裝舊版本SVN

yum remove subversion

一.安裝SVN

yum -y install subversion

驗證安裝

檢驗已經安裝的SVN版本資訊

svnserve --version

代碼庫建立

SVN軟體安裝完成後還需要建立SVN庫

mkdir

-p /www/svndata

svnadmin create /www/svndata/test

執行上面的指令後,自動建立svndata庫,檢視/www/svndata/test 檔案夾發現包含了conf, db,format,hooks, locks, README.txt等檔案,說明一個SVN庫已經建立。

配置代碼庫

進入上面生成的檔案夾conf下,進行配置

cd /www/svndata/test/conf

使用者密碼passwd配置

cd /www/svndata/test/conf

vim passwd

修改passwd為以下内容:

1 2 3 4

[users]

# harry = harryssecret

# sally = sallyssecret

cqh=123456

權限控制authz配置

vim authz

目的是設定哪些使用者可以通路哪些目錄,向authz檔案追加以下内容:

#設定[/]代表根目錄下所有的資源

[/]

cqh=rw

服務svnserve.conf配置

vim svnserve.conf

追加以下内容:

1 2 3 4 5 6 7 8 9 10 11

[general]

#匿名通路的權限,可以是read,write,none,預設為read

anon-access=none

#使授權使用者有寫權限

auth-access=write

#密碼資料庫的路徑

password-db=passwd

#通路控制檔案

authz-db=authz

#認證命名空間,subversion會在認證提示裡顯示,并且作為憑證緩存的關鍵字

realm = My First Repository

啟動SVN

svnserve -d -r /www/svndata

檢視SVN程序

[[email protected] conf]# ps -ef|grep svn|grep -v grep

root     12538     1  0 14:40 ?        00:00:00 svnserve -d -r /www/svndata

檢測SVN 端口

[[email protected] conf]# netstat -ln |grep 3690

tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN

停止重新開機SVN

[[email protected] password]# killall svnserve   

//停止

[[email protected] password]# svnserve -d -r /www/svndata

// 啟動

測試

SVN服務已經啟動,使用用戶端測試連接配接。

用戶端連接配接位址:svn://xxx.xxx.xxx.xxx/test

使用者名/密碼: cqh/123456

測試建立檔案夾等操作。

二.設定鈎子自動更新

實作SVN與WEB同步,可以CO一個出來,也可以直接用自動更新web目錄的方法,我們要在svn版本庫中配置鈎子來實作,就是建立一個post-commit的配置檔案,對其進行簡單的配置,簡簡單單的四步就可以實作Linux下SVN自動更新web目錄配置。

第一步:建立你的web程式目錄

mkdir

/

var

/www/html/test

進入你建立的web程式目錄(svn checkout可以簡寫為co)

svn checkout svn:

//localhost/svntest //不重命名檔案夾,直接在目前目錄下檢出

svn checkout svn:

//localhost/svntest test //檢出檔案并且重命名檔案夾

 第二步:在項目庫的 hooks/ 目錄下建立 post-commit 檔案 【鈎子腳本】

添加腳本内容如下

export LANG=en_US.UTF-8

SVN=/usr/bin/svn            #這裡配置的是svn安裝bin目錄下的svn檔案

WEB=/

var

/www/html/test      #要更新的目錄

$SVN

update

$WEB

--username cqh --password 123456

chown

-R www:www 

$WEB

其中SVN=右邊改成 svn 指令位置

WEB=右邊改成你實際的web目錄

第三步:讓post-commit有執行的權限

chmod

a+x post-commit

第四步:這裡就已經完成了,第四步就是測試了。

說明:

export LANG=en_US.UTF-8是為了解決svn post commit 中文亂碼,設定本地化編碼,因為我的系統為UTF8編碼,其實SVN預設就是UTF-8編碼,如果編碼是GBK的話不設定将會出現錯誤,而執行不成功,錯誤辨別為

svn: Can

't convert string from native encoding to '

GBK'

/usr/bin/svn update --username cqh --password 123456 /var/www/html/test 執行更新操作

如果提示:

post-commit hook failed (

exit

code 255) with no output

賦予post-commit檔案可執行權限

如果您的預設編碼就是UTF-8的,要上傳中文檔案,先将檔案另存為UTF-8格式在送出

繼續閱讀