Subversion是一個自由,開源的版本控制系統,這個版本庫就像一個普通的文件服務器,不同的是,它可以記錄每一次文件和目錄的修改情況。這樣就可 以很方面恢復到以前的版本,並可以查看數據更改細節。目前,Subversion已成為主流的開源代碼版本管理軟件之一,簡稱SVN。
2. 安裝和服務器搭建
執行下列指令安裝
sudo apt-get install subversion
3 創建版本庫
3.1先創建目錄文件夾
sudo mkdir /home/svn
sudo mkdir /home/svn/project1
sudo mkdir /home/svn/project2
3.2創建第一個項目
project1 第二個項目
project2
svnadmin create /home/svn/project1
svnadmin create /home/svn/project2
4. 為了便於管理,將所有版本庫的密碼和權限設置在同一個文件下面,操作步驟如下:
4.1 取出project1下面conf文件夾下的authz和passwd兩個文件到svn根目錄下面
4.2 修改每個版本庫目錄conf文件夾下面的svnserve.conf文件, 將
# anon-access = read ,#auth-access = write ,# password-db = passwd,#authz-db = authz 修改為:
anon-access = none ,auth-access= write,password-db = ../../passwd,authz-db = ../../authz
(password-db = ../../passwd,authz-db = ../../authz代表相對路徑而非絕對路徑)
5. 定義一下幾個角色用來測試
5.1 配置管理員(svnadmin),用來管理整個庫
5.2 項目經理(manage),用來相關管理文檔
5.3 開發人員 (dev),測試開發是否正常
6. 下面添加角色
打開svn目錄下的passwd文件,創建方法是在[user]下面添加 username = passwd,記得“=”前后的空格,如下圖:
(svnadmin控制所有項目,統一管理)
7. 為角色分配權限:
假設(quxin是project1的項目經理,huzhixin是project2的項目經理,dev1、dev2是project1 的開發人員,dev3、dev4是project2的開發人員,test1是 project1的測試人員,test2是project2的測試人員)
庫目錄及具體權限如下圖所示:

具體權限:(根目錄下,svnadmin擁有所有權限,其他人只有讀權限,要設置子目錄權限,需設置子目錄上級的權限方可,設置個別文件權限如下:)

8啟動svn服務
8.1一次啟動
sudo svnserve -d -r /home/svn
查看是否啟動成功,可看的監聽3690端口
sudo netstat -antp |grep svnserve
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 28967/svnserve
如果想關閉服務,可使用pkill svnserve
8.2.開機自啟動svn
在/etc/init.d目錄建立一個腳本文件svnd.sh
cd /etc/init.d
touch svnd.sh
chmod +x svnd.sh
vi svnd.sh
輸入如下內容:
#!/bin/bash
#svnserve startup
svnserve -d -r /ysh/svn
更新修改權限:
update-rc.d svnd.sh defaults
(若提示權限不足,請用sudo執行)
9 工具
SVN 服務器端:Subversion 1.5 ,客戶端 TrotoiseSVN 1.5 (
https://tortoisesvn.net/downloads.html)
10訪問版本庫地址
svn://172.16.26.28/project1
svn://172.16.26.28/project2