Svn服務器部署
svn簡介
Subversion是一個免費/開源的版本控制系統, Subversion 可以跨越時間地對文件和目錄, 以及它們的修改進行管理. 這就允許你恢復 數據的舊版本, 或檢查數據的修改歷史. 由於這個特點, 很多人把版本控制系統 看成是一種 “時間機器”.
Svn的組件
- svn 客戶端命令行工具
- svnversion 用於報告工作副本狀態 (就項目的版本號而言) 的工具
- svnlook可以直接檢查倉庫的工具
- svnadmin 用於創建, 調整或修復 Subversion 倉庫的工具
- mod_dav_svn Apache HTTP 服務器插件, 該插件允許用戶通過網絡訪問倉庫
- svnserve 一個定製的, 可獨立運行的服務器程序, 可以以守護進程方式運行, 也可以被 SSH 調用, 這是另一種允許用戶通過網絡訪問倉庫的方法
- svndumpfilter 過濾 Subversion 倉庫轉儲數據流的程序
- svnsync 可以跨越網絡對倉庫進行增量鏡像備份的程序
- svnrdump 可以跨越網絡對倉庫歷史進行轉儲和加載的程序
- svnmucc 該工具支持在沒有工作副本的情況下, 在一個單獨的提交中對多個 倉庫執行基於 URL 的操作
Svn 服務端運行方式
- 獨立服務器訪問s svn://svn.server.net/svn_test
- 藉助apache等http服務 http://svn.server.net/svn_test
- 本地文件 file:///svn_test
常用Svn軟件工具
windows
- server端VisualSVN
- client端TrotoiseSVN
linux
- subversion
基礎環境
- Centos7.4 x86_64
subversion軟件安裝
yum install subversion mod\_svn_dav httpd
Svn服務器部署
- 庫目錄/home/SVN_REPO
- 帳號驗證文件目錄/etc/subversion
- 訪問路徑http://ip_address/svn/
創建密碼驗證文件
示例創建user01的svn用戶
cd /etc/subversion
htpasswd -c svnuser user01htpasswd命令用法
- -c:創建一個加密文件;
- -n:不更新加密文件,只將加密後的用戶名密碼顯示在屏幕上;
- -m:默認採用MD5算法對密碼進行加密;
- -d:採用CRYPT算法對密碼進行加密;
- -p:不對密碼進行進行加密,即明文密碼;
- -s:採用SHA算法對密碼進行加密;
- -b:在命令行中一併輸入用戶名和密碼而不是根據提示輸入密碼;
- -D:刪除指定的用戶。
示例
利用htpasswd命令添加用戶 (用戶user01,密碼123456)
htpasswd -bc svnuser user01 123456
在原有密碼文件中增加下一個用戶(更新用戶密碼與之相同)
htpasswd -b svnuser user02 123456
刪除一個用戶
htpasswd -D svnuser user02
修改httpd配置
不同的系統路徑略有不同
vi /etc/httpd/conf.modules.d/10-subversion.conf
<location /svn>
DAV svn
SVNListParentPath On
SVNParentPath /home/SVN_REPO/
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/subversion/svnuser
Require valid-user
<IfModule mod_authz_svn.c>
#AuthzSVNAccessFile /etc/httpd/authz
AuthzSVNReposRelativeAccessFile authz
</IfModule>
</location>
創建svn庫
創建一個名爲svn_test庫
cd /home/SVN_REPO
svnadmin create svn_test
配置訪問權限
添加user01對svn_test根目錄讀寫權限
cd /home/SVN_REPO/svn_test/conf
vi authz
[svn_test:/]
user01 = rw
authz權限文件語法
[<倉庫名稱>:<倉庫路徑>]
內容 ==書寫方式
用戶名 = 權限(r, rw) user01 = r
或者:
@組名 = 權限(r, rw) @group = r