SVN-WINDOWS 伺服器架設和管理

來源:互聯網
上載者:User

 

1.  軟體準備

Window-Subvsersion : http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91

Windows 常用用戶端 TortoiseSVN : http://tortoisesvn.net/downloads

 

請下載 subversion 伺服器軟體和用戶端,並預設安裝(可以重新啟動作業系統,以更新表徵圖顯示)。

2.    組態管理 2.1. 建立倉庫 (svnadmin)

在硬碟上建立個空目錄,作為 SVN 的倉庫目錄。如: E:\subversion\repository 。下面使用兩種方式建立倉庫的初時檔案結構和儲存方式。命令方式和 TortoiseSVN 用戶端方式,後面所有文檔都採用兩種方式說明,其功能完全相同。請根據實際情況選擇使用。

 

命令方式( DOS 下):

# 預設,採用 FSFS 方式儲存資料,這是推薦方式,管理和遷移相對 bdb 方式簡單

svnadmin create E:\subversion\repository

svnadmin create –fs-type bdb E:\subversion\repository

 

TortoiseSVN 用戶端

 

注意在最新版本的 SVN1.4 ,採用本方式有相容性問題,該用戶端現在好想只支援 1.3 版本的 SVN 建立倉庫

 

1.         使用 window exporer 或我的電腦,定位到 E:\subversion\repository ,並確保本目錄為空白。

2.         在本目錄下,右鍵菜單中選擇“ TortoiseSVN ”- > “ Create repository here… ”

3.         在彈出的視窗中選擇資料存在檔案系統方式,使用預設選取 (FSFS) ,點擊確定。

4.         檢查本目錄下是否有生產的系統檔案和檔案夾,如果有,成功!

2.2. 佈建服務

進入倉庫目錄下的 conf 檔案夾。也就是 E:\subversion\repository\conf

裡面有 3 個預設的設定檔: authz , passwd , svnserve.conf

svnserve.conf 控制 svnserve 的啟動配置選項,可以配置認證和授權方式,典型的配置是設定由 authz 控制授權, passwd 控制認證的方式來控制存取權限。也可以使用匿名方式,但不推薦。

 

使用 authz 和 passwd 的典型配置:

 

請特別注意:以下三個設定檔的配置,每行有效配置前不能有空格,不然配置會失敗。

 

服務組態檔 svnserve.conf

……

### 匿名方式不允許訪問

anon-access = none

……

### Uncomment the line below to use the default password file.

### 表示訪問倉庫的認證有檔案 passwd 提供的賬戶確定

password-db = passwd

……

### Uncomment the line below to use the default authorization file.

### 表示認證後的賬戶存取權限由檔案 authz 定義

authz-db = authz

### This option specifies the authentication realm of the repository.

……

 

認證設定檔 passwd  

passwd 檔案實際提供訪問本倉庫的賬戶管理,檔案格式就是 ini 方式的格式
[users]
harry = harryssecret

sally = sallyssecret

user=usersecret

 

這表示本倉庫配置了二個使用者及:其中一個使用者 harry, 他的訪問密碼是 harryssecret 。訪問密碼可以使用明文,也可以使用 htpasswd.exe ( apache 伺服器提供的工具方法,安裝 apache 伺服器後,在其 bin 目錄中有該程式檔案)進行加密處理。

 

授權設定檔 authz

該檔案負責認證後的使用者的許可權控制,配置稍微複雜,但其實也就是個 ini 設定檔而已。

典型配置:

# groups 段提供配置組的功能 , 但群組成員必須是 passwd 檔案中定義的使用者才有效。可以對組

# 進行許可權控制,所有群組成員具有組對應的存取權限。

[groups]

# 表示定義了一個管理組叫 admin_group, 包括 harry 和 sally , admin_group 前千萬不能有空格

admin_group= harry, sally  

# 下面就是定義具體倉庫下目錄的存取權限  

# 一般對管理員來說都具有整個倉庫的讀寫權限,一般人員對整個敞開具有讀取許可權,下面

# 就是這樣的配置 ,[/] 表示整個倉庫的根,組的引用使用 @ ,對應的許可權可以是 r,w,rw 或空

[/]

@admin_group = rw

* = r  

 

以上的配置完成後,我嗎就可以啟動伺服器了,下面說明伺服器的啟動。

注意,以上 authz 和 passwd 檔案在管理中因為具體項目的加入和人員的變動會經常的修改,這也是 SVN 管理主要的工作

2.3. 啟動服務 (svnserve) 

Svn 伺服器一般有三種方式, svnserve , apache 和 SSH 。其中常用的有 svnserve 和 apache 方式。本文只以 svnserve 方式講解。總的來說 svnserve 是最高效的方式,一般應用於內部開發網中使用。 Apache 方式因為可以很好的部署在 internet 上,所以公網使用最方便,但配置稍微相對複雜點點,呵呵~~。三種方式具體的優缺點,請參考本文後面的參考文檔。  

命令方式( DOS 下):  

svnserve –d –r E:\subversion\repository

-d 參數是以獨立服務的方式啟動

-r 是制訂要載入的倉庫的實體路徑

 

Windows 系統服務

