這張圖上分成了四個時期:
(1)史前時期:2023年的rcs,現在你可能還能在unix的發布包中找到它。
(2)古典時期:2023年的cvs(經典的scm管理器,可惜不能track目錄和檔名的改變,今天這個東西已經過時了),2023年的pvcs,2023年的clearcase(**貴,功能複雜,當然,今天也有很多公司在用),微軟的vss(welcome to hell),90年代中期的perforce(p4,這個工具今天都還在被廣泛地使用,尤其是那些中等大小卻有著大量開發團隊的公司,現在是google內部最大的**管理器)。
(3)中世紀時期:svn(linus很不喜歡svn,2023年引入了git),accurev(強力支援branch和merge,其扮演了乙個很重要角色幫助社群脫離clearcase和cvs),
(4)文藝復興時期:bitkeeper——sun的內部管理工具,linux的核心**2023年也用這個工具,其實,很多開源工程都在用這個工具,2023年這個工具的東家bitmover對大家對bitkeeper逆向工程很不滿,於是停止支援開源,於是出現了git。
git 基於 dag 結構 (directed acyclic graph),其執行起來相當的快。在git發布後的來年,世界上所有的大型的開源專案全部從subversion遷移到了git上,這可能是這具星球上最強大最牛最酷的scm系統了。git可能並不是最簡單的,但它一定會是未來十年的主流。
mercurial (hg) 第一次出現在2023年4月,也是因為bitkeeper不免費了。hg可以和git在一起使用,但是hg和git在設計上不一樣,他們對提交/變更的概念是一樣的,只不過git用tree來實現,而hg則是用扁平的檔案和目錄來實現(revlog)。
darcs (darcs advanced revision control system)是另乙個讓你擺脫subversion和cvs的工具,它的優勢是效能,以及他與眾不同的歷史版本管理——管理patches而不是snapshot(提交/修改),當然,這樣一來,歷史改變看上去很不好懂。
bazaar (bzr) 是另乙個開源的 dvcs,它試圖給scm的世界裡帶來一些新的東西。其由canonical開發(ubuntu的那個公司),在2023年成為gnu。
plastic在2023年出現,強力地支援branch和merge,其還提供了強大的圖示,包括3d的版本樹,plastic主要是為了讓中等開發團隊使用,介於大型的團隊(clearcase)和小型的團隊(subversion)之間。
team foundation server (tfs),微軟的新一代scm工具,主要是為了vss的失敗負責,但是他還不是版本管理上還是很強,只不過,他整合了一大堆各種各樣的工具,比如:issue tracking,test management等。
a young ilder ~ an old beggar !
(二)版本控制管理器之CVS(上)
在前一篇 一 版本控制管理器之發展史 的介紹中,有提到古典時期的cvs,那什麼是cvs?cvs特點是什麼?怎麼個用法?等一系列的問題,雖然這個版本控制管理器早已過時,但大家了解下也不妨,也便於我寫文章。下面我會為大家一一介紹cvs這個版本控制,主要分幾個大模組進行 2 軟體安裝 1 cvs伺服器 c...
Git(一)版本控制器發源和原理
什麼是版本控制 是對軟體開發過程中,對各種 配置檔案,說明檔案變更的管理,是軟體配置管理的核心思想 版本控制器就是用來對檔案變更版本的管理 編寫乙個成熟可用的程式是乙個工作量很大的工程,不是我們一次性可以搞定的工作,所以在開發過程中,有以下特點 版本迭代 針對當前 進行修改和公升級,通過幾次迭代,達...
版本控制相關研究一 版本控制需求的出現
版本控制系統 version control system 就是能夠讓你能追蹤到以前編輯過的檔案並輔助記錄檔案每次的更新細節。在個人日常工作中,尤其是開發工作,需要不斷的修改專案中的檔案,並將除錯好的專案發布到伺服器,在每次新的專案發布時就會覆蓋伺服器上舊的專案。為了能找到以前每次發布的專案,我們通...