1. 程式人生 > >專案管理svn

專案管理svn

 

svn介紹

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

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

  • 備份多個版本,佔用磁碟空間大
  • 解決程式碼衝突困難 
  • 容易引發BUG
  • 難於追溯問題程式碼的修改人和修改時間
  • 難於恢復至以前正確版本
  • 無法進行許可權控制 
  • 專案版本釋出困難

2.2 什麼是版本控制

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

2.3 svn是什麼?

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

2.4 svn的使用方法

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

 

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

在這種模型裡,每一個客戶讀取專案配置庫建立一個私有工作副本——版本庫中檔案和目錄的本地對映。使用者並行工作,修改各自的工作副本,最終,各個私有的複製合併在一起,成為最終的版本,這種系統通常可以輔助合併操作,但是最終要靠人工去確定正誤。

n 鎖定-修改-解鎖方案

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

2.5 svn伺服器的工作方式

 

 

 

獨立伺服器方式:

svnserve

藉助Apache方式:

mod_dav_svn

 

SVN版本資料儲存方式

BDB (Berkeley DB)

資料庫方式

FSFS

檔案方式 (推薦)

svn服務端安裝配置

3.1 兩種服務端安裝包

3.1.1 官方安裝包

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

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

 

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

3.1.2 圖形化服務端

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

 

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

 

 

3.2 安裝圖形化服務端

 

 

 

 

檢視程式選單:

檢視服務,VisualSVN成功啟動:

 

3.3 建立倉庫

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

通過開始選單進入VisualSVN server manager

 

 

 

 

 

選擇檔案儲存方式:

 

 

 

建立一個空的倉庫:

 

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

 

倉庫建立成功:

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

 

 

3.4 建立工程目錄

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

 

 

 

 

建立成功:

 

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

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

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

 

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

 

拷貝svn地址:

 

TortoiseSVN客戶端

4.1 svn客戶端型別

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

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

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

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

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

4.2 下載安裝

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

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

 

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

 

4.3 瀏覽倉庫

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

 

 

 

許可權管理(瞭解)

5.1 認證授權機制

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

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

判斷使用者是否擁有目錄的讀/寫許可權時即授權過程。

5.2 建立使用者

 

 

檢視已建立的使用者:

 

修改使用者:

 

5.3 建立組

 

 

檢視建立的組:

 

修改組:

 

 

5.4 分配僅限

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

5.4.1 刪除預設許可權

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

 

 

 

 

5.4.2 示例一:開發人員擁有讀寫許可權

進入許可權分配介面:

 

新增組或使用者:

 

分配許可權:

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

 

訪問時輸入賬號:

 

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

 

5.4.3 示例二:測試人員擁有讀許可權

 

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

 

 

5.4.4 清除認證快取

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

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

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

 

 

TortoiseSVN日常使用

6.1 瀏覽倉庫

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

 

6.2 匯入匯出

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

 

n import 將本地資源匯入到svn 伺服器

 

6.3 修改提交

 

6.3.1 Checkout

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

在要檢出的目錄中右鍵:

 

 

6.3.2 add

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

 

圖示: 這是一個新檔案

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

 

n Add : 標記這個檔案新增到伺服器

 

 已經標記要新增到版本庫

6.3.3 Commit

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

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

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

 

 

 

 

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

6.3.4 update

更新倉庫的檔案到本地

在檢出目錄或子目標或檔案上右鍵:

 

6.3.4.1 更新到最新版本

 

6.3.4.2 更新到指定版本

 

 

6.3.5 Delete

Delete :刪除版本庫檔案

 標記刪除後,本地檔案刪除,標記刪除後需要提交。

 

6.3.6 恢復

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

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

 

 

6.4 衝突處理

兩個客戶端同時修改同一個檔案, 改動同一個位置,發生衝突情況

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

db.properties 將本地和伺服器合併到一起的檔案 (不要直接看)

db.properties.mine 我本地自己修改後的檔案

db.properties.r16 我修改之前的檔案

db.properties.r17 別人修改後的檔案

 

手動Merge 後,需要將編輯後衝突檔案,標記為已經解決 , 再進行commit

 

eclipseSVN外掛使用

7.1 svn外掛安裝

下載Subversion的eclipse外掛

http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA 

下載 site-1.10.11.zip,本教程將此zip放在D盤。

下邊是在STS上安裝svn外掛步驟:

1、進入STS軟體安裝介面

 

2、安裝svn外掛

 

上邊命令列輸入:SVN - jar:file:/d:/site-1.10.11.zip!/

點選下一步。

接受協議,完成:

 

出現提示,選擇繼續安裝:

 

安裝完成,檢視STS檢視有SVN選項說明安裝成功:

 

 

7.2 將專案共享到SVN

新建SVN倉庫連線 , 切換“SVN資源庫” 檢視

 

 

 

共享專案到SVN

 

7.3 svn檢出

 svn管理專案檢出到工作區

 

7.4 解決衝突

手動merge後,標記為解決

 

7.5 重置使用者名稱密碼

刪除C:\Users(使用者)\"你的使用者名稱"\AppData\Roaming\Subversion\auth\下的所有檔案