centOs6.5 SVN 伺服器搭建並實現提交自動同步到web伺服器
阿新 • • 發佈:2018-11-16
第一步,安裝SVN
/opt/svn/project1 /opt/svn/project2 -------------------> /opt/svn/
yum install subversion
yum remove subversion(解除安裝)
第二步,建立SVN版本庫
mkdir -p /var/svn/svntest
第三步,建立版本庫
svnadmin create /var/svn/svntest
執行完上面命令後會生成如下檔案,說明版本庫建立成功:
第四步,進入conf目錄配置該版本庫的檔案:
authz檔案是許可權控制檔案
passwd是帳號密碼檔案
svnserve.conf SVN服務配置檔案
第五步,配置passwd,語法:使用者名稱=密碼,例:
第六步,配置authz使用者許可權檔案,rw是有讀寫許可權:[users] test1 = 123456 test2 = 123456
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
admin_group = test2
[/]
test1 = rw
[/adminfile]
@admin_group = rw
第七步,配置svnserve.conf檔案,開啟下面幾個註釋即可:
第八步,啟動SVN版本庫,完成:anon-access = read #匿名使用者可讀 auth-access = write #授權使用者可寫 password-db = passwd #使用哪個檔案作為賬號檔案 authz-db = authz #使用哪個檔案作為許可權檔案 realm = /var/svn/svntest #認證空間名,版本庫所在目錄
啟動SVN:
svnserve -d -r /var/svn/svntest
關閉SVN(檢視程序PID,然後kill掉):
ps aux | grep -i svn
kill pid號
防火牆開啟3690埠:
編輯防火牆配置檔案:
vi /etc/sysconfig/iptables
增加下面一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
重啟防火牆
service iptables restart
第九步,實現自動同步:
首先在伺服器上建一個資料夾:
mkdir /var/testcode
執行check:
svn --username test1 --password 123456 co svn://127.0.0.1 /var/testcode/
在/var/svn/svntest/hook下建立post-commit檔案,檔案設定可執行許可權,加入以下內容:
#!/bin/sh
REPOS="$1"
REV="$2"
WEB_PATH=/var/testcode
SVN_USER=test1
SVN_PASS=123456
WEB_USER=www
LOG_PATH=/tmp/svn.log
echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
svn update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATH
chown $WEB_USER.$WEB_USER -R $WEB_PATH
儲存後實現自動同步功能
拓展,建立多專案:
(1): 建立svn倉庫路徑mkdir -p /opt/svn/project1
mkdir -p /opt/svn/project2
svnadmin create /opt/svn/project1
svnadmin create /opt/svn/project2
注意:為了規範:一般在專案目錄下再建立,專案程式碼匯入到trunk目錄:
mkdir -p /opt/svn/projec1/trunk
mkdir -p /opt/svn/projec1/tags
mkdir -p /opt/svn/projec1/branches
專案2操作和一類似。
其他配置參考以上步驟
(2):啟動svn服務
svnserve -d -r /opt/svn/
注意:如果在一臺伺服器上同時啟動多個版本管理,那麼啟動路徑必須是所有專案倉庫的根路徑:比如
/opt/svn/project1 /opt/svn/project2 -------------------> /opt/svn/