知識中心

搭建和使用SVN-阿裏雲ECS

2018-12-08 22:10:33 mimukeji

搭建和使用SVN-阿裏雲ECS




Subversion(SVN) 是一個開源的版本控制系統, 也就是說 Subversion 管理著隨時間改變的數據。

這些數據放置在一個中央資料檔案庫(repository) 中。這個檔案庫很像一個普通的文件服務器, 不過它會記住每一次文件的變動。這樣您就可以把檔案恢複到舊的版本, 或是瀏覽文件的變動曆史。

SVN 的一些概念

  • repository(源代碼庫):源代碼統一存放的地方
  • Checkout(提取):當您手上沒有源代碼時,您需要從repository checkout一份源代碼
  • Commit(提交):如果您已經修改了代碼,您需要Commit到repository
  • Update(更新):當您已經Checkout了一份源代碼,Update一下,您就可以與Repository上的源代碼同步,您手上的代碼就會有最新的變更

日常開發過程其實就是這樣的(假設您已經Checkout並且已經工作了幾天):Update(獲得最新的代碼)—> 作出自己的修改並調試成功 —> Commit(大家就可以看到您的修改了)。

如果您與同事同時修改了同一個文件,SVN可以合並你們的改動,實際上SVN管理源代碼是以行為單位的,就是說你們只要不是修改了同一行程序,SVN都會自動合並兩種修改。如果是同一行,SVN會提示文件Confict(沖突),需要手動確認。

安裝SVN

您可以采用以下任一種方法安裝SVN。

使用SVN版本控制鏡像

您可以在雲市場購買使用 SVN版本控制鏡像 的ECS實例。

創建了實例後,按以下步驟操作:

  1. 登錄 ECS管理控制台
  2. 在左側導航欄裏,單擊 實例
  3. 選擇地域。
  4. 找到新創建的ECS實例,在 IP地址 列獲取實例的公網IP地址。
手動安裝SVN

本文以CentOS 7.2 64位系統為例,說明如何在CentOS 7.2上安裝SVN。

  1. 遠程連接Linux實例
  2. 運行以下命令安裝SVN。
    yum install subversion
  3. 運行以下命令查看SVN版本。
    svnserve --version

    阿裏雲使用小妙招
  4. 按以下步驟創建版本庫:
    1. 運行以下命令創建目錄。
      mkdir /var/svn
    2. 依次運行以下命令創建版本庫。
      cd /var/svn svnadmin create /var/svn/svnrepos
    3. 依次運行以下命令查看自動生成的版本庫文件。
      cd svnrepos ls

      阿裏雲使用小妙招

      Subversion目錄說明:

      • db目錄:所有版本控制的數據存放文件。
      • hooks目錄:放置hook腳本文件的目錄。
      • locks目錄:用來追蹤存取文件庫的客戶端。
      • format文件:是一個文本文件,裏面只放了一個整數,表示當前文件庫配置的版本號。
      • conf目錄:是這個倉庫的配置文件(倉庫的用戶訪問賬號、權限等)。
    4. 運行命令 cd conf/ 進入conf目錄(該SVN版本庫配置文件)。返回結果如下:
      • authz:是權限控制文件。
      • passwd:是賬號密碼文件。
      • svnserve.conf:SVN服務配置文件。
    5. 按以下步驟設置賬號密碼:
      1. 運行 vi passwd
      2. i 鍵進入編輯模式。
      3. [users] 塊中添加用戶賬號和密碼,格式:賬號=密碼,比如示例中的suzhan = redhat(注意等號兩端要有一個空格)。
      4. Esc 鍵退出編輯模式,並輸入 :wq 保存並退出。
        阿裏雲使用小妙招
    6. 按以下步驟設置權限:
      1. 運行 vi authz
      2. i 鍵進入編輯模式。
      3. 在末尾添加如下代碼(其中,r表示讀,w表示寫):
        [/] suzhan=rw
      4. Esc 鍵退出編輯模式,並輸入 :wq 保存並退出。
        阿裏雲使用小妙招
    7. 按以下步驟修改svnserve.conf文件。
      1. 運行命令 vi svnserve.conf
      2. i 鍵進入編輯模式。
      3. 打開以下幾個注釋(注意每行不能以空格開始,等號兩端要有一個空格):
        anon-access = read #匿名用戶可讀,您也可以設置 anon-access = none,不允許匿名用戶訪問。設置為 none,可以使日志日期正常顯示 auth-access = write #授權用戶可寫 password-db = passwd #使用哪個文件作為賬號文件 authz-db = authz #使用哪個文件作為權限文件 realm = /var/svn/svnrepos #認證空間名,版本庫所在目錄
      4. Esc 鍵退出編輯模式,並輸入 :wq 保存並退出。
        阿裏雲使用小妙招
    8. 運行以下命令啟動SVN版本庫。
      svnserve -d -r /var/svn/svnrepos
    9. 運行命令 ps -ef |grep svn 查看SVN服務是否開啟。

      如果返回結果如下圖所示,表示SVN服務已經開啟。


      阿裏雲使用小妙招
