SVN倉庫搭建

2021-09-28 16:57:07 字數 4007 閱讀 2505

一、建立倉庫

1、建立新專案資料夾

語法:svnadmin create /directory

svnadmin create /data/svndata/myproject下新建myproject倉庫

倉庫建立成功以後,會出現乙個倉庫名字的資料夾 資料夾下面有以下幾個檔案和目錄

myproject

|-conf

|-db

|-format

|-hooks

|-locks

|-readme.txt

其中conf資料夾下面包含三個重要檔案 authz passwd svnserve.conf

2、修改配置檔案

修改passwd檔案

passwd的配置語法格式: 使用者名稱=密碼

# vi passwd

### this file is an example password file for svnserve.

### its format is similar to that of svnserve.conf. as shown in the

### example below it contains one section labelled [users]

.### the name and password for each user follow, one account per line.

[users]

# harry = harryssecret

# sally = sallyssecret

test =

123456 #修改處

————————————————

新增賬號test,密碼123456

3、配置使用者許可權

修改authz檔案

注意:許可權配置檔案**現的使用者名稱必須已在使用者配置檔案中定義。

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

使用者組格式:

[groups]

admin = test,demo

admin組下擁有test和demo使用者

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

版本庫目錄格式:

[

《版本庫》

:/專案/目錄]

@《使用者組名》

=《許可權》

《使用者名稱》

=《許可權》

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

/表示根目錄及以下。根目錄是svnserve啟動時指定的,我們指定為/data/svnrepos/myproject。這樣,/就是表示對全部版本庫設定許可權。

repos1:/ 表示對版本庫1設定許可權

repos2:/a 表示對版本庫2中的a專案設定許可權

repos2:/a/b 表示對版本庫2中的a專案的b目錄設定許可權

許可權主體可以是使用者組、使用者或*,使用者組在前面加@,*表示全部使用者。許可權可以是w、r、wr和空,空表示沒有任何許可權。

# [repository:

/baz/fuz]

# @harry_and_sally = rw

# *= r[/

] #修改處

@admin = rw #修改處

test = rw #修改處

在根目錄下admin使用者組/test使用者擁有讀寫許可權。

4、修改svn啟動項引數

修改svnserve.conf檔案

svn服務配置檔案為版本庫目錄中的檔案conf/svnserve.conf。該檔案僅由乙個[general]配置段組成

[general]配置段中配置行格式如下:

《配置項》 = 《值》

配置項分為以下5項:

1.anon-access控制非鑑權使用者訪問版本庫的許可權。取值範圍為"write"、「read"和"none」。

即"write"為可讀可寫,"read"為唯讀,"none"表示無訪問許可權。

預設值:read

2.auth-access控制鑑權使用者訪問版本庫的許可權。取值範圍為"write"、「read"和"none」。

即"write"為可讀可寫,"read"為唯讀,"none"表示無訪問許可權。

預設值:write

3.password-db指定使用者名稱口令檔名。除非指定絕對路徑,否則檔案位置為相對conf

目錄的相對路徑。

預設值:passwd

4.authz-db指定許可權配置檔名,通過該檔案可以實現以路徑為基礎的訪問控制。

除非指定絕對路徑,否則檔案位置為相對conf目錄的相對路徑。

預設值:authz

5.realm 指定版本庫的認證域,即在登入時提示的認證網域名稱稱。若兩個版本庫的

認證域相同,建議使用相同的使用者名稱口令資料檔案。

預設值:乙個uuid(universal unique identifier,全域性唯一標示)

5、啟動服務

語法:svnserve -d -r svn倉庫目錄

svnserve -d -r /data/svndata/myproject/

如果啟動提示svnserve: can』t bind server socket: address already in use,是由於已經啟動了svn,你的配置檔案應該已經生效了。

檢視svn程序

ps -ef|grep svn

6、訪問倉庫

使用svn客戶端 輸入位址 svn://ip/myproject 就可以訪問到這個倉庫。

二、版本管理搭建

第一步、

把**根目錄** 匯入到版本庫,讓版本庫有**。做為最初版本的**。

/# svn import /www/wwwroot/myproject/custom file:

///data/svndata/myproject/custom/ -m 「initial import」

/第三步、

檢出版本庫**到**目錄專案 // 這裡是指定了做版本管理的資料夾。網域名稱請自動替換成自己的路徑

svn co --username admin --password aadmin888 svn://

120.

..174

svn co --username admin --password aadmin888 svn://

120.

..174

/myproject/custom /www/wwwroot/myproject/custom/

svn co --username admin --password aadmin888 svn://

120.

..174

第四步、

來到版本庫的 hooks 目錄,

vim post-commit 建立這個檔案,並賦予這個檔案使用者的可執行許可權。

!

/bin/sh

repos=

"$1"

rev=

"$2"

export lang=en_us.utf-

8svn up /www/wwwroot/myproject/custom --username admin --password aadmin888

第五步、

重啟svn 服務。去本地跟新**,並且上傳測試即可。

killall svnserve //停止 

svnserve -d -r /data/svndata// 啟動

SVN搭建本地版本控制倉庫

1.安裝tortoisesvn 2.新建乙個資料夾,比如f svnprojectscfg 3.在f svnprojectscfg新建乙個資料夾project1,右鍵該資料夾選擇 create repository here 那麼關於project1的 svn版本資訊就都在這個目錄 f svnproj...

svn倉庫遷徙

專案中經常會遇到svn遷徙的問題,這裡詳細步驟演示如何遷徙乙個svn倉庫 轉存倉庫 svnadmin dump srv svn proj r 1234 head file1.dump 轉存從版本1234到最新版本,如果是整個倉庫歷史,就要指定0.過濾你想要的子分支 cat file1.dump sv...

建立svn倉庫

今天在客戶現場聯調,兩個開發人員之間的 想用svn來管理,所以就臨時在本地機器上搭建乙個svn倉庫。現將操作步驟記錄下來,以便後續查閱。1 安裝svn服務端setup subversion 1.6.5.msi和客戶端tortoisesvn 1.6.5.16974 win32 svn 1.6.5.ms...