1. 程式人生 > >svn版本管理工具

svn版本管理工具

一、svn介紹

1.專案管理中的版本控制問題

通常軟體開發由多人協作開發,如果對程式碼檔案、配置檔案、文件等沒有進行版本控制,將會出現很多問題:

  • 備份多個版本,佔用磁碟空間大

  • 解決程式碼衝突困難 

  • 容易引發BUG

  • 難於追溯問題程式碼的修改人和修改時間

  • 難於恢復至以前正確版本

  • 無法進行許可權控制 

  • 專案版本釋出困難

2.什麼是版本控制

版本控制(Revision control)是維護工程藍圖的標準做法,能追蹤工程藍圖從誕生一直到定案的過程。是一種記錄若干檔案內容變化,以便將來查閱特定版本修訂情況的系統。

​​​​​​​3.svn是什麼?

SVN(Subversion)是近年來崛起的版本管理工具,在當前的開源專案裡(J2EE),幾乎95%以上的專案都用到了 SVN。Subversion 專案的初衷是為了替換當年開源社群最為流行的版本控制軟體 CVS,在 CVS的功能的基礎上有很多的提升同時也能較好的解決 CVS 系統的一些不足。

4.svn的使用方法

  

      1.複製-修改-合併方案(Subversion預設的模式)  :

          在這種模型裡,每一個客戶讀取專案配置庫建立一個私有工作副本——版本庫中檔案和目錄的本地對映。

          使用者並行工作,修改各自的工作副本,最終,各個私有的複製合併在一起,成為最終的版本,

          這種系統通常可以輔助合併操作,但是最終要靠人工去確定正誤。

       2.鎖定-修改-解鎖方案:

           在這樣的模型裡,在一個時間段裡配置庫的一個檔案只允許被一個人修改。 此模式不適合軟體開發這種工作。

5.svn伺服器的工作方式

  • 獨立伺服器方式:svnserve

  • 藉助Apache方式:mod_dav_svn

SVN版本資料儲存方式:

  • BDB (Berkeley DB)資料庫方式

  • FSFS檔案方式 (推薦)

二、svn服務端安裝配置

1.官方安裝包

官方網站:http://subversion.apache.org/

下載:http://subversion.apache.org/download.cgi

官方提供的服務端安裝包,安裝後需要通過命令列操作,適用於專業配置管理員使用。


2.圖形化服務端

志願者開發的圖形化操作介面的svn服務端,它適用於普通軟體開發人員使用

下載地址:https://www.visualsvn.com/downloads/

安裝圖形化服務端

檢視程式選單:

檢視服務,VisualSVN成功啟動:

三、建立倉庫

svn服務端建立完成需要建立倉庫,倉庫中存放要版本控制的檔案。

通過開始選單進入VisualSVN server manager:

選擇檔案儲存方式:

建立一個空的倉庫:

設定使用者訪問倉庫許可權:

倉庫建立成功:

倉庫地址為https://ip地址或計算機名/svn/倉庫名稱

四.建立工程專案

倉庫中存放開發專案程式碼、文件等,需要建立一個工程目錄。

c

建立成功

trunk:專案開發程式碼的主體,是從專案開始直到當前都處於活動的狀態,從這裡可以獲得專案最新的原始碼以及幾乎所有的變更歷史資訊。

branch:從trunk的某個點分離出來的程式碼拷貝,通常可以在不影響主幹的前提下在這裡進行重大bug的修改,或者做實驗性的開發,以及定製功能開發等。如果分支達到了預期的目的,通常可以被合併(Mgerge)到主幹中。

tag:用來表示trunk和branch的某個點的狀態,以代表專案的某個穩定狀態,通常為最終釋出狀態。

工程目錄建立完成,檢視它的svn地址:

拷貝svn地址:

五.TortoiseSVN客戶端

5.1svn客戶端型別

 

svn客戶端需要通過網路訪問svn服務端提交檔案、查詢檔案等,可通過以下客戶端型別訪問svn服務端:

1、使用Subversion提供的客戶端命令

使用方式:在命令列下輸入命令操作。

2、使用Torotise圖形化介面操作(推薦)

3、使用Eclipse等開發工具外掛操作(推薦)

 

 

5.2下載安裝

TortoiseSVN是Subversion版本控制系統的一個免費開源客戶端,不需要為使用它而付費。

TortoiseSVN是 Subversion 的 Windows 擴充套件。它使你避免接觸 Subversion 枯燥而且不方便的 Command Line。

它完全嵌入 Windows Explorer,使用時只需在正常的窗口裡右鍵操作就可以了

下載:http://tortoisesvn.net/downloads.html

提供 32位和64位不同版本,安裝tortoiseSVN 需要修改客戶端電腦右鍵選單,安裝後需要重啟電腦。

5.3瀏覽倉庫

使用Tortoise瀏覽svn服務端的倉庫的內容:

六、許可權管理

6.1認證授權機制

在企業開發中會為每位程式設計師、測試人員等相關人員分配一個賬號,使用者通過使用svn客戶端連線svn服務時需要輸入賬號和密

碼,svn服務對賬號和密碼進行校驗,輸入正確可以繼續訪問,當用戶訪問倉庫下某個目錄時,svn服務對使用者進行授權,如果用

戶擁有該目錄的訪問許可權方可訪問。

判斷賬號和密碼輸入是否正確的過程即認證過程。

判斷賬號和密碼輸入是否正確的過程即認證過程。

6.2建立使用者

6.3建立組

 

6.4分配許可權

給倉庫下的每個目錄分配許可權對訪問進行控制。

刪除預設許可權:

    刪除系統安裝後預設許可權:

   

開發人員擁有讀寫許可權

進入許可權分配介面:

分配許可權:

繼承父目錄許可權、不可訪問、讀許可權、讀/寫許可權

6.5清除認證快取

有幾種情況需要清除認證快取:

1、本地使用多個賬號登陸,每次輸入的賬號和密碼都不一樣

2、當賬號密碼修改後(建議清理)

七、TortoiseSVN日常使用

7.1瀏覽倉庫

Repo-browser : 瀏覽倉庫中資源資訊

7.2匯入匯出

Export :匯出專案 ,和checkout區別 (checkout檢出後文件,含有.svn隱藏資料夾, 會和SVN倉庫互動, export匯出,沒有.svn隱藏資料夾)

7.3修改提交

7.4checkout

檢出專案,複製專案的副本到本地。

在要檢出的目錄中右鍵:

7.5add

在檢出的目錄中新增檔案:

Add to ignore list :新增到忽略列表 (標記該檔案不需要版本控制 )

7.6 commit

當檢出目錄或子目錄中內容有修改,目錄圖示變為:

提交Commit 提交本地修改至svn伺服器:

在檢出目錄或要提交修改的目錄右鍵:

7.7update

更新倉庫的檔案到本地

7.8更新到最新版本

7.9更新到指定版本

 

7.10 delete

 

7.11 恢復

 

7.12衝突處理