版本控制

版本控制

版本控制是指對軟體開發過程中各種程式代碼、配置檔案及說明文檔等檔案變更的管理,是軟體配置管理的核心思想之一。

基本介紹

  • 中文名:版本控制
  • 外文名:Revision control
  • 功能:追蹤檔案的變更等
  • 套用:軟體開發
  • 常用工具:CVS、SVN等
  • 學科:軟體工程
簡述,內容,流程,常用工具,

簡述

版本控制最主要的功能就是追蹤檔案的變更。它將什麼時候、什麼人更改了檔案的什麼內容等信息忠實地了已錄下來。每一次檔案的改變,檔案的版本號都將增加。除了記錄版本變更外,版本控制的另一個重要功能是並行開發。軟體開發往往是多人協同作業,版本控制可以有效地解決版本的同步以及不同開發者之間的開發通信問題,提高協同開發的效率。並行開發中最常見的不同版本軟體的錯誤(Bug)修正問題也可以通過版本控制中分支與合併的方法有效地解決。
具體來說,在每一項開發任務中,都需要首先設定開發基線,確定各個配置項的開發初始版本,在開發過程中,開發人員基於開發基線的版本,開發出所需的目標版本。當發生需求變更時,通過對變更的評估,確定變更的影響範圍,對被影響的配置項的版本進行修改,根據變更的性質使配置項的版本樹繼續延伸或產生新的分支,形成新的目標版本,而對於不受變更影響的配置項則不應發產生變動。同時,應能夠將變更所產生的對版本的影響進行記錄和跟蹤。必要時還可以回退到以前的版本。例如當開發需求或需求變更被取消時,就需要有能力將版本回退到開發基線版本。在曾經出現過的季度升級包拆包和重新組包的過程中,其實就是將部分配置項的版本回退到開發基線,將對應不同需求的不同分支重新組合歸併,形成新的升級包版本。
版本控制是軟體配置管理的核心功能。所有置於配置庫中的元素都應自動予以版本的標識,並保證版本命名的唯一性。版本在生成過程中,自動依照設定的使用模型自動分支、演進。除了系統自動記錄的版本信息以外,為了配合軟體開發流程的各個階段。還需要定義、收集一些元數據來記錄版本的輔助信息和規範開發流程,並為今後對軟體過程的度量做好準備。當然如果選用的工具支持,這些輔助數據將能直接統計出過程數據,從而方便軟體過程改進活動的進行。對於配置庫中的各個基線控制項,應該根據其基線的位置和狀態來設定相應的訪問許可權。一般來說,對於基線版本之前的各個版本都應處於被鎖定的狀態,如需要對它們進行變更,則應按照變更控制的流程來進行操作。

內容

版本控制包括:檢入檢出控制、分支和合併、歷史記錄。
1.檢入檢出控制
軟體開發人員對源檔案的修改不能在軟體配置管理庫中進行,對源檔案的修改依賴於基本的檔案系統並在各自的工作空間下進行。為了方便軟體開發,需要不同的軟體開發人員組織各自的工作空間。一般說來,不同的工作空間由不同的目錄表示,而對工作空間的訪問,由檔案系統提供的檔案訪問許可權加以控制。
訪問控制需要管理各個人員存取或修改一個特定軟體配置對象的許可權。開發人員能夠從庫中取出對應項目的配置項進行修改,並檢入到軟體配置庫中,對版本進行“升級”;配置管理人員可以確定多餘配置項並刪除。
同步控制的實質是版本的檢入檢出控制。檢入就是把軟體配置項從用戶的工作環境存入到軟體配置庫的過程,檢出就是把軟體配置項從軟體配置庫中取出的過程。檢人是檢出的逆過程。同步控制可用來確保由不同的人並發執行的修改不會產生混亂。
2.分支和合併
版本分支(以一個已有分支的特定版本為起點,但是獨立發展的版本序列)的人工方法就是從主版本——稱為主幹上拷貝一份,並做上標記。在實行了版本控制後,版本的分支也是一份拷貝,這時的拷貝過程和標記動作由版本控制系統完成。版本合併(來自不同分支的兩個版本合併為其中一個分支的新版本)有兩種途徑,一是將版本A的內容附加到版本B中;另一種是合併版本A和版本B的內容,形成新的版本C。
3.歷史記錄
版本的歷史記錄有助於對軟體配置項進行審核,有助於追蹤問題的來源。歷史記錄包括版本號、版本修改時間、版本修改者、版本修改描述等最基本的內容,還可以有其他一些輔助性內容,比如版本的檔案大小和讀寫屬性。

流程

版本控制基本流程如下:
(1)創建配置項。
項目成員依據《配置管理計畫》,在配置庫中創建屬於其任務範圍內的配置項。此時配置項的狀態為“草稿”,其版本號格式為0.YZ。
(2)修改狀態為“草稿”的配置項目。
項目成員使用配置管理軟體的Check in/check out功能,可以自由修改處於“草稿”狀態的配置項,版本號格式為0.YZ。
(3)技術評審或領導審批。
如果配置項是技術文檔,則需要接受技術評審。如果配置項是“計畫”這類檔案,則需要項目經理(或上級領導)的審批。若配置項通過了技術評審或領導審批,則轉向下一步·否則轉回上一步。
(4)正式發布。
配置項通過技術評審或領導審批之後。則配置項的狀態從“草稿”變為“正式發布”,版本號格式為X.Y。
(5)變更。
修改處於“正式發布”狀態的配置項,必須按照“變更控制流程”執行。

常用工具

1.開源版本控制工具
開放源碼的版本控制工具有很多,如Concurrent Versions System( CVS)、Subversion( SVN)、Vesta、Revision Control System( RCS)、Source Code Control System( SCCS)等。比較常用的兩個工具是CVS和SVN。CVS是Dick Grune在1984年~1985年基於RCS開發的一個客戶一伺服器架構的版本控制軟體,長久以來一直是免費版本控制軟體的主要選擇。SVN的一個重要開發目標是修正CVS中廣為人知的缺點,提供一個新的版本控制軟體。對於中小規模團隊,SVN是一個比較好的開源版本控制工具,SVN常用客戶端工具為TortoiseSVN。
2.成熟的商業工具
商業工具提供了比開源版本控制工具更多的,尤其是和軟體配置管理有關的功能。IBM公司的Rational ClearCase是一款重量級的軟體配置管理軟體,為大中型軟體開發企業提供了版本控制、工作空間管理、平行開發支持以及版本審計,可以為擁有上千開發者的大型項目提供全面配置管理支持。

相關詞條

熱門詞條

聯絡我們