Svn服務器部署
svn簡介
Subversion是一個免費/開源的版本控制系統, Subversion 能夠跨越時間地對文件和目錄, 以及它們的修改進行管理. 這就容許你恢復 數據的舊版本, 或檢查數據的修改歷史. 因爲這個特色, 不少人把版本控制系統 當作是一種 「時間機器」.
Svn的組件
- svn 客戶端命令行工具
- svnversion 用於報告工做副本狀態 (就項目的版本號而言) 的工具
- svnlook能夠直接檢查倉庫的工具
- svnadmin 用於建立, 調整或修復 Subversion 倉庫的工具
- mod_dav_svn Apache HTTP 服務器插件, 該插件容許用戶經過網絡訪問倉庫
- svnserve 一個定製的, 可獨立運行的服務器程序, 能夠以守護進程方式運行, 也能夠被 SSH 調用, 這是另外一種容許用戶經過網絡訪問倉庫的方法
- svndumpfilter 過濾 Subversion 倉庫轉儲數據流的程序
- svnsync 能夠跨越網絡對倉庫進行增量鏡像備份的程序
- svnrdump 能夠跨越網絡對倉庫歷史進行轉儲和加載的程序
- svnmucc 該工具支持在沒有工做副本的狀況下, 在一個單獨的提交中對多個 倉庫執行基於 URL 的操做
Svn 服務端運行方式
- server端VisualSVN
- client端TrotoiseSVN
linux
- subversion
基礎環境
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 user01linux
htpasswd命令用法
- -c:建立一個加密文件;
- -n:不更新加密文件,只將加密後的用戶名密碼顯示在屏幕上;
- -m:默認採用MD5算法對密碼進行加密;
- -d:採用CRYPT算法對密碼進行加密;
- -p:不對密碼進行進行加密,即明文密碼;
- -s:採用SHA算法對密碼進行加密;
- -b:在命令行中一併輸入用戶名和密碼而不是根據提示輸入密碼;
- -D:刪除指定的用戶。
示例
利用htpasswd命令添加用戶 (用戶user01,密碼123456)
htpasswd -bc svnuser user01 123456算法
在原有密碼文件中增長下一個用戶(更新用戶密碼與之相同)
htpasswd -b svnuser user02 123456apache
刪除一個用戶
htpasswd -D svnuser user02windows
修改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