Svn項目管理工具


1       svn介紹

1.1     項目管理中的版本控制問題

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

  • 備份多個版本,占用磁盤空間大
  • 解決代碼沖突困難
  • 容易引發BUG
  • 難於追溯問題代碼的修改人和修改時間
  • 難於恢復至以前正確版本
  • 無法進行權限控制
  • 項目版本發布困難

1.2     什么是版本控制

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

1.3     svn是什么?

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

1.4     svn的使用方法

svn是基於客戶/服務器模式:

 

 復制-修改-合並方案(Subversion默認的模式):

在這種模型里,每一個客戶讀取項目配置庫建立一個私有工作副本——版本庫中文件和目錄的本地映射。用戶並行工作,修改各自的工作副本,最終,各個私有的復制合並在一起,成為最終的版本,這種系統通常可以輔助合並操作,但是最終要靠人工去確定正誤。

鎖定-修改-解鎖方案:

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

1.5     svn服務器的工作方式

獨立服務器方式:

                svnserve

借助Apache方式:

                mod_dav_svn

SVN版本數據存儲方式

BDB (Berkeley DB)

                數據庫方式

FSFS

                文件方式 (推薦)

2       svn服務端安裝配置

2.1     兩種服務端安裝包

2.1.1  官方安裝包

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

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

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

2.1.2  圖形化服務端

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

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

 

2.2     安裝圖形化服務端

 

查看程序菜單:

 

查看服務,VisualSVN成功啟動:

 

2.3     創建倉庫

svn服務端創建完成需要創建倉庫,倉庫中存放要版本控制的文件。

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

 

選擇文件存儲方式:

 

創建一個空的倉庫:

 

設置用戶訪問倉庫權限:

 

倉庫創建成功:

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

 

2.4     創建工程目錄

倉庫中存放開發項目代碼、文檔等,需要創建一個工程目錄。

 

創建成功:

 

trunk:項目開發代碼的主體,是從項目開始直到當前都處於活動的狀態,從這里可以獲得項目最新的源代碼以及幾乎所有的變更歷史信息。

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

tag:用來表示trunk和branch的某個點的狀態,以代表項目的某個穩定狀態,通常為最終發布狀態。

 

工程目錄創建完成,查看它的svn地址:

 

拷貝svn地址:

 

3       TortoiseSVN客戶端

3.1     svn客戶端類型

svn客戶端需要通過網絡訪問svn服務端提交文件、查詢文件等,可通過以下客戶端類型訪問svn服務端:

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

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

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

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

 

 

3.2     下載安裝

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

                TortoiseSVN是 Subversion 的 Windows 擴展。它使你避免接觸 Subversion 枯燥而且不方便的 Command Line。它完全嵌入 Windows Explorer,使用時只需在正常的窗口里右鍵操作就可以了

 

下載:http://tortoisesvn.net/downloads.html      提供 32位和64位不同版本,安裝tortoiseSVN 需要修改客戶端電腦右鍵菜單,安裝后需要重啟電腦。

 

3.3     瀏覽倉庫

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

 

4       權限管理(了解)

4.1     認證授權機制

         在企業開發中會為每位程序員、測試人員等相關人員分配一個賬號,用戶通過使用svn客戶端連接svn服務時需要輸入賬號和密碼,svn服務對賬號和密碼進行校驗,輸入正確可以繼續訪問,當用戶訪問倉庫下某個目錄時,svn服務對用戶進行授權,如果用戶擁有該目錄的訪問權限方可訪問。

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

         判斷用戶是否擁有目錄的讀/寫權限時即授權過程。

 

4.2     創建用戶

 

查看已創建的用戶:

 

修改用戶:

 

4.3     創建組

 

查看創建的組:

修改組:

 

4.4     分配僅限

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

4.4.1  刪除默認權限

刪除系統安裝后默認權限:

 

4.4.2  示例一:開發人員擁有讀寫權限

進入權限分配界面:

 

添加組或用戶:

 

分配權限:

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

 

訪問時輸入賬號:

 

登陸測試是否有讀/寫權限:

 

4.4.3  示例二:測試人員擁有讀權限

 

登陸測試是否有讀/寫權限:

 

4.4.4  清除認證緩存

有幾種情況需要清除認證緩存:

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

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

 

5       TortoiseSVN日常使用

5.1     瀏覽倉庫

Repo-browser : 瀏覽倉庫中資源信息

5.2     導入導出

 Export :導出項目 ,和checkout區別 (checkout檢出后文件,含有.svn隱藏文件夾, 會和SVN倉庫交互, export導出,沒有.svn隱藏文件夾)

 

 

 import 將本地資源導入到svn 服務器

        

5.3     修改提交

 

5.3.1  Checkout

檢出項目,復制項目的副本到本地。

在要檢出的目錄中右鍵:

 

 5.3.2  add

在檢出的目錄中添加文件:

 

圖標: 這是一個新文件

n  Add to ignore list :添加到忽略列表 (標記該文件不需要版本控制 )

 

n  Add : 標記這個文件添加到服務器

 

 已經標記要添加到版本庫

5.3.3  Commit

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

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

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

 

提交后目錄中的內容與svn服務同步,目錄圖標變為:

5.3.4  update

更新倉庫的文件到本地 

在檢出目錄或子目標或文件上右鍵:

 

5.3.4.1 更新到最新版本

 

5.3.4.2 更新到指定版本

 

5.3.5  Delete

Delete :刪除版本庫文件

 標記刪除后,本地文件刪除,標記刪除后需要提交。

 

 

5.3.6  恢復

在檢出目錄或子目錄操作會記錄操作日志,提交前可以回滾操作。

 在要回滾的檢出目錄或子目錄中右鍵:

 

5.4     沖突處理

兩個客戶端同時修改同一個文件, 改動同一個位置,發生沖突情況

         如果當commit 遇到文件已經過時,說明另一個人可能改動過 ----- update

 

         db.properties 將本地和服務器合並到一起的文件 (不要直接看)

         db.properties.mine 我本地自己修改后的文件

         db.properties.r16 我修改之前的文件

         db.properties.r17 別人修改后的文件

 

手動Merge 后,需要將編輯后沖突文件,標記為已經解決 , 再進行commit

 

 


免責聲明!

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



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