CentOS 7 環境下部署 SVN 並實現自動更新(版本庫放在Tomcat下)


1、安裝 SVN

1.1先檢查是否有安裝 svn

rpm -qa subversion      #沒有什么顯示就說明沒有安裝過
yum remove subversion #如果有安裝就運行刪除老版本
yum install subversion #運行安裝SVN

1.2創建SVN版本庫(這里我們直接部署到Tomcat/webapps下,如果沒有可以自行部署一個Tomcat)

mkdir -p /usr/local/tomcat/webapps/svn

1.3創建版本庫

svnadmin create /usr/local/tomcat/webapps/svn/svnTest

完成此處之后會在該目錄下生成以下目錄文件

1.4在版本庫的 conf目錄下配置文件

authz文件是權限控制文件

passwd是帳號密碼文件

svnserve.conf SVN服務配置文件

1.5設置配置passwd 如:用戶名=密碼

[users]
test = test123

1.6配置authz文件,設置用戶權限 rw是擁有讀寫權限(注:一定要頂格寫):

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
test = test

[/]
test = rw

[/adminfile]
@test= rw

1.7配置svnserve.conf ,打開以下注釋就好了

anon-access = read #匿名用戶可讀
auth-access = write #授權用戶可寫
password-db = passwd #使用哪個文件作為賬號文件
authz-db = authz #使用哪個文件作為權限文件
realm =/usr/local/tomcat/webapps/svn/svntest #認證空間名,版本庫所在目錄

1.8啟動SVN

svnserve -d -r /usr/local/tomcat/webapps/svn/

檢查svn是否啟動成功,查看進程

ps -ef |grep svnserve

檢查防火牆

#添加(--permanent永久生效,沒有此參數重啟后失效)
firewall-cmd --zone=public --add-port=3690/tcp --permanent    
#重新載入(svn默認3690端口)
firewall-cmd --reload
#查看
firewall-cmd --zone= public --query-port=3690/tcp
#或者之間關閉防火牆
systemctl stop firewalld.service
 
        

 最好在檢出

 svn co svn://ip/svnTest

回車之后會出現:

“root”密碼:這里沒有設置直接回車繼續到
用戶名:test
“test”的密碼:test123

保存未加密的密碼(yes/no):yes
最后提示:
取出版本:0

用戶端鏈接:

svn://ip/svnTest

 

二、實現用戶上傳SVN服務自動更新(Web項目直接刷新頁面更新)

在版本庫中找到hooks文件,復制文件 post-commit.tmpl 並改名位 post-commit

cd /usr/local/toncat/webapps/svn/svnTset/hooks

cp post-commit.tmpl post-commit

將以下內容寫進 post-commit 文件中

#!/bin/sh
export LANG="zh_CN.UTF-8"
REPOS="$1"
REV="$2"
SVN_PATH=/usr/bin/svn
WEB_PATH=/usr/local/tomcat/webapps/svnTest/
$SVN_PATH update $WEB_PATH --username test--password test123--no-auth-cache

保存之后給 post-commit 執行權限

chmod -x post-commit 

到這來就已經實現了自動更新,就到網頁通過tomcat訪問到版本庫中最新的項目了


免責聲明!

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



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