一、簡介
Subversion
(簡稱SVN
)是一個自由開源的版本控制系統。Subversion
將檔案存放在中心版本庫裡,這個版本庫很像一個普通的檔案伺服器,不同的是,它可以記錄每一次檔案和目錄的修改情況,這樣就可以藉此將資料恢復到以前的版本,並可以檢視資料的更改細節。目前,Subversion
已成為主流的開原始碼版本管理軟體之一。
二、安裝SVN服務
sudo apt-get install subversion
三、建立版本庫
1、建立目錄資料夾
sudo mkdir /var/svn
sudo mkdir /var/svn/project1
sudo mkdir /var/svn/project2
2、建立版本庫 project1
svnadmin create /var/svn/project1
3、建立版本庫 project2
svnadmin create /var/svn/project2
四、設定使用者及訪問許可權
1、集中配置
為了便於管理,將所有版本庫的密碼和許可權,設定在同一個目錄下
1.1、在根目錄下建立conf資料夾,用來存放公共配置檔案
sudo mkdir /var/svn/conf
1.2、拷貝project1/conf
資料夾下的authz
和passwd
兩個檔案到svn根目錄下面
cp /var/svn/project1/conf/authz /var/svn/conf
cp /var/svn/project1/conf/passwd /var/svn/conf
1.3、修改每個版本庫目錄conf
資料夾下面的svnserve.conf
檔案,將以下內容
password-db = passwd
authz-db = authz
修改為:
password-db = ../../conf/passwd
authz-db = ../../conf/authz
注:../../conf/passwd
代表相對路徑而非絕對路徑
2、新增使用者
開啟/svn/conf/passwd
檔案,在[user]
標識下新增使用者(username = password
對應關係)
[user]
svnadmin = pwd_svnadmin
manage1 = pwd_manage1
manage2 = pwd_manage2
dev1 = pwd_dev1
dev2 = pwd_dev2
dev3 = pwd_dev3
dev4 = pwd_dev4
test1 = pwd_test1
test2 = pwd_test2
注:=
等號前後有空格
3、分配許可權
定義幾個角色用來測試
配置管理員(svnadmin),用來管理整個庫
經理(manage),用來管理專案文件
開發(dev),用來管理專案程式碼
測試(test),用來管理測試相關文件
設定分組
開啟/svn/conf/authz
檔案,在[group]
標識下新增使用者(groupname = username
對應關係)
[group]
admin_group = svnadmin
manage_group_1 = manage1
manage_group_2 = manage2
dev_group_1 = dev1,dev2
dev_group_2 = dev3,dev4
test_group_1 = test1
test_group_2 = test2
注:=
等號前後有空格;多個使用者之間用,
逗號分隔
分組訪問許可權
[/]
@admin_group = rw
* = r[project1:/]
@admin_group = rw
@manage_group_1 = rw
@dev_group_1 = r
@test_group_1 = r[project1:/Public]
@admin_group = rw
@manage_group_1 = rw
@dev_group_1 = r
@test_group_1 = r[project1:/code]
@dev_group_1 = rw
* =[project1:/test]
@test_group_1 = rw
* =[project2:/]
@admin_group = rw
@manage_group_2 = rw
@user_group_2 = r
@test_group_2 = r
[project2:/code]
@dev_group_2 = rw
* =
注:=
等號前後有空格
4、修改配置檔案
開啟/svn/conf/svnserve.conf
檔案,將以下內容
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz
修改為:
anon-access = none
auth-access = write
password-db = ../../conf/passwd
authz-db = ../../conf/authz
五、啟動SVN服務
1、啟動服務
sudo svnserve -d -r /var/svn --config-file /var/svn/conf/svnserve.conf
2、設定開機自啟動
在目錄/etc/init.d
下新增指令碼startsvn.sh
#!/bin/bash
sudo svnserve -d -r /var/svn --config-file /var/svn/conf/svnserve.conf
執行命令 sudo update-rc.d starsvn.sh defaults
,將指令碼新增到自啟動專案中。
六、驗證訪問版本庫地址
-
svn://localhost/project1
-
svn://localhost/project2