linux 搭建SVN服務端

來源:互聯網
上載者:User

標籤:admin   用戶端串連   creat   組成   使用者   帳號   客戶   tin   load   

搞了個伺服器,然後現在想搞點事情,於是乎整個SVN在上面,算是熟悉下svn的操作過程

以下內容轉載自:

https://yq.aliyun.com/articles/6693

--------------------------------------------------

Linux搭建SVN 伺服器

 沈小然    日期:2014年 8月 5日

1          安裝SVN

官網下載:http://subversion.apache.org/packages.html

SVN用戶端:TortoiseSVN,官網下載:http://tortoisesvn.net/downloads.html

# yum install subversion

 

1.       建立一個目錄用於儲存SVN所有檔案

# mkdir /svn

 

2.       建立一個資源倉庫

# svnadmin create /svn/project# ls /svn/project/

 

conf  db  format  hooks  locks  README.txt

目錄用途說明:

l  hooks目錄:放置hook指令檔的目錄

l  locks目錄:用來放置subversion的db鎖檔案和db_logs鎖檔案的目錄,用來追蹤存取檔案庫的用戶端

l  format檔案:是一個文字檔,裡面只放了一個整數,表示當前檔案庫配置的版本號碼

l  conf目錄:是這個倉庫的設定檔(倉庫的使用者訪問帳號、許可權等)

3.       配置svn服務的設定檔svnserver.conf檔案

# vi /svn/project/conf/svnserve.conf

註:

這裡可以使用vim編輯器等工具

vim編輯器的使用方法是

開啟檔案之後,按“I”鍵

游標定位到相應的位置即可修改

然後按“esc”,輸入“:wq”

儲存退出

具體還是要查看一下vim的使用說明

[general]

anon-access = none

auth-access = write

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

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

realm = My Test Repository         #這是個提示資訊

儲存

4.       添加兩個訪問使用者及口令

# vi /svn/project/conf/passwd

 

[users]

xiaoran.shen = 123456

test1 = 123456

test2 = 123456

儲存

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

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

# vi /svn/project/conf/authz

 

[groups]

admin = xiaoran.shen,test1

user = test2

 

[/]

@admin = rw

@user = r

* =

儲存

格式說明:

版本庫目錄格式: 

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

@<使用者組名> = <許可權> 

<使用者名稱> = <許可權>

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

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

建立一個admin組,群組成員包括xiaoran.shen和test1

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

admin組對目錄有讀寫權限;

單個使用者test2有讀寫權限;

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

注意:對許可權設定檔的修改立即生效,不必重啟svn。 

6.       啟動svn服務

svnserve -d -r /svn/project/

 

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

預設svn伺服器連接埠是3690。

殺死svn服務:

# ps -ef|grep svn

 

root      4642     1  0 16:08 ?        00:00:00 svnserve -d -r /svn/project/

root      4692  3676  0 16:13 pts/2    00:00:00 grep svn

# kill -9 4642

 

若要使用/etc/init.d/svnserve 指令碼,可以修改start()函數部分,如下:

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

}

完成 

2          使用用戶端串連2.1       使用windows的用戶端

開啟TortoiseSVN Repository Browser工具

在URL中輸入:

svn://192.168.11.229斷行符號,提示輸入使用者名稱和口令

2.2       使用Linux下的命令列

# svn co svn://192.168.11.229

 

3          FAQ3.1       命令列方式串連,提示svn: No repository found in ‘svn://192.168.11.229/project‘錯誤?

解決:啟動svn服務的時候沒有使用-r /svn/project參數,沒有指明資產庫的具體路徑。使用# svnserve -d -r /svn/project/ 命令來啟動就可以了,不要使用/etc/init.d/svnserver指令碼。

3.2       執行命令# svn co svn://192.168.11.229/project時提示“svn: Authorization failed”錯誤?

解決:一般這種授權失敗的錯誤原因都來自conf/authz檔案的配置

正確的配置如下:

[groups]

admin = xiaoran.shen,test1

user = test2

[/]

@admin = rw

@user = rw

* =

儲存

linux 搭建SVN服務端

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.