一、環境
centos7
二、安裝svnhtml
yum install subversion
查看版本nginx
svnserve --version
三、建立版本庫
先建目錄centos
mkdir /var/svn
建立版本庫svn
cd /var/svn svnadmin create /var/svn/svnrepos cd svnrepos
會看到自動生成的版本庫文件:post
subversion目錄說明:
db目錄:就是全部版本控制的數據存放文件。
hooks目錄:放置hook腳本文件的目錄。
locks目錄:用來放置subversion見艱苦鎖定數據的目錄,用來追蹤存取文件庫的客戶端。
format文件:是一個文本文件,裏面只放了一個整數,表示當前文件庫配置的版本號。
conf目錄:是這個倉庫的配置文件(倉庫的用戶訪問帳號、權限等)。
進入conf目錄(該svn版本庫配置文件)cd conf/
authz文件是權限控制文件
passwd是賬號密碼文件
svnserve.conf SVN服務配置文件
設置賬號密碼centos7
vi passwd
在[users]塊中添加用戶和密碼,格式:賬號=密碼,例如:dennis=0454spa
設置權限版本控制
vi authz
在末尾添加以下代碼:code
[/] dennis=rw
(r:讀,w:寫)orm
修改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