SVN 安裝與使用詳解
目錄
一、單庫SVN安裝
1.準備
(1)大多數 GNU/Linux 發行版系統自帶了Subversion ,所以它很有可能已經安裝在你的系統上了。可以使用下面命令檢查是否安裝了。
svn --version
(2)如果 Subversion 客戶端沒有安裝,命令將報告svn命令找不到的錯誤。
[[email protected] ~]$ svn --version bash: svn: command not found
2.安裝
(1)我們可以使用 yum install subversion 命令進行安裝。
yum install subversion -y
(2)安裝成功之後,執行 svn --version 命令。
svn --version
3.啟動與配置
由於-r 配置方式的不一樣,SVN啟動就可以有兩種不同的訪問和配置方式:單庫SVNserve方式或多庫svnserve方式
此著重講解單庫svnserve方式:
(1)手動新建版本庫目錄
mkdir /app/svn
(2)利用svn命令建立版本庫
svnadmin create /app/svn/
(3)檢視版本庫目錄
[[email protected] ~]# ll /app/svn
drwxr-xr-x 2 admin admin 4096 Sep 28 16:58 conf
drwxr-sr-x 6 admin admin 4096 Sep 29 14:38 db
-r--r--r-- 1 admin admin 2 Sep 6 14:33 format
drwxr-xr-x 2 admin admin 4096 Sep 6 14:33 hooks
drwxr-xr-x 2 admin admin 4096 Sep 6 14:33 locks
-rw-r--r-- 1 admin admin 229 Sep 6 14:33 README.txt
(4)配置 conf/svnserve.conf
svn服務配置檔案為版本庫目錄中的檔案conf/svnserve.conf。該檔案僅由一個[general]配置段組成。
vim /conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = /app/svn/conf/passwd
authz-db = /app/svn/conf/authz
realm = tydic
(5)配置 conf/passwd
使用者名稱口令檔案由svnserve.conf的配置項password-db指定,預設為conf目錄中的passwd。該檔案僅由一個[users]配置段組成
[users]
#使用者名稱=密碼
admin = [email protected]
wangxin = 111
li=222222
wan=33333
tawe=4444444
(6)配置 conf/authz
許可權配置檔案由svnserve.conf的配置項authz-db指定,預設為conf目錄中的authz。該配置檔案由一個[groups]配置段和若干個版本庫路徑許可權段組成。
[groups]
tydic=wangxin,wan,li
[/]
admin=rw * = r
[/總部業務線]
admin=rw
@tydic=rw
*=
(7)使用svnserve 啟動服務
svnserve -d -r /app/svn --listen-port 3690
-r: 配置方式決定了版本庫訪問方式。
--listen-port: 指定SVN監聽埠,不加此引數,SVN預設監聽3690
(8)通過客戶端tortoiseSVN訪問URL
svn://10.124.164.162:3690/
二、多庫svnserve與單庫SVNserve 不同
1.單庫SVNserve:-r直接指定到版本庫
svnserve -d -r /app/svn/db1
在這種情況下,一個svnserve只能為一個版本庫工作。
authz配置檔案中對版本庫許可權的配置應這樣寫:
[groups]
admin=wangxin
dev=zhangqi
[/]
@admin=rw
@dev=r
使用類似這樣的URL:svn://*.*.*.*/ 即可訪問db1版本庫.
2.多庫SVNserve:指定到版本庫的上級目錄
svnserve -d -r /opt/svn
這種情況,一個svnserve可以為多個版本庫工作
authz配置檔案中對版本庫許可權的配置應這樣寫:
[groups]
admin=wangxin
dev=zhangqi
[db1:/]
@admin=rw
@dev=r
[db2:/]
@admin=rw
@dev=r
#如果此時你還用[/],則表示所有庫的根目錄,同理,[/src]表示所有庫的根目錄下的src目錄。
使用類似這樣的URL:svn://*.*.*.*/db1 即可訪問db1版本庫。
3.當然要想使用多庫SVN,在建立版本庫的時候要建立的藝術一點
有步驟1,和步驟2 的前提是:(這和SVN單庫安裝並不一樣)
svnadmin create /app/svn/db1
svnadmin create /app/svn/db2
4.多庫可以使用同一個 passwd 和 auth
通過版本庫的 svnserve.conf 配置(須為絕對路徑)
password-db = /app/svn/passwd
authz-db = /app/svn/authz
三、配置檔案解析
1.svnserve.conf
- anon-access: 控制非鑑權使用者訪問版本庫的許可權,取值範圍為"write"、"read"和"none"。 即"write"為可讀可寫,"read"為只讀,"none"表示無訪問許可權。 預設值:read
- auth-access: 控制鑑權使用者訪問版本庫的許可權。取值範圍為"write"、"read"和"none"。 即"write"為可讀可寫,"read"為只讀,"none"表示無訪問許可權。 預設值:write
- authz-db: 指定許可權配置檔名,通過該檔案可以實現以路徑為基礎的訪問控制。 除非指定絕對路徑,否則檔案位置為相對conf目錄的相對路徑。 預設值:authz
- realm: 指定版本庫的認證域,即在登入時提示的認證域名稱。若兩個版本庫的 認證域相同,建議使用相同的使用者名稱口令資料檔案。 預設值:一個UUID(Universal Unique IDentifier,全域性唯一標示)。
2.passwd
#使用者名稱=密碼
3.authz
(1)許可權具備繼承性:子目錄會自動擁有父目錄的許可權
(2)*= : 代表除上述使用者和組外,其他使用者對該目錄無讀寫許可權
(3)*=r :代表除上述使用者和組外,其他使用者對該目錄只有讀許可權
(4)無*先後順序 一說:也就是說,如果我將本段配置的 ``* =`` 這一行挪到最前面,完全不影響整個配置的最終效果。
四、使用svn客戶端通過svn協議訪問URL
1.下載tortoiseSVN
2.安裝,點點點就行了
3.漢化
下載漢化包,點點點
4.使用客戶端
在桌面右擊,點開版本庫瀏覽器,輸入URL,使用使用者名稱和密碼即可登入使用