SVN服務器搭建教程


常見的源代碼管理工具

  • CVS
    • 歷史悠久,現在幾乎沒人使用
  • SVN
    • 集中式版本控制的代表
    • CVS的接班人,速度比CVS快,功能比CVS強大
    • 在國內使用率非常高(70%~90%)
  • GIT
    • 分布式源代碼管理工具
    • 目前被大多數開源項目使用
    • 不過在國內企業尚未大規模普及

源代碼管理工具出現的意義

  • 目的
    • 為了解決在軟件開發過程中,由源代碼引發的各種繁瑣的問題
  • 常見問題
    • 無法后悔:做錯了一個操作后,沒有后悔葯可以吃
    • 版本備份:費空間、費時間
    • 版本混亂:因版本備份過多造成混亂,難於找回正確的想要的版本
    • 代碼沖突:多人操作同一個文件(團隊開發中的常見問題)
    • 權限控制:無法對源代碼進行精確的權限控制
    • 追究責任:出現了嚴重的BUG,無法得知是誰干的,容易耍賴
  • 作用
    • 能追蹤一個項目從誕生一直到定案的過程
    • 記錄一個項目的所有內容變化
    • 方便地查閱特定版本的修訂情況

SVN

  • 原理
 
 
  • 使用環境
    • 要想利用SVN管理源代碼,必須得有2套環境
      • 服務器
        • 用於存儲客戶端上傳的源代碼
        • 可以在Windows上安裝Visual SVN Server
        • 大部分情況下,公司的開發人員不必親自搭建SVN服務器
      • 客戶端
        • 上傳本地的源代碼到服務器,或者更新服務器的代碼到本地,保持同步
        • 可以在Mac上使用命令行、Versions、Cornerstone、Xcode
        • 開發人員就屬於客戶端這個角色
  • SVN下載地址

安裝

  • 第一步
    • 雙擊打開VisualSVN-Server-2.7.7.msi
 
 
  • 第二步
    • 同意遵守協議
 
 
  • 第三步
    • 選擇Visual VSN 服務器和管理控制台, 和添加SVN命令行工具到系統Path路徑, 然后下一步
 
 
  • 第四步
    • 選擇版本
 
 
  • 第五步
    • 由於SVN都是在公司內網里使用,不存在數據被截取的安全問題
    • 所以為了速度更快,不要使用https
    • 取消勾選 Use secure connection(https://)
 
 
  • 第六步
    • 開始安裝
 
 
  • 第七步
    • 安裝完成后會詢問你是否需要運行
 
 
  • 第八步
    • 安裝成功打開軟件
 
 

創建代碼倉庫

  • 第一步
 
 
  • 第二步
    • 填寫代碼倉庫的名稱
 
 
  • 第三步
 
 
  • 倉庫目錄說明

    • db目錄:就是所有版本控制的數據存放文件。
    • hooks目錄:腳本文件的目錄。
    • locks目錄:用放置hook來放置Subversion文件庫鎖定數據的目錄,用來追蹤存取文件庫的客戶端。
    • format文件是一個文本文件,里面只放了一個整數,表示當前文件庫配置的版本號。
    • conf目錄:是這個倉庫的配置文件(倉庫的用戶訪問帳號、權限等)
  • 第四步

 
 

添加用戶

 
 
 
 

訪問SVN服務器

  • 本機直接訪問
 
 
 
 
  • 如果其他電腦想要訪問倉庫
    • 要把倉庫地址的前綴換成電腦的IP

對比Git

  • 適用對象不同。 Git 適用於參與開源項目的開發者。 他們由於水平高,更在乎的是效率而不是易用性。Svn 則不同, 它適合普通的公司開發團隊。使用起來更加容易。

  • 使用的場合不同。 Git 適用於通過Internet,有多個開發角色的單個項目開發, Svn 適合企業內部由項目經理統一協調的多個並行項目的開發。

  • 權限管理策略不同。 Git 沒有嚴格的權限管理控制,只要有帳號,就可以導出、導入代碼,甚至執行回退操作。 Svn 則有嚴格的權限管理, 可以按組、按個人進行針對某個子目錄的權限控制。區分讀、寫權限。更嚴格的,不支持回退操作。保證代碼永遠可以追蹤。

  • 分支( branch )的使用范圍不一樣。 Git 中, 你只能針對整個倉庫作 branch, 而且一旦刪除,便無法恢復。而 svn 中, branch 可以針對任何子目錄,它本質上是一個拷貝操作。 所以,可以建立非常多、層次性的 branch, 並且,在不需要時將其刪除,而以后需要時只要 checkout 老的 svn 版本就可以了。

  • 基於第三點, Git 適用於單純的軟件項目,典型的就是一些開源項目,比如 Linux 內核、 busybox 等。相反, Svn 擅長多項目管理。 比如,你可以在一個 svn 倉庫中存放一個手機項目的 bsp/ 設計文檔 / 文件系統/ 應用程序 / 自動化編譯腳本, 或者在一個 svn 中存放 5 款手機項目的文件系統。 git 中必須建立 n ( 項目數 )* m (組件數) 個倉庫。 Svn 中只需要最多 n 或者 m 個就可以了。

  • Git 使用 128 位 ID 作為版本號, 而且 checkout 時要注明是哪個 branch, 而 svn 使用一個遞增的序列號作為全局唯一的版本號, 更加簡明易懂。雖然可以使用 git tag 來建立一些文字化的別名,但是畢竟那只是針對特殊版本。

  • 可跟蹤性,git 的典型開發過程為: 建立分支,進行開發,提交到本地 master,刪除分支。這樣做的后果是以前 的修改 細節會丟失。 而在 svn 下做同樣的事情,不會丟失任何細節。 這里是一個有趣的鏈接,表明了 git 下典型的工作方式:(以master為核心,不斷創建新branch, 刪除舊branch):

  • 局部更新,局部還原。SVN由於是在每個文件夾建立一個.svn文件夾來實現管理,所以可以很簡單實現局部更新或者還原。假如你只希望更新某些部分,則svn可以很好實現。同時代碼寫錯了,同時可以很好實現局部還原,當然git也可以通過歷史版本還原,但是無法簡單地實現局部還原。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM