Centos6.5搭建svn伺服器

梓沐發表於2016-07-21

1.檢查svn是否安裝

[root@centos ~]# rpm -qa|grep subversion

subversion-1.6.11-9.el6_4.x86_64

如未安裝,下載地址

2.新建svn主目錄

[root@centos ~]# mkdir /svn

3.新建svn倉庫

[root@centos /]# svnadmin create /svn/project

[root@centos /]# ls /svn/project/

conf  db  format  hooks  locks  README.txt

hooks目錄

放置hook指令碼檔案的目錄

locks目錄

用來放置subversiondb鎖檔案和db_logs鎖檔案的目錄,用來追蹤存取檔案庫的客戶端

format檔案

文字檔案,表示當前檔案庫配置的版本號

conf目錄

是這個倉庫的配置檔案(倉庫的使用者訪問賬號、許可權等)

 

4.配置svnserver.conf檔案

[root@centos conf]# vim /svn/project/conf/svnserve.conf

增加如下引數

[general]

anon-access = none

auth-access = write

password-db = /svn/project/conf/passwd

authz-db = /svn/project/conf/authz

realm = SVN Repository

5.新增使用者及口令

[root@centos conf]# vim /svn/project/conf/passwd

[users]

cancer = 123456

test1 = 123456

test2 = 123456

注意:對使用者配置檔案的修改立即生效,不必重啟svn服務。

6.配置新使用者的授權檔案

[root@centos conf]# vi /svn/project/conf/authz

[groups]

admin = cancer,test1

user = test2

 

[/]

@admin = rw

@user = r

* =

/ 表示對根目錄(即/svn/project目錄)下的所有子目錄範圍設定許可權;

[/abc] 表示對資料庫中abc專案設定許可權;

建立一個admin組,組成員包括cancertest1

建立一個user組,成員只有test2

admin組對目錄有讀寫許可權;

單個使用者test2有讀寫許可權;

*=表示除了上面設定的許可權使用者組以外,其他所有使用者都設定空許可權,空許可權表示禁止訪問本目錄,這很重要一定要加上。

注意:對許可權配置檔案的修改立即生效,不必重啟svn

 

7.啟動svn服務

[root@centos conf]# svnserve -d -r /svn/project/

注意:不要使用系統提供的 /etc/init.d/svnserve start 來啟動,因為系統預設的啟動指令碼中沒有使用 –r /svn/project引數指定一個資源。這種情況下啟動的svn服務,客戶端連線會提示“svn: No repository found in 'svn://192.168.1.105/project' ”這樣的錯誤。

預設svn伺服器埠是3690

8.殺死svn服務,重新啟動

[root@centos conf]# ps -ef|grep svn

root     30124     1  0 11:20 ?        00:00:00 svnserve -d -r /svn/project/

root     30126 30062  0 11:21 pts/1    00:00:00 grep svn

 

[root@centos conf]# kill 30124

 

[root@centos conf]# ps -ef|grep svn

root     30128 30062  0 11:22 pts/1    00:00:00 grep svn

若要使用/etc/init.d/svnserve 指令碼,可以修改start()函式部分,增加-r /svn/project如下:

start() {

    [ -x $exec ] || exit 5

    [ -f $config ] || exit 6

    echo -n $"Starting $prog: "

    daemon --pidfile=${pidfile} $exec $args -r /svn/project

    retval=$?

    echo

    [ $retval -eq 0 ] && touch $lockfile

    return $retval

}

:

把檔案上傳到SVN版本庫後,上傳的檔案不再以檔案原來的格式儲存,而是被svn以它自定義的格式壓縮成版本庫資料,存放在版本庫中。

如果是FSFS格式,這些資料存放在版本庫的db目錄中,裡面的revsrevprops分別存放著每次提交的差異資料和日誌等資訊

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29812844/viewspace-2122317/,如需轉載,請註明出處,否則將追究法律責任。

相關文章