jasmine214--love

          只有當(dāng)你的內(nèi)心總是充滿快樂、美好的愿望和寧?kù)o時(shí),你才能擁有強(qiáng)壯的體魄和明朗、快樂或者寧?kù)o的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          1. 簡(jiǎn)介

          如果您對(duì) Subversion 還比較陌生,本節(jié)將給您一個(gè)關(guān)于 Subversion 的簡(jiǎn)要介紹。

          Subversion 是一款開放源代碼的版本控制系統(tǒng)。使用 Subversion,您可以重新加載源代碼和文檔的歷史版本。Subversion 管理了源代碼在各個(gè)時(shí)期的版本。一個(gè)文件樹被集中放置在文件倉(cāng)庫(kù)中。這個(gè)文件倉(cāng)庫(kù)很像是一個(gè)傳統(tǒng)的文件服務(wù)器,只不過它能夠記住文件和目錄的每一次變化。

          2. 假設(shè)

          首先我們假設(shè)您能夠在 Ubuntu 中操作 Linux 的命令、編輯文件、啟動(dòng)和停止服務(wù)。當(dāng)然,我們還認(rèn)為您的 Ubuntu 正在運(yùn)行中,您可以使用 sudo 操作并且您打算使用 Subversion。

          我們假設(shè)您可能需要使用所有可能的方法訪問 SVN 文件倉(cāng)庫(kù)。同時(shí)我們也認(rèn)為您應(yīng)該已經(jīng)配置好了您的 /etc/apt/sources.list 文件。

          3. 本文涉及的范圍

          要通過 HTTP 協(xié)議訪問 SVN 文件倉(cāng)庫(kù),您需要安裝并配置好 Web 服務(wù)器。Apache 2 被證實(shí)可以很好的與 SVN 一起工作。關(guān)于 Apache 2 的安裝超出了本文的范圍,盡管如此,本文還是會(huì)涉及如何配置 Apache 2 使用 SVN。

          類似的,要通過 HTTPS 協(xié)議訪問 SVN 文件倉(cāng)庫(kù),您需要在您的 Apache 2 中安裝并配置好數(shù)字證書,這也不在本文的討論范圍之中。

          4. 安裝

          幸運(yùn)的,Subversion 已經(jīng)包含在 main 倉(cāng)庫(kù)中。所以,要安裝 Subversion,您只需要簡(jiǎn)單的運(yùn)行:

          $ sudo apt-get install subversion

          $ sudo apt-get install libapache2-svn

          如果系統(tǒng)報(bào)告了依賴關(guān)系的錯(cuò)誤,請(qǐng)找出相應(yīng)的軟件包并安裝它們。如果存在其它問題,也請(qǐng)自行解決。如果您是再不能解決這些問題,可以考慮通過 Ubuntu 的網(wǎng)站、Wiki、論壇或郵件列表尋求支持。

          5. 服務(wù)器配置

          您應(yīng)該已經(jīng)安裝了上述的軟件包。本節(jié)將闡述如何創(chuàng)建 SVN 文件倉(cāng)庫(kù)以及如何設(shè)置項(xiàng)目的訪問權(quán)限。

          5.1. 創(chuàng)建 SVN 倉(cāng)庫(kù)

          許多位置都可以放置 Subversion 文件倉(cāng)庫(kù),其中兩個(gè)最常用的是:/usr/local/svn 以及 /home/svn。為了在下面的描述中簡(jiǎn)單明了,我們假設(shè)您的 Subversion 文件倉(cāng)庫(kù)放在 /home/svn,并且你的項(xiàng)目名稱是簡(jiǎn)單的“myproject”。

          同樣的,也有許多常用的方式設(shè)置文件倉(cāng)庫(kù)的訪問權(quán)限。然而,這也是安裝過程中最經(jīng)常出現(xiàn)錯(cuò)誤 的地方,因此我們會(huì)對(duì)此進(jìn)行一個(gè)詳細(xì)說明。典型的情況下,您應(yīng)該創(chuàng)建一個(gè)名為“Subversion”的組來?yè)碛形募}(cāng)庫(kù)所在的目錄。下面是一個(gè)快速的操 作說明,有關(guān)內(nèi)容請(qǐng)參考相關(guān)文檔的詳細(xì)說明:

          在 Ubuntu 菜單上選擇“系統(tǒng)->系統(tǒng)管理->用戶和組”;

          切換到“組”標(biāo)簽;

          點(diǎn)擊“添加組”按鈕;

          組名為“subversion”;

          將您自己和“www-data”(Apache 用戶)加入組成員中;

          點(diǎn)擊“OK”以確認(rèn)修改,關(guān)閉該程序。

          您需要注銷然后再登錄以便您能夠成為 subversion 組的一員,然后就可以執(zhí)行簽入文件(Check in,也稱提交文件)的操作了。

          現(xiàn)在執(zhí)行下面的命令

          $ sudo mkdir /home/svn

          $ cd /home/svn

          $ sudo mkdir myproject

          $ sudo chown -R root:subversion myproject

          $ sudo chmod -R g+rws myproject

          最后的一條命令賦予組成員對(duì)所有新加入文件倉(cāng)庫(kù)的文件擁有相應(yīng)的權(quán)限。

          下面的命令用于創(chuàng)建 SVN 文件倉(cāng)庫(kù):

          $ sudo svnadmin create /home/svn/myproject

          6. 訪問方式

          Subversion 文件倉(cāng)庫(kù)可以通過許多不同的方式進(jìn)行訪問(Check Out,簽出)——通過本地硬盤,或者通過各種網(wǎng)絡(luò)協(xié)議。無論如何,文件倉(cāng)庫(kù)的位置總是使用 URL 來表示。下表顯示了不同的 URL 模式對(duì)應(yīng)的訪問方法:

          模式

          訪問方法

          file:///

          直接訪問本地硬盤上文件倉(cāng)庫(kù)

          http://

          通過 WebDAV 協(xié)議訪問支持 Subversion 的 Apache 2 Web 服務(wù)器

          https://

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

          svn://

          通過自帶協(xié)議訪問 svnserve 服務(wù)器

          svn+ssh://

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

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

          6.1. 直接訪問文件倉(cāng)庫(kù)(file://)

          這是所有訪問方式中最簡(jiǎn)單的。它不需要事先運(yùn)行任何 SVN 服務(wù)。這種訪問方式用于訪問本地的 SVN 文件倉(cāng)庫(kù)。語(yǔ)法是:

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

          或者

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

          注意:如果您并不確定主機(jī)的名稱,您必須使用三個(gè)斜杠(///),而如果您指定了主機(jī)的名稱,則您必須使用兩個(gè)斜杠(//).

          對(duì)文件倉(cāng)庫(kù)的訪問權(quán)限基于文件系統(tǒng)的權(quán)限。如果該用戶具有讀/寫權(quán)限,那么他/她就可以簽出/提交修改。如果您像前面我們說描述的那樣設(shè)置了相應(yīng)的組,您可以簡(jiǎn)單的將一個(gè)用戶添加到“subversion”組中以使其具有簽出和提交的權(quán)限。

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

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

          DAV svn

          SVNPath /home/svn/myproject

          AuthType Basic

          AuthName "myproject subversion repository"

          AuthUserFile /etc/subversion/passwd

          Require valid-user

           

           

          當(dāng)您添加了上面的內(nèi)容,您必須重新起動(dòng) Apache 2 Web 服務(wù)器,請(qǐng)輸入下面的命令:

          sudo /etc/init.d/apache2 restart

          接下來,您需要?jiǎng)?chuàng)建 /etc/subversion/passwd 文件,該文件包含了用戶授權(quán)的詳細(xì)信息。要添加用戶,您可以執(zhí)行下面的命令:

          sudo htpasswd2 /etc/subversion/passwd user_name

          它會(huì)提示您輸入密碼,當(dāng)您輸入了密碼,該用戶就建立了。您可以通過下面的命令來訪問文件倉(cāng)庫(kù):

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

          它會(huì)提示您輸入密碼。您必須輸入您使用 htpasswd2 設(shè)置的密碼。當(dāng)通過驗(yàn)證,項(xiàng)目的文件就被簽出了。

          警告:密碼是通過純文本傳輸?shù)摹H绻鷵?dān)心密碼泄漏的問題,我們建議您使用 SSL 加密,有關(guān)詳情請(qǐng)看下一節(jié)。

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

          通過具有 SSL 加密的 WebDAV 協(xié)議訪問 SVN 文件倉(cāng)庫(kù)(https://)非常類似上節(jié)所述的內(nèi)容,除了您必須為您的 Apache 2 Web 服務(wù)器設(shè)置數(shù)字證書之外。

          您可以安裝由諸如 Verisign 發(fā)放的數(shù)字簽名,或者您可以安裝您自己的數(shù)字簽名。

          我們假設(shè)您已經(jīng)為 Apache 2 Web 服務(wù)器安裝和配置好了相應(yīng)的數(shù)字證書。現(xiàn)在按照上一節(jié)所描述的方法訪問 SVN 文件倉(cāng)庫(kù),別忘了把 http:// 換成 https://。如何,幾乎是一模一樣的!

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

          當(dāng)您創(chuàng)建了 SVN 文件倉(cāng)庫(kù),您可以修改 /home/svn/myproject/conf/svnserve.conf 來配置其訪問控制。

          例如,您可以取消下面的注釋符號(hào)來設(shè)置授權(quán)機(jī)制:

          # [general]

          # password-db = passwd

          現(xiàn)在,您可以在“passwd”文件中維護(hù)用戶清單。編輯同一目錄下“passwd”文件,添加新用戶。語(yǔ)法如下:

          username = password

          要了解詳情,請(qǐng)參考該文件。

          現(xiàn)在,您可以在本地或者遠(yuǎn)程通過 svn:// 當(dāng)文 SVN 了,您可以使用“svnserve”來運(yùn)行 svnserver,語(yǔ)法如下:

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

          # -d -- daemon mode

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

          # -r -- root of directory to serve

          要了解更多信息,請(qǐng)輸入:

          $ svnserve --help

          當(dāng)您執(zhí)行了該命令,SVN 就開始監(jiān)聽默認(rèn)的端口(3690)。您可以通過下面的命令來訪問文件倉(cāng)庫(kù):

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

          基于服務(wù)器的配置,它會(huì)要求輸入密碼。一旦通過驗(yàn)證,就會(huì)簽出文件倉(cāng)庫(kù)中的代碼。

          要同步文件倉(cāng)庫(kù)和本地的副本,您可以執(zhí)行 update 子命令,語(yǔ)法如下:

          $ cd project_dir

          $ svn update

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

          $ svn co help

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

          配置和服務(wù)器進(jìn)程于上節(jié)所述相同。我們假設(shè)您已經(jīng)運(yùn)行了“svnserve”命令。

          我們還假設(shè)您運(yùn)行了 ssh 服務(wù)并允許接入。要驗(yàn)證這一點(diǎn),請(qǐng)嘗試使用 ssh 登錄計(jì)算機(jī)。如果您可以登錄,那么大功告成,如果不能,請(qǐng)?jiān)趫?zhí)行下面的步驟前解決它。

          svn+ssh:// 協(xié)議使用 SSL 加密來訪問 SVN 文件倉(cāng)庫(kù)。如您所知,數(shù)據(jù)傳輸是加密的。要訪問這樣的文件倉(cāng)庫(kù),請(qǐng)輸入:

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

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

          基于服務(wù)器的配置,它會(huì)要求輸入密碼。您必須輸入您用于登錄 ssh 的密碼,一旦通過驗(yàn)證,就會(huì)簽出文件倉(cāng)庫(kù)中的代碼。

          您還應(yīng)該參考 SVN book 以了解關(guān)于 svn+ssh:// 協(xié)議的詳細(xì)信息。

          7. 參考資料

          Setting up Apache on Ubuntu

          SVN Home page

          SVN Book

          Apache 2 Documentation

          Mod-SSL

          Apache-SSL SvYLinux聯(lián)盟

          http://www.neatstudio.com/show-570-1.shtml
          主站蜘蛛池模板: 莲花县| 正蓝旗| 禄劝| 宁都县| 台州市| 姚安县| 沛县| 桐乡市| 山东省| 新乡县| 武城县| 文化| 苗栗市| 和林格尔县| 永德县| 合川市| 盐山县| 西青区| 麦盖提县| 水富县| 厦门市| 游戏| 阳东县| 弋阳县| 吉木乃县| 广南县| 甘南县| 道孚县| 万年县| 宁南县| 元氏县| 虹口区| 洛隆县| 河北区| 慈溪市| 尉氏县| 安顺市| 芦山县| 巫溪县| 新田县| 桃源县|