1. 程式人生 > >阿里雲CentOS安裝SVN

阿里雲CentOS安裝SVN

1、環境
centos7
2、安裝svn

yum install subversion 

檢視版本

svnserve --version

3、建立版本庫
先建目錄

mkdir /var/svn

建立版本庫

cd /var/svn
svnadmin create /var/svn/svnrepos

cd svnrepos

會看到自動生成的版本庫檔案:

subversion目錄說明:
db目錄:就是所有版本控制的資料存放檔案。
hooks目錄:放置hook指令碼檔案的目錄。
locks目錄:用來放置subversion見艱苦鎖定資料的目錄,用來追蹤存取檔案庫的客戶端。
format檔案:是一個文字檔案,裡面只放了一個整數,表示當前檔案庫配置的版本號。
conf目錄:是這個倉庫的配置檔案(倉庫的使用者訪問賬號、許可權等)。
進入conf目錄(該svn版本庫配置檔案)cd conf/
authz檔案是許可權控制檔案
passwd是帳號密碼檔案
svnserve.conf SVN服務配置檔案
設定帳號密碼

vi passwd

在[users]塊中新增使用者和密碼,格式:帳號=密碼,例如:dennis=0454

設定許可權

vi authz

在末尾新增如下程式碼:

[/]
dennis=rw 

(r:讀,w:寫)

修改svnserve.conf檔案

vi svnserve.conf

開啟下面的幾個註釋:

anon-access = read #匿名使用者可讀
auth-access = write #授權使用者可寫
password-db = passwd #使用哪個檔案作為賬號檔案
authz-db = authz #使用哪個檔案作為許可權檔案
realm = /var/svn/svnrepos # 認證空間名,版本庫所在目錄

啟動svn版本庫

svnserve -d -r /var/svn/svnrepos

停止SVN命令

killall svnserve

用ps -ef | grep svn 檢視服務是否開啟

重點來了
現在我的nginx執行檔案(/usr/local/nginx/html)和svn(/usr/bin/svn)的執行檔案不在一起,所以要寫一個鉤子把他們連結起來。在svn所在的hooks資料夾下新建一個 post-commit 檔案,然後將檔案裡寫入:

#!/bin/sh
export LANG=en_US.UTF-8
SVN=/usr/bin/svn
WEB=/usr/local/nginx/html
$SVN update $WEB
--username dennis --password 0454

寫好後執行:

 chmod 777 /var/svn/svnrepos/hooks/post-commit

關閉svnserve:

killall svnserve

啟動svnserve:

svnserve -d -r /var/svn/svnrepos

接下來在nginx坐在的執行檔案裡(/usr/local/nginx/html)執行

 svn checkout  svn://IP/
 svn update