SVN 1.6的配置與使用指南

SVN1.6配置與使用指南

1 創建SVN用戶

       #useradd -d /opt/svn -m svn

#passwd svn

1.2 建立版本庫目錄

       [root@testbed1 ~]# su - svn

       [svn@testbed1 ~]$ mkdir -p /opt/svn/svndata/repos

       可建多個,如:

[svn@testbed1 ~]$ mkdir -p /opt/svn/svndata/repos1

[svn@testbed1 ~]$ mkdir -p /opt/svn/svndata/repos2

1.3 建立版本庫

       [svn@testbed1 ~]$ svnadmin create /opt/svn/svndata/repos

       建立版本庫,默認爲FSFS數據存儲方式,也可以顯示指定

       [svn@testbed1 ~]$ svnadmin create --fs-type fsfs /opt/svn/svndata/repos

       可以建立多個版本庫,如:

       [svn@testbed1 ~]$ svnadmin create /opt/svn/svndata/repos1

[svn@testbed1 ~]$ svnadmin create /opt/svn/svndata/repos2

這樣,一個新的版本庫就被創建出來了。我們來查看一下生成的版本庫結構:

[svn@testbed1 repos]$ ls -l /opt/svn/svndata/repos

total 48

drwxrwxr-x 2 svn svn 4096 Jul 15 15:39 conf

drwxrwsr-x 6 svn svn 4096 Jul 15 12:41 db

-r--r--r-- 1 svn svn    2 Jul 15 12:02 format

drwxrwxr-x 2 svn svn 4096 Jul 15 12:02 hooks

drwxrwxr-x 2 svn svn 4096 Jul 15 12:02 locks

-rw-rw-r-- 1 svn svn  229 Jul 15 12:02 README.txt

其中,conf 目錄下存放了版本庫的配置文件,包括用戶訪問控制和權限控制等內容,文件本身的註釋說明十分詳細,讀者可以根據註釋自行配置;dav 目錄是提供給 Apache 相關模塊的目錄,目前爲空;db 目錄下存放着 Subversion 所要管理的所有受版本控制的數據,不同的存儲方式(Berkeley DB 或者 FSFS)下有着不同的目錄結構,不過我們一般不用直接修改和查看這個目錄下的內容,Subversion 的命令可以安全的操作這個目錄;另外,hooks 目錄存放着鉤子腳本及其模版(一種版本庫事件觸發程序),locks 目錄存放着 Subversion 版本庫鎖定數據,format 文件記錄了版本庫的佈局版本號。

 

1.4 修改版本庫配置文件

       [svn@testbed1 ~]$ vi /opt/svn/svndata/repos/conf/svnserve.conf

       內容修改爲:

[general]

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

realm = repos

1.5 配置允許訪問的用戶

       [svn@testbed1 ~]$ vi /opt/svn/svndata/repos/conf/passwd

       文件格式如下:

[users]

<用戶1> = <密碼1>

<用戶2> = <密碼2>

其中,[users]是必須的。下面列出要訪問svn的用戶,每個用戶一行。示例

[users]

User1 = password

User2 = 123456

注意:對用戶配置文件的修改立即生效,不必重啓svn

1.6 配置用戶訪問權限

       [svn@testbed1 ~]$ vi /opt/svn/svndata/repos/conf/authz

       用戶組格式:

[groups]

<用戶組名> = <用戶1>,<用戶2>

其中,1個用戶組可以包含1個或多個用戶,用戶間以逗號分隔。

版本庫目錄格式:

[<版本庫>:/項目/目錄]

@<用戶組名> = <權限>

<用戶名> = <權限>

其中,方框號內部分可以有多種寫法:

[/]表示根目錄及以下。根目錄是svnserve啓動時指定的,我們指定爲/opt/svn/svndata,這樣,[/]就是表示對全部版本庫設置權限。

[repos1:/]表示對版本庫1設置權限

[repos2:/abc]表示對版本庫2中的abc項目設置權限

[repos2:/abc/aaa]表示對版本庫2中的abc項目的aaa目錄設置權限

權限主體可以是用戶組、用戶或*,用戶組在前面加@*表示全部用戶。權限可以是wrwr和空,空表示沒有任何權限。

示例

[groups]

admingroup = user1,user2,user3

[/]

@admingroup = rw

[repos1:/abc/aaa]

user1 = rw

[repos2:/pass]

user2 =

注意:權限配置文件中出現的用戶名必須已在用戶配置文件中定義,對權限配置文件的修改立即生效,不必重啓svn

 

