SVN 的訪問方式



訪問方式

Subversion 文件倉庫可以通過許多不同的方式進行訪問(Check Out,簽出)——通過本地硬盤,或者通過各種網絡協議。無論如何,文件倉庫的位置總是使用 URL 來表示。下表顯示了不同的 URL 模式對應的訪問方法:

模式

訪問方法

file:///

直接訪問本地硬盤上文件倉庫

http://

通過 WebDAV 協議訪問支持 Subversion 的 Apache 2 Web 服務器

https://

類似 http://,支持 SSL 加密

svn://

通過自帶協議訪問 svnserve 服務器

svn+ssh://

類似 svn://,支持通過 SSH 通道

本節中,我們將看到如何配置 SVN 以使之能夠通過所有的方法得以訪問。當然這裏我們之討論基本的方法。要了解更高級的用途,我們推薦您閱讀《使用 Subversion 進行版本控制》在線電子書。

6.1. 直接訪問文件倉庫(file://)

這是所有訪問方式中最簡單的。它不需要事先運行任何 SVN 服務。這種訪問方式用於訪問本地的 SVN 文件倉庫。語法是:

$ svn co file:///home/svn/myproject

或者

$ svn co file://localhost/home/svn/myproject

注意:如果您並不確定主機的名稱,您必須使用三個斜槓(///),而如果您指定了主機的名 稱,則您必須使用兩個斜槓(//).

對文件倉庫的訪問權限基於文件系統的權限。如果該用戶具有讀/寫權限,那麼他/她就可以簽出 /提交修改。如果您像前面我們說描述的那樣設置了相應的組,您可以簡單的將一個用戶添加到“subversion”組中以使其具有簽出和提交的權限。

6.2. 通過 WebDAV 協議訪問(http://)

要通過 WebDAV 協議訪問 SVN 文件倉庫,您必須配置您的 Apache 2 Web 服務器。您必須加入下面的代碼片段到您的 /etc/apach2/apache2.conf 中:

 

DAV svn

SVNPath /home/svn/myproject

AuthType Basic

AuthName "myproject subversion repository"

AuthUserFile /etc/subversion/passwd

 

Require valid-user

 

 

當您添加了上面的內容,您必須重新起動 Apache 2 Web 服務器,請輸入下面的命令:

sudo /etc/init.d/apache2 restart

接下來,您需要創建 /etc/subversion/passwd 文件,該文件包含了用戶授權的詳細信息。要添加用戶,您可以執行下面的命令:

sudo htpasswd2 /etc/subversion/passwd user_name

它會提示您輸入密碼,當您輸入了密碼,該用戶就建立了。您可以通過下面的命令來訪問文件倉 庫:

$ svn co http://hostname/svn/myproject myproject --username user_name

它會提示您輸入密碼。您必須輸入您使用 htpasswd2 設置的密碼。當通過驗證,項目的文件就被簽出了。

警告:密碼是通過純文本傳輸的。如果您擔心密碼泄漏的問題,我們建議您使用 SSL 加密,有關詳情請看下一節。

6.3. 通過具有安全套接字(SSL)的 WebDAV 協議訪問(https://)

通過具有 SSL 加密的 WebDAV 協議訪問 SVN 文件倉庫(https://)非常類似上節所述的內容,除了您必須爲您的 Apache 2 Web 服務器設置數字證書之外。

您可以安裝由諸如 Verisign 發放的數字簽名,或者您可以安裝您自己的數字簽名。

我們假設您已經爲 Apache 2 Web 服務器安裝和配置好了相應的數字證書。現在按照上一節所描述的方法訪問 SVN 文件倉庫,別忘了把 http:// 換成 https://。如何,幾乎是一模一樣的!

6.4. 通過自帶協議訪問(svn://)

當您創建了 SVN 文件倉庫,您可以修改 /home/svn/myproject/conf/svnserve.conf 來配置其訪問控制。

例如,您可以取消下面的註釋符號來設置授權機制:

# [general]

# password-db = passwd

現在,您可以在“passwd”文件中維護用戶清單。編輯同一目錄下“passwd”文件, 添加新用戶。語法如下:

username = password

要了解詳情,請參考該文件。

現在,您可以在本地或者遠程通過 svn:// 當文 SVN 了,您可以使用“svnserve”來運行 svnserver,語法如下:

$ svnserve -d --foreground -r /home/svn

# -d -- daemon mode

# --foreground -- run in foreground (useful for debugging)

# -r -- root of directory to serve

要了解更多信息,請輸入:

$ svnserve --help

當您執行了該命令,SVN 就開始監聽默認的端口(3690)。您可以通過下面的命令來訪問文件倉庫:

$ svn co svn://hostname/myproject myproject --username user_name

基於服務器的配置,它會要求輸入密碼。一旦通過驗證,就會簽出文件倉庫中的代碼。

要同步文件倉庫和本地的副本,您可以執行 update 子命令,語法如下:

$ cd project_dir

$ svn update

要了解更多的 SVN 子命令,您可以參考手冊。例如要了解 co (checkout) 命令,請執行:

$ svn co help

6.5. 通過具有安全套接字(SSL)的自帶協議訪問(svn+ssh://)

配置和服務器進程於上節所述相同。我們假設您已經運行了“svnserve”命令。

我們還假設您運行了 ssh 服務並允許接入。要驗證這一點,請嘗試使用 ssh 登錄計算機。如果您可以登錄,那麼大功告成,如果不能,請在執行下面的步驟前解決它。

svn+ssh:// 協議使用 SSL 加密來訪問 SVN 文件倉庫。如您所知,數據傳輸是加密的。要訪問這樣的文件倉庫,請輸入:

$ svn co svn+ssh://hostname/home/svn/myproject myproject --username user_name

注意:在這種方式下,您必須使用完整的路徑(/home/svn/myproject)來訪 問 SVN 文件倉庫

基於服務器的配置,它會要求輸入密碼。您必須輸入您用於登錄 ssh 的密碼,一旦通過驗證,就會簽出文件倉庫中的代碼。

您還應該參考 SVN book 以瞭解關於 svn+ssh:// 協議的詳細信息。

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