SVN管理
簡介
svn: 程式碼版本管理工具,使用簡單
安裝
# 安裝httpd svn mod_dav)svn模組
yum -y install subversion httpd mod_dav_svn
# 檢查模組是否安裝成功
ll /etc/httpd/modules/ | grep svn
-rwxr-xr-x. 1 root root 13456 8月 17 2015 mod_authz_svn.so
-rwxr-xr-x. 1 root root 155360 8月 17 2015 mod_dav_svn.so
svn配置
# 建立svn倉庫目錄
mkdir -p /mnt/rhd/svn-repos
# 建立svn版本庫
cd /mnt/rhd/svn-repos && svnadmin create repo1
# 修改使用者組及許可權
chown -R apache.apache repo1/
# 修改當前倉庫配置檔案
[general]
anon-access = none # 關閉匿名訪問
auth-access = write # 驗證使用者可寫
password-db = /mnt/rhd/svn-repos/repo1/conf/htpasswd # 指向驗證使用者名稱密碼的資料檔案 passwd
authz-db = /mnt/rhd/svn-repos/repo1/conf/authz # 指向驗證使用者的許可權配置檔案 authz
[sasl]
http配置
# 配置apache透過mod_dav_svn模組訪問svn服務
cat /etc/httpd/conf.d/svn.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath /mnt/rhd/svn-repos # 倉庫路徑
AuthType Basic
AuthName "SVN repose Auth" # apache認證時彈出的訊息
AuthUserFile /mnt/rhd/svn-repos/repo1/conf/htpasswd # passwd儲存使用者名稱和密碼的路徑
AuthzSVNAccessFile /mnt/rhd/svn-repos/repo1/conf/authz # 存放使用者許可權的路徑
Satisfy Any
Require valid-user
# </LimitExcept>
</Location>
注: SVNpath 和SVNParentPath區別
SVNParentPath是在倉庫目錄的上一級。
SVNPath就是在倉庫的目錄下
兩個不同的引數
SVNParentPath /var/www/svn-repos
或者
SVNPath /var/www/svn-repos/repo1
兩種訪問的模式不一樣,SVNParentPath就是訪問地址/svn/後面要加倉庫名稱,而另外一個不用加,直接/svn/就是倉庫了。
# 啟動httpd服務
systemctl enable httpd --now
svn版本庫介紹
ll /mnt/rhd/svn-repos/repo1/
總用量 16
drwxr-xr-x. 2 apache apache 51 3月 25 15:41 conf
drwxr-xr-x. 3 apache apache 25 4月 9 2018 dav
drwxr-sr-x. 7 apache apache 4096 7月 30 17:02 db
-r--r--r--. 1 apache apache 2 4月 9 2018 format
drwxr-xr-x. 2 apache apache 4096 4月 9 2018 hooks
drwxr-xr-x. 2 apache apache 39 4月 9 2018 locks
-rw-r--r--. 1 apache apache 229 4月 9 2018 README.txt
# conf目錄: 是這個倉庫的配置檔案(倉庫的使用者訪問賬號、許可權等)
# db目錄: 就是所有版本控制的資料存放檔案
# format檔案: 是一個文字檔案,裡面只放一個整數,表示當前檔案庫配置的版本號
# hooks目錄: 放置hook指令碼檔案的目錄
# locks目錄: 用來放置subsersion監控鎖定資料的目錄,用來追蹤存取檔案庫的客戶端
# dav目錄: 是提供apache與mod_dav_svn使用的目錄,讓他們儲存內部資料,剛開始建立時此目錄沒有
建立使用者密碼
# 使用htpasswd建立使用者,首次建立使用者。位置和subversion.conf裡的一樣,給第一個使用者新增密碼時要加c,意思是建立這個檔案,以後就不用加了,後期透過httpd伺服器訪問svn時,會使用這個檔案中的使用者資訊驗證使用者和密碼。執行新增使用者命令必須在passwd檔案所在的目錄下執行,否則會另外建立一個passwd檔案,之前的passwd檔案和配置會失效
cd /mnt/rhd/svn-repos/repo1/conf/
htpasswd -cb passwd test1 123456789
引數詳解:
-c: 建立passwd檔案,預設為MD5加密
-b: 在命令列中一併輸入使用者名稱和密碼而不是根據提示輸入密碼
注:
第二次建立不需要新增-c
# 新增使用者
htpasswd -b passwd 使用者名稱 密碼
# 刪除使用者
htpasswd -D passwd 使用者名稱
# 修改使用者密碼
htpasswd passwd 使用者名稱
建立版本庫許可權控制檔案
cat /mnt/rhd/svn-repos/repo1/conf/authz
[groups] # 表示群組設定
[/] # 表示在所有倉庫的根目錄下
test = rw # 表示test使用者對所有倉庫根目錄下的軟體版本庫有rw許可權
test1=r # 表示test1使用者對所有倉庫根目錄下的軟體版本庫有r許可權
[repo1:/] # 表示repo1倉庫的訪問許可權
test2 = rw # 在repo1倉庫中test2有讀寫許可權
[repo1:/ch] # 表示repo1倉庫下/ch目錄訪問許可權
test3=rw # 在repo1倉庫/ch目錄test3有讀寫許可權
web訪問
# 重啟httpd服務
systemctl restart httpd
# 訪問
http://httpIP/svn/repo1
win客戶端使用
# 下載地址https://svnbucket.com,選擇語言
# 安裝完成後,點選圖示右鍵---選擇SVN Checkout --------> 輸入版本庫url+++路徑