Linux下SVN安裝配置記錄

2021-06-06 08:37:45 字數 3107 閱讀 7949

測試svn是否安裝成功,執行:

svnserve --version

如果顯示版本資訊, 則安裝成功.

第二章 配置

本系統採用為每個專案單獨建一版本庫的策略。配置檔案,密碼檔案,訪問控制檔案等都放在版本庫的conf目錄下。所以每次開始乙個新專案都必須新建乙個版本庫,並重新配置各配置檔案。還有很重要的一條,要求各組員重新配置客戶端,包括伺服器版本庫路徑,本地路徑等資訊。

1. 建立版本庫目錄(可建立多個,新建庫後以下各項都需重新配置。注意區別安裝目錄與版本庫目錄,以下講的都是版本庫目錄)

mkdir –p /opt/svndata/repos

2. 建立svn版本庫(與上面目錄對應)

svnadmin create /opt/svndata/repos

執行此命令後svn自動在repos目錄下新增必須的配置檔案.

注意:版本庫不同於一般的資料夾, 直接在作業系統上新建檔案無法被svn識別, 必須使用import等命令將檔案匯入版本庫.

此為svn內部指令,create用於新建版本庫。請使用svn help檢視詳細說明。

3. 修改版本庫配置檔案

vi /opt/svndata/repos/conf/svnserve.conf

各引數功能在配置檔案的注釋中有說明, 此處配置如下:

[general]

anon-access = none # 使非授權使用者無法訪問

auth-access = write # 使授權使用者有寫許可權

password-db = /opt/svndata/repos/conf/pwd.conf # 指明密碼檔案路徑

authz-db = /opt/svndata/repos/conf/authz.conf # 訪問控制檔案

realm = /opt/svndata/repos # 認證命名空間,subversion會在認證提示裡顯示,並且作為憑證快取的關鍵字。

其它採用預設配置. 各語句都必須頂格寫, 左側不能留空格, 否則會出錯.

其中pwd.conf 與 authz.conf 在新建版本庫時系統不會自動建立,需要自己建立。

指令簡介:這是svn配置檔案的格式,請按照以上格式書寫。

4. 配置使用者

vi /opt/svndata/repos/conf/pwd.conf

輸入以下內容:

[users]

username1 = password1

username2 = password2

可以新增多個,此為使用者名稱密碼對。

5. 配置許可權

vi /opt/svndata/repos/conf/authz.conf

指令簡介:此配置檔案採用「基於路徑的授權」策略,中括號裡指定路徑,以下列出對各使用者的授權。包括唯讀r,讀寫rw。沒有列出的使用者,則不允許訪問。還可以對使用者分組,具體請參考svn手冊,以下是簡單例子:

[/opt/svndata/repos]

user1 = rw

user2 = r

6. 使用import匯入檔案

新建好的版本庫是空的,需要匯入工作目錄。

$ svnadmin create /usr/local/svn/newrepos

$ svnimport mytree file:///usr/local/svn/newrepos/some/project

但是在匯入後,用來的目錄樹並沒有轉換成工作拷貝,為了開始工作,還是需要執行svn checkout匯出乙個工作拷貝。因為匯入後,檔案在版本庫中是以特殊的形式存在db資料夾中的,不能以明文的方式檢視。必須使用svn checkout匯出工作副本才能以正常方式檢視。

7. 啟動服務

執行svnserve –d –r /opt/svndata/repos/ 啟動服務, 以deamon方式執行。

本系統採用svnserve方式, 這是小團隊專案的推薦方法. 這種方法維護最少, 配置最簡單.

指令簡介:此指令用於啟動svn服務,-d指明以守護模式執行,svn自動在3690埠監聽。3690是預設埠,可以使用「--listen-port=」或者「--listen-host=」來指定其它埠。-r選項用來指定svn服務的根目錄,這樣使用者就可以使用相對路徑訪問,而不用提供完整路徑。

使用以下命令檢出:(svnserver方式)

svn checkout svn:

以上為示例。ip需要根據具體情況調整,dir為版本庫路徑,若在啟動時已指定則可省略。

版本庫資訊在版本庫資料夾裡,所以要刪除版本庫只需要刪除版本庫所在的資料夾即可。

另外工作副本只是自己維護的資料夾,可以用windows直接刪掉,對別人沒有影響。千萬不要使用版本庫的刪除命令,否則版本庫里的內容也會被刪除。

8,服務自動啟動指令碼

01 #檔名svnserve,存入/etc/init.d下,root許可權700

02 #!/bin/sh

03 # description: svnserve auto start-stop script.

04 # chkconfig: - 20 80

05 #

06 . /etc/init.d/functions 07

08 svn_home=/usr/local/subversion/bin

09 svn_owner=svn

10 if [ ! -f "$svn_home/svnserve" ]

11 then

12 echo "svnserver startup: cannot start"

13 exit

14 fi 15

16 start() 20

21 stop() 25

26 restart() 32

3334 # see how we were called.

35 case "$1" in

36 start)

37 start

38 ;;

39 stop)

40 stop

41 ;;

42 restart)

43 restart

44 ;;

45 esac

這個指令碼是可以正常工作的。

chkconfig --add svnserve

就可以ntsysv自由在啟動項裡進行設定了

Linux下SVN安裝配置記錄

第一章 安裝 1.採用原始檔編譯安裝。原始檔共兩個,為 subversion 1.6.1.tar.gz subversion 原始檔 subversion deps 1.6.1.tar.gz subversion依賴檔案 注意檔案版本必須一致,否則很容易產生各種奇怪的問題.2.上傳以上兩個檔案到伺服...

Linux下SVN安裝配置記錄

第一章 安裝 1.採用原始檔編譯安裝。原始檔共兩個,為 subversion 1.6.6.tar.gz subversion 原始檔 subversion deps 1.6.6.tar.gz subversion依賴檔案 注意檔案版本必須一致,否則很容易產生各種奇怪的問題.2.上傳以上兩個檔案到伺服...

Linux下SVN安裝配置記錄

第一章 安裝 1.採用原始檔編譯安裝。原始檔共兩個,為 subversion 1.6.1.tar.gz subversion 原始檔 subversion deps 1.6.1.tar.gz subversion依賴檔案 注意檔案版本必須一致,否則很容易產生各種奇怪的問題.2.上傳以上兩個檔案到伺服...