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為以下內容:

[users]
# harry = harryssecret
# sally = sallyssecret
cqh=123456 

權限控制authz配置

vim authz

目的是設置哪些用戶可以訪問哪些目錄,向authz文件追加以下內容:

#設置[/]代表根目錄下所有的資源
[/]
cqh=rw 

服務svnserve.conf配置

vim svnserve.conf

追加以下內容:

[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進程

[root@localhost conf]# ps -ef|grep svn|grep -v grep
root     12538     1  0 14:40 ?        00:00:00 svnserve -d -r /www/svndata

檢測SVN 端口

[root@localhost conf]# netstat -ln |grep 3690
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN

停止重啟SVN

[root@localhost password]# killall svnserve    //停止
[root@localhost 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格式在提交


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM