基本含義
版本管理是軟件配置管理的基礎,它管理并保護開發者的軟件資源。
它的主要功能有:
(1)集中管理檔案,安全授權機制:檔案集中地存放在服務器上,經系統管理員授權給各個用戶。用戶通過check in和check out的方式訪問服務器上的文件,未經授權的用戶則無法訪問服務器上的文件。
(2)軟件版本升級管理:每次登入時,在服務器上都會生成新的版本,任何版本都可以随時檢出編輯。
(3)加鎖功能:在文件更新時保護文件,避免不同的用戶更改同一文件時發生沖突。
(4)提供不同版本源程序的比較。
模型
版本管理的主要模型有線性版本管理模型、樹型版本管理模型和有向無環圖版本管理模型。
(1)線性版本管理模型
這是按版本出現的先後次序排列的一種簡單模型。一個對象的版本聚集在一起組成一個版本集,版本集中的元素之間滿足“successor-of”的有序關系。版本集中的元素是全序關系,新元素隻能朝一個方向上增加,除最新版本外,其餘版本均是隻讀版本。
(2)樹型版本管理模型:
樹型版本管理模型中各版本的出現呈現樹狀結構。同樣一個對象的版本聚集在一起組成一個版本集,版本集中的元素之間滿足“successor-of”的有序關系。但版本集中的元素是半序關系,即一個版本可以有多個後繼版本,因此,可以有多個最新版本。同樣,除最新版本外,其餘版本均是隻讀版本。這種模型可以反映設計過程中以某一中間版本為基礎,選擇多種設計方案而形成多個設計結果的情況。
(3)有向無環圖版本管理模型:
有向無環圖版本管理模型中各版本的出現呈現無循環圖的結構。同樣一個對象的版本聚集在一起組成一個版本集,版本集中的元素之間滿足“successor-of”的有序關系,版本集中的元素是半序關系,即一個版本可以有多個後繼版本,因此,可以有多個最新版本。但是一個版本可以有多個前驅版本。同樣,除最新版本外,其餘版本均是隻讀版本。這種模型可以表達由多個設計零部件合成一個完整對象的情況,即由多個設計版本融合出一個新版本的情況。此模型是較為完善的模型,線性及樹型模型是它的特例。
著名軟件
CVS(Concurrent Versions System)
VSS(Micorosoft Visual SourceSafe)
SVN(Subversion)
Git
TFS(Team Foundation Server)
Mercurial
ClearCase(IBM Rational ClearCase)
Perforce(Perforce)
SourceSafe for SQL Server