分散式版本控制

分散式版本控制(distributed version control),又稱去中心化版本控制(decentralized version control),是一種版本控制的方式,它允許軟體開發者可以共同參與一個軟體開發專案,但是不必在相同的網路系統下工作

基本介紹

  • 中文名:分散式版本控制
  • 外文名:distributed revision control
  • 又稱:分散式版本控制
  • 領域:計算機
簡介,版本控制,軟體版本控制,概述,軟體版本的控制方法,中央式系統與分散式系統,

簡介

以分散式版本控制方法,作出的軟體版本控制系統,稱為分散式版本控制系統(distributed version control system,縮寫為DVCS)。著名的分散式版本控制系統有Monotone,git等。

版本控制

版本控制Revision control)是維護工程藍圖的標準作法,能追蹤工程藍圖從誕生一直到定案的過程。此外,版本控制也是一種軟體工程技巧,藉此能在軟體開發的過程中,確保由不同人所編輯的同一代碼檔案案都得到同步。
通過文檔控制(documentation control),能記錄任何工程項目內各個模組的改動歷程,並為每次改動編上序號。
一種簡單的版本控制形式如下:賦給圖的初版一個版本等級“A”。當做了第一次改變後,版本等級改為“B”,以此類推。最簡單的例子是,最初的版本指定為“1”,當做了改變之後,版本編號增加為“2”,以此類推。
藉此,版本控制能提供項目的設計者,將設計恢復到之前任一狀態的選擇權,這種選擇權在設計過程進入死胡同時特別重要。
理論上所有的信息記錄都可以加上版本控制,在過去的實務中,除了軟體開發的流程,其它的領域中很少有使用較複雜的版本控制技巧與工具(雖然可能為其帶來許多好處)。目前已有人開始用版本控制軟體來管理CAD電子檔案,電路板設計,來補足本來由人手工運行的傳統版本控制。

軟體版本控制

概述

軟體設計師常會利用版本控制來追蹤、維護源碼檔案以及配置檔案等等的改動,並且提供控制這些改動控制權的程式
在最簡單的情況下,軟體設計師可以自己保留一個程式的許多不同版本,並且為它們做適當的編號。這種簡單的方法已被用在很多大型的軟體項目中。該方法雖然可行,但不夠有效率。除了必須同時維護很多幾乎一樣的源碼備分外;而且極度依賴軟體設計師的自我修養與開發紀律,但這卻常是導致錯誤發生的原因。
有時候,一個程式同時存有兩個以上的版本也有其必要性,例如:在一個為了部署的版本中程式錯誤已經被修正、但沒有加入新功能;在另一個開發版本則有新的功能正在開發、也有新的錯誤待解決,這使得同時間需要不同的版本並修改。
此外,為了找出只存在於某一特定版本中(為了修正了某些問題、或新加功能所導致)的程式錯誤、或找出程式錯誤出現的版本,軟體除錯者也必須藉由比對不同版本的代碼以找出問題的位置。

軟體版本的控制方法

最簡單的版本控制就是保留軟體不同版本的數份copy,並且適當編號。許多大型開發案都是使用這種簡單技巧。雖然這種方法能用,但是很沒效率。一是因為保存的數份copy幾乎完全一樣,也因為這種方法要高度依靠開發者的自我紀律,而常導致錯誤。因此,有人開發出了將部分或全部版本控制工作自動化的版本控制系統。

中央式系統與分散式系統

大部分的軟體開發案,會有好幾個開發人員同時工作。如果兩個人員同時要改變同一個檔案,而沒有管理訪問許可權,很可能會改寫彼此的工作。
所以許可權管理控制系統會在兩種方法中擇一解決:採用中央式系統,由中央權威管理訪問許可權;或是像分散式系統容許多個單位同時進行,包括同時更動同一檔案。
傳統上版本控制系統都是採用中央式系統:所有版本控制的工作在一個伺服器進行,由中央權威管理訪問許可權“鎖上”檔案庫中的檔案,一次只讓一個開發者工作。
2000年後,TeamWare、BitKeeper、和GNU開始用分散式系統:開發者直接在各自的本地檔案庫工作,並容許多個開發者同時更動同一檔案,而各個檔案庫有另一個合併各個改變的功能。這個方式讓開發者能不靠網路也能繼續工作,也讓開發者有充分的版本控制能力,而不需經中央權威許可。分散式系統仍然可以有檔案上鎖功能。
分散式系統Linux核心的發明人林納斯·托瓦茲就是分散式版本控制系統的支持者,他開發了目前被開源社區廣泛使用的分散式版本控制系統Git

相關詞條

熱門詞條

聯絡我們