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衝突處理