1.7 SVN服務器的啓動與停止

       [root@testbed1 ~]# su - svn

[svn@testbed1 ~]$ svnserve -d --listen-port 8009 --listen-host 200.95.160.202 -r /opt/svn/svndata

       Binding Port: --listen-port 8009

Binding IP: --listen-host 200.95.160.202

Setting start path: -r /opt/svn/svndata, used for hiding the local path in SVN URL

Full path: svn://200.95.160.202:8009/opt/svn/svndata/repos/AMX_HUB

Hidden path: svn://200.95.160.202:8009/repos/AMX_HUB

       [svn@testbed1 ~]$ ps -ef | grep svnserve

svn       1985     1  0 12:38 ?        00:00:00 svnserve -d --listen-port 8009 --listen-host 200.95.160.202 -r /opt/svn/svndata

svn      14549 13477  0 14:42 pts/1    00:00:00 grep svnserve

[svn@testbed1 ~]$kill -9 1985

 

1.8 在版本庫裏面添加項目

       Subversion 的靈活性允許用戶自由佈局版本庫,但有一套推薦的方式,創建一個 trunk

目錄來保存開發的“主線”,一個 branches 目錄存放分支拷貝,tags 目錄保存標籤拷貝,當然,SVN也不限於代碼庫的管理,用戶完全可以自定義佈局用以共享文件。

       添加項目最好的辦法就是用svn import命令導入已有的目錄樹,首先,在一個臨時目錄下,根據 Subversion 版本控制的一般佈局結構,創建出項目的主要目錄樹。

       /opt/svn/tmp                             

|

――demo_project                                  

|      |

|      ――branches

|      |

|      ――tags

|      |

|      ――trunk

[svn@testbed1 ~]$ mkdir tmp

[svn@testbed1 ~]$ mkdir -p /opt/svn/tmp/demo_project/branches

[svn@testbed1 ~]$ mkdir -p /opt/svn/tmp/demo_project/tags

[svn@testbed1 ~]$ mkdir -p /opt/svn/tmp/demo_project/trunk

[svn@testbed1 ~]$ svn import /opt/svn/tmp/ file:///opt/svn/svndata/repos/ --message "init"

Adding         /opt/svn/tmp/demo_project

Adding         /opt/svn/tmp/demo_project/trunk

Adding         /opt/svn/tmp/demo_project/branches

Adding         /opt/svn/tmp/demo_project/tags

 

Committed revision 2.

 

1.9版本庫查看

[svn@testbed1 ~]$ svn list --verbose file:///opt/svn/svndata/repos

      4 svn                   Jul 15 16:02 ./

      4 svn                   Jul 15 16:02 AMX_HUB/

      2 svn                   Jul 15 15:56 demo_project/

查看最新修訂版本的信息,可以使用svnlook info命令

       [svn@testbed1 ~]$ svnlook info /opt/svn/svndata/repos/

svn

2010-07-15 16:02:18 -0500 (Thu, 15 Jul 2010)

4

Init

命令輸出了這個版本庫的最新修訂版本信息,包括作者、時間、日誌字數和日誌內容等。除開最新修訂版以外,我們還可以在命令後面接上 --revision 版本號” 來指定某一個修訂版的顯示。

另外,我們還可以用如下命令來顯示版本庫的具體樹形結構,後面的 --show-ids 選項指定顯示每一個顯示元素的修改版本 ID

[svn@testbed1 ~]$ svnlook tree /opt/svn/svndata/repos/ --show-ids

/ <0.0.r4/154>

 AMX_HUB/ <0-4.0.r4/0>

 demo_project/ <0-2.0.r2/345>

  trunk/ <2-2.0.r2/0>

  branches/ <4-2.0.r2/76>

  tags/ <5-2.0.r2/156>

[svn@testbed1 ~]$

1.10 TortoiseSVN客戶端訪問版本庫

       Windows常用客戶端下載地址:http://tortoisesvn.net/downloads

       安裝並配置好SVN服務器後,就可以在客戶端通過svn協議來訪問svn服務器了。如果希望通過瀏覽器或HTTP協議進行訪問,則需要安裝配置Apache HTTP Server

 

    大多數時候,我們會使用 checkout 從版本庫取出一個新拷貝,開始使用 Subversion,這樣會在本機創建一個項目的“本地拷貝”,這個拷貝包括了命令行指定版本庫中的 頂點(最新的)版本。因爲可以使用版本庫的 URL 作爲唯一參數取出一個工作副本,也可以在版本庫 URL 之後指定一個目錄,這樣會將工作目錄放到你的新目錄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章