在 subversion1.4 後的版本,提供了安裝為服務的支援

可以參考本文安裝: 

SC create svn1.4 binPath= "\"C:\Program Files\Subversion\bin\svnserve.exe"" --service --root \"E:\subversion\repository\"" depend= Tcpip start= auto  

sc create svnservice binpath= "D:\Subversion\bin\svnserve.exe --service -r E:\subversion\repository" displayname= "svnservice" depend= Tcpip start= auto
pause

1.         紅色部分: SVN 的安裝目錄

2.         藍色部分:倉庫根目錄

3.         每個參數的格式是:參數名稱 = 值。參數名稱和 = 間沒有空格, = 後必須有空格, SC 的變態特性,完全的 BUG.. 注意就可以

4.         本命令方式只能用於 svn1.4 以上版本

5.         刪除服務: sc delete svn1.4

2.4. 添加項目 (import)

上面的安裝配置工作完成後,啟動服務,現在進入使用的主題,首先一步是把需要進行版本管控的項目加入到倉庫中。在作這個工作前,需要先接受下, SVN 推薦項目路徑結構。一般推薦是使用一個 trunk 儲存項目主幹最新版本, breaches 儲存以後的多個分支, tags 一般儲存發布或階段性發布的標籤版本。如下  

Project1/trunk

Project1/breaches

Project1/tags  

下面使用該目錄結構,加入一個測試的項目 project1 來示範添加項目的過程。  

在任意目錄建立檔案夾 test ,然後在 test 下建立上面推薦項目目錄結構。如下  

test/project1/trunk

test/project1/breaches

test/project1/tags  

命令方式:

DOS 下定位到 test 的上級目錄

svn import test svn://localhost -m "init project1" --username harry --password harryssecret  

cd c:\Documents and Settings\ike_li
svn import d:\test svn://localhost -m "init project1" --username admin --password 123
pause

新增            test"project1

新增            test"project1"trunk

新增            test"project1"readme.txt

新增            test"project1"breaches

新增            test"project1"tags

提交後的修訂版為 1 。

 

TortoiseSVN 用戶端  

1.       右鍵點擊 test 目錄,選擇“ TortoiseSVN ”- > “ Import ”

2.       在彈出的操作介面中 URL repository 中輸入伺服器位址 svn://localhost

3.       在彈出的操作介面中 Import message 下面的文本域輸入 init project1

4.       點擊 OK

5.       如果第一次使用,會彈出輸入賬戶的介面,輸入對應的使用者賬戶,選擇儲存,下次使用就不用在輸入賬戶認證資訊了。 

查看是否添加成功:  

1.         使用 window exporer 或我的電腦,定位到 E:\subversion\repository ,並確保本目錄為空白。

2.         在本目錄下,右鍵菜單中選擇“ TortoiseSVN ”- > “ Repo-browser ”

3.         在彈出的輸入框中輸入 SVN 伺服器位址 svn://localhost

4.         在 Repository Browser 視窗中,你可以點擊樹形結構的倉庫目錄,查看是否存在你剛才添加的 project1

5.         如果你的使用者有足夠的許可權,你可以在本介面的樹目錄上使用右鍵管理你的倉庫和項目。 

2.5. 工作複本 (checkout)

工程加入到倉庫後,下面就可以進入實際的研發使用了,首先是要建立個本地的工作複本,使用 checkout 。 

1.       在任意開發機上建立工作目錄。如: D:\workspace\project1

2.       進入具體項目的工作目錄,右鍵菜單中選擇“ SVN Checkout ”

3.       在 checkout 視窗中:

URL of Repository 是你具體的項目的主幹倉庫訪問地址

如: svn://localhost/project1/trunk

Checkout directory 是你本機複本的地址

如: D:\workspace\project1

其它的使用預設選項,如需要瞭解具體含義,請查看參考文檔

4.       點擊 OK  

2.6. 常用開發操作

以下主要都是在工作複本的開發中的常用操作。

2.6.1. 更新和同步

其它開發人員或在其它工作複本上提交到倉庫的最新版本檔案,需要更新到你自己的工作複本的操作。使用更新使你的工作複本於伺服器倉庫代碼同步。如果你更新的檔案中本機複本和伺服器倉庫中的檔案都是在同一版本上,本機複本作了修改檔案操作後, SVN 沒有辦法更新,因為它不知道是否該放棄本地的修改,它預設會操作合并的方式,但往往很多時候有些檔案是不能簡單的自動合并的,所有最好的辦法是以倉庫的版本為準進行更新,這就是同步操作。  

下面主要說明使用用戶端工具 TortoiseSVN 的操作方式,其它用戶端工具和命令方式類似。  

1.         在需要更新或同步檔案上或檔案夾內右鍵點擊,選擇 SVN update 命令

2.         如果需要同步某個檔案或檔案夾,需要先刪除本地版本,然後在使用 SVN update  

2.6.2. 添加和提交

。。。

3.      參考文檔

1.         Svn 安裝後的官方文檔

2.         SVN 中文官方網站: http://www.subversion.org.cn/

3.         中文文檔: http://www.subversion.org.cn/svnbook/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.