說明 運行以下命令停止SVN命令。
killall svnserve

添加安全組規則

SVN服務的默認端口為TCP 3690。您需要登錄 ECS管理控制台添加安全組規則 放行TCP 3690端口。

在Windows上測試

這部分說明如何從本地(Windows操作系統)訪問ECS實例上安裝的SVN服務。

  1. 在本地機器上安裝 TortoiseSVN客戶端
  2. 在您的本地項目文件夾(如示例中的C:KDR),右鍵空白處彈出菜單,選擇 SVN檢出
    阿裏雲使用小妙招
  3. 指定資源庫URL,格式為 svn://實例公網IP地址/資源庫名;指定 檢出至目錄(如本示例中的C:KDR);再單擊 確定
    阿裏雲使用小妙招

    如果出現以圖所示信息,表示檢出成功。


    阿裏雲使用小妙招
說明 第一次登錄需要輸入密碼,一切以passwd文件裏面的賬戶密碼為主。

修改並提交項目

將項目下載到本地機器後,您可以在添加文件、修改文件、刪除文件等。

提交修改

按以下步驟提交修改:

  1. 在項目文件空白處單擊右鍵,選擇 SVN提交
    阿裏雲使用小妙招
  2. 輸入本次提交的版本更新信息(所作修改的注釋)、勾選要提交的操作內容,單擊 確定,即可把本機項目提交到SVN服務器資源庫,覆蓋掉資源庫項目從而實現更新。
    說明
    • 如果發生提交沖突,即兩人都提交修改,後提交者由於版本落後會提交失敗。這時可以先備份自己的項目,從服務端下載最新的項目後,再將自己的項目覆蓋到本地項目文件夾,最後SVN提交即可成功提交。
    • 假設您剛剛刪掉了一個文件,這裏就會顯示如下截圖所示信息。
      阿裏雲使用小妙招
獲取更新

如果別人修改了SVN服務端資源庫上的項目,您想下載最新的項目,則在本機項目文件空白處單擊右鍵,選擇 SVN更新,即可自動完成下載,並會提示所作的更新有哪些。

說明 在原項目文件夾內選擇SVN更新,會自動覆蓋原有內容。我們建議您先備份,再更新,防止自己本來的項目內容丟失。
SVN還原
  1. 打開一個文件夾,右鍵檢出數據。
  2. 刪掉數據。
  3. 根據您是否已經提交修改采取不同的操作:
    • 未提交時,右鍵單擊空白處,選擇 TortoiseSVN > SVN 還原
    • 已提交時,系統庫裏的數據也會得到同步,系統也會把它存的數據刪掉。此時,您需要采取以下方法還原數據:
      1. 查看日志,確認刪除了哪些文件。
        阿裏雲使用小妙招
      2. 將刪掉的文件保存版本到刪掉的位置。
        阿裏雲使用小妙招
  4. 打開原文件夾,選擇 SVN提交,系統庫裏的數據就和這個文件同步了。




如果您遇到問題,請隨時聯系米姆,我們將免費為您提供阿裏雲基礎服務。


本文轉載自網絡,如有侵權,請聯系我們刪除。