分佈式版本控制的概念

什麼是分佈式版本控制?

分佈式版本控制 (DVCS) 是一種不需要中心服務器的管理文件版本的方法,但是它也可以使用中心服務器。更改可以被合併到 DVCS 的任何其他用戶的系統中,因此可以實現非常靈活的工作流。

DVCS 的兩個主要優點是:它比集中的版本控制更靈活,因爲它除了支持傳統的(集中式)工作流,還支持其他各種工作流;它比集中式服務器快得多,因爲大多數操作在客戶機本地進行,而不需要網絡操作。

什麼是鉤子?

鉤子是在版本控制操作的生命週期中通過程序執行操作的方法。例如,通過使用鉤子,可以在代碼簽入(check in)存儲庫時自動發送電子郵件。另外,還可以在簽入代碼之前,檢查用戶是否滿足一組條件,比如包含一個測試文件。

另一種擴展版本控制系統功能的方法是編寫插件。如果打算編寫自己的插件,在 參考資料 中可以找到描述 Bazaar、Git 和 Mercurial 的插件系統的文章鏈接。

DVCS 和集中式版本控制系統的主要差異

在 DVCS 和集中式版本控制系統之間有三個關鍵差異。第一個差異是,DVCS 通過本地提交支持離線工作,這是由 DVCS 的操作方式決定的。這與集中式版本控制完全不同,集中式版本控制要求通過到中心服務器的連接執行所有操作。這種靈活性讓開發人員在飛機上也能夠像在辦公室中一樣輕鬆地工作,可以一次又一次地進行提交。

第二個差異是 DVCS 比集中式系統更靈活,因爲 DVCS 支持許多不同類型的工作流,從傳統的集中式工作流到純粹的特殊工作流,再到特殊工作流和集中式工作流的組合。這種靈活性允許通過電子郵件、對等網絡和開發團隊喜歡的任何方式進行開發。

第三個差異是 DVCS 比集中式版本控制系統快得多,因爲大多數操作在客戶機上進行,速度非常快。另外,在需要進行推(push )操作(與另一個節點通信)時,速度也更快,因爲兩個客戶機機器上都有完整的元數據。速度差異相當顯著,根據使用本地存儲庫還是網絡存儲庫,DVCS 比 Subversion 快大約 3-10 倍。

分佈式版本控制工作流

因爲 DVCS 非常靈活,可以實現各種各樣的工作流,但是由於篇幅有限,本文只討論兩種工作流。首先討論最常用的工作流之一 Partner 工作流。按照 Partner 工作流,一個開發人員啓動一個項目,然後進行分支。然後,在不同開發人員工作的分支之間來回合併更改。

第二種常用的工作流是通過本地提交使用集中式服務器。在這種工作流中,開發人員的工作方式與使用集中式 subversion 存儲庫時非常相似,但是他們進行本地提交,然後把最終更改推到集中式服務器。這種工作流有許多變體,包括與 Partner 工作流結合使用。重要的是,可以採用許多種工作方式,通過使用 DVCS,可以靈活地選擇最適合自己的工作方式。


the stupid content tracker


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章