2008/05/11

分散式版本控制系統 DVCS

最近使用Subversion(SVN)的專案越來越多,我實驗室的專案也全面使用,不過,這種Client-Server式的架構有一個嚴重的問題,就是在網路斷掉時,就沒有版本控制的能力了,也因此有另一種形式的版本控制系統的出現。

Distributed Version Control System (DVCS),分散式版本控制系統是現在越來越紅的一種版本控制系統的方式,有別於一般Client-Server的架構,分散式其實就是在每一個Client端都有自己的檔案庫存在,自己開發的文件檔案就直接Commit到Local端的檔案庫中,而檔案庫再跟主要的檔案庫Server或是其他Client端的檔案庫做同步化的動作,稱作 Pull 跟 Push ,因此在網路不通時,可以完全的獨立作業,又同時享有版本控制的好處,而網路連線時再跟其他檔案庫來交換內容,甚至可以打破傳統階層式的架構,採用Peer-to-peer(P2P)的方式來運作,每一個Client同時也是Server(依據不同的版本控制統而定),這裡有一些DVCS的運作圖可以連上去看一下(BitKeeper的產品介紹)

看了一下Wiki上的比較列表,比較紅或是比較成熟的大概是Git, Mercurial, Bazaar 以及SVK吧,在Choosing a Distributed Version Control System這一篇文章中有列出一些選擇的項目及他們的優缺點可以作為參考,如果是原Subversion的使用者,或許可以考慮使用SVK,因為SVK原本就是建立再SVN的環境上在做擴充,可以參考架構圖,不過在多方比較後,Mercurial(水銀的 所以又叫做Hg XD)看起來還是比較好的選擇,尤其是使用介面上有TortoiseHg可以使用(Git有git-cheetah Bazaar有TortoiseBzr 不過看起來都還在早期開發階段),作為初學者,入門的難度比較低,而其功能性及擴充性並不會因此而打折扣,依然是相當強悍的軟體,在加上最近終於進入的1.0的階段,其成熟度應該是可以受到肯定,目前簡單的試用,除了介面還是很醜(這大概要怪GTK+),其他用起來並沒有太多的障礙,目前把我的研究開發目錄從SVNf遷移到Hg上試試看。

補充資料

Distributed Version Control Systems - Why and How(PDF)
Git - User's Manual - GitWiki - Wikipedia
Mercurial - Distributed revision control with Mercurial (PDF) - WikiPedia
Bazaar - Workflows - User Reference - Wikipedia
Free Host - Git - Mercurial
The Risks of Distributed Version Control
Chris' DVCS wishlist

最後要介紹一下assembla這一個網站,他是一個專案管理的整合型線上環境,除了提共Wiki, Chat, Blog, Milestones, Scrum, Tickets等線上專案管理常見的功能外,在這裡介紹他最大的原因就是,他還提供了SVN, Mercurial, Git等檔案庫的支援以及Trac的線上環境供使用及HTTPS的加密通道,免費的有500MB的空間(沒有說明流量限制),並且可以付費升級,跟其他的FreeHost不太一樣的是他就算免費一樣可以選擇完全的Private,對於一般的專案管理應該是非常夠用了,而且他有商業模式在,應該比較不容易倒吧XD

0 comments:

 
Back to Top
This Site Power by JoStudio. Some Rights Reserved.