版本控制工具的比較

2022-06-05 21:18:09 字數 4431 閱讀 4717

本文引用自:

源集中式:vss、cvs、svn

visual sourcesafe:微軟的版本控制

工具,僅支援windows作業系統。雖然簡單好用,但是僅適用於團隊級開發,不能勝任企業級的開發工作。

vss優點:安裝、配置、使用均較簡單,很容易上手使用;操作簡單,容易掌握;許可權劃分可到資料夾級,有read、check-out & check-in、add/rename/delete、destroy四種許可權級別。

缺點:許可權管理基於檔案共享形式,只能從資料夾共享的許可權設定對整個庫資料夾的許可權,而且必須要有可寫許可權;版本管理和分支管理只能靠人為的手工設定;版本發行時,只能手工挑選對應的版本檔案進行發布;安全性不高,基於檔案系統共享實現對伺服器的訪問,需要共享儲存目錄,這樣使用者可以對vss的資料夾執行刪除操作。

cvs是乙個典型的伺服器/客戶端軟體,有unix版本的cvs 、linux

版本的cvs和windows版本的cvs。cvs支援遠端管理,專案組分布開發時一般都採用cvs。安裝、配置較複雜,但使用比較簡單,只需對配置管理做簡單培訓即可。安全性高,cvs伺服器有自己專用的資料庫,檔案儲存並不採用 「共享目錄」方式,所以不受限於區域網。cvs可以跨平台,支援併發版本控制,而且免費。cvs不支援檔案改名,只針對檔案控制版本而沒有針對目錄的管理,並且缺少相應的技術支援,許多問題的解決需要自已尋找資料,甚至是研究源**。但也可以根據自己的需要進行程式設計。

相對功能單

一、簡陋,適用於幾個人的小型團隊,在資料量不大的情況下,效能可以接受。

svn(subversion) 是一種版本管理系統,其前身是cvs。svn是根據cvs 的功能為基礎來設計的,它除包括了cvs 的大多數特點外,還有一些新的功能,如:檔案目錄可以方便的改名、基於資料庫的版本庫、操作速度提公升、許可權管理更完善等。

cvs與svn比較

比較專案

cvssvn

許可權控制

是否依賴系統帳號

依賴不依賴

可否對分支授權否是

是否支援ldap認證否是

圖形化帳號管理

否是(集中管理平台)

使用者可否獲取忘記口令,修改口令

否是(集中管理平台)

目錄,檔名變更否是

分支管理

建立分支時間

耗時*快

分支可見、查詢難易

二進位制檔案

二進位制優化否是

二進位制檔案標識

手工自動

二進位制檔案(圖形檔案)被破壞

易破壞不易破壞

事物處理

原子提交否是

修改提交說明

單個檔案是換行

符可否指定換行符型別否是

檢查換行符設定,避免跨平台開發帶來的混亂否是

功能擴充套件

cvsroot

hooks 指令碼

網路頻寬

網路頻寬占用高低

離線命令否部分

clearcase提供了全面的配置管理——包括版本控制、工作空間管理、建立管理和過程控制,而且無須軟體開發者改變他們現有的環境、工具和工作方式。

clearcase包括兩套:

clearcase lt

和clearcase (multisite)

。前者可以用於在同乙個區域網的開發小組,適合於中小型開發組織;

clearcase (multisite)

則適應於分布於不同地理位置、不同區域網的開發小組,適合於大型的開發組織。

優勢:增加團隊效率――通過對並行開發的支援來實現,包括圖形比較和歸併、標籤、版本目錄結構。

增加個人效率 ――通過自動的工作空間管理來實現,如:直接的版本訪問、消除了在拷貝檔案上的時間的浪費。

簡單的維護和提高對客戶的支援――通過快速準確的重建先前的版本來實現。

快速準確的產品發布 ――通過保證構造的準確性和對軟體的每乙個元件進行版本控制來實現。

減少錯誤發生 ――通過事件發生以後對每乙個元件的變更進行追蹤來實現。

硬體資源的優化 ――通過分布式構造、減少檔案拷貝、可用物件的共享等功能來實現。

提高專案協調和編制 ――通過檔案注釋和開發周期階段變更的自動關聯來實現。

提高產品質量 ――通過靈活的程序控制,和圖形介面定製,使得軟體開發在實際中保持一致。

更加有效的團隊擴充套件――通過減少系統管理和維護的負擔來實現。

支援分布式結構使得團隊成長――通過client/server結構進行多點複製和及時的物件版本的更新來實現。

使用配置管理工具而降低風險――由於它不干擾軟體程式設計師的工作,所以可以使用常用的工具和檔案系統介面。

增加了軟體的安全性和保護性 ――通過使用分布式的儲存結構,所有的軟體資源會隨時更新、在硬碟或網路出現錯誤時那些被clearcase儲存的版本資訊會立刻恢復。

減少培訓和實現成本 ――clearcase通過採用透明結構以及和標準開發工具進行整合來實現。

強有力的開發和維護 ――通過和其它工具(如:缺陷追蹤)、系統、結構進行整合。

支援不同種類的開發 ――通過相容不同平台的軟體配置管理系統,如:windows nt、unix、和一些client端的軟體,如:windows 95、windows nt、windows 3.1和windows for workgroups。

缺點:clearcase 太貴,易用性差,培訓費用很貴,沒有培訓,很難上手使用。

starteam屬於高階的工具,在易用性,功能和安全性等方面都很不錯。 starteam的使用者介面同vss的類似,它的所有的操作都可通過圖形使用者介面來完成,同時,對於習慣使用命令方式的使用者,starteam也提供命令集進行支援。而且starteam的隨機文件也非常詳細。 starteam還提供了流程定製的工具,使用者可跟據自己的需求靈活的定製流程。與vss和cvs不同,vss和cvs是基於檔案系統的配置管理工具,而starteam是基於資料庫的。starteam的使用者可根據專案的規模,選取多種資料庫系統。starteam無需通過物理路徑的許可權設定,而是通過自己的資料庫管理,實現了類似windowsnt的域使用者管理和目錄檔案acl控制。starteam完全是域獨立的。這個優勢可以為使用者模型提供靈活性,而不會影響到現有的安全設定。starteam的訪問控制

非常靈活並且系統。您可以對工程、檢視、資料夾一直向下到每乙個小的item設定許可權。對於高階別的檢視(view),訪問控制可以與使用者組、使用者、專案甚至檢視等鏈結起來。 starteam是按license來收費的,比起vss,cvs來,企業在啟動starteam進行配置管理需要投入一定資金。

優點:許可權設定功能強大方便。starteam的圖形化介面,能夠使初學者易於接收,而且其缺陷控制功能的功能(基於資料庫的

change request

),是相應工具中獨樹一幟的。

缺點:不支援並行開發,不能很好解決merge

的問題;不支援分支的自動合併,需要手動來處理;速度慢,一定程度上影響開發效率;故障恢復困難,需要有專職管理員維護;沒有中文版本;另外,starteam整合度較高,移植過程複雜,需要的管理負擔大,需要完善的備份計畫。

git 是一款免費的、開源的、分布式的版本控制系統。旨在快速高效地處理無論規模大小的任何軟體工程。與常用的版本控制工具 cvs, subversion 等不同,它採用了分布式版本庫的方式,不必伺服器端軟體支援,使源**的發布和交流極其方便。每乙個git轉殖都是乙個完整的檔案庫,含有全部歷史記錄和修訂追蹤能力。其最大特色就是「分支」及「合併」操作快速、簡便。支援離線工作,git

是整個專案範圍的原子提交,而且

git中的每個工作樹都包含乙個具有完整專案歷史的倉庫。

git 本來是面向 linux 作業系統開發的軟體。在 linux 平台上使用git非常簡單,都是命令列模式。但對

windows

以及中文的支援不是很好。

mercurial 是一種輕量級分布式版本控制系統,採用 python 語言實現,易於學習和使用,擴充套件性強。其是基於 gnu general public license (gpl) 授權的開源專案。

相對於傳統的版本控制,具有如下優點:

更輕鬆的管理。傳統的版本控制系統使用集中式的reposi

tory,一些和repository相關的管理就只能由管理員乙個人進行。由於採用了分布式的模型,mercurial 中就沒有這樣的困擾,每個使用者管理自己的repository,管理員只需協調同步這些repository。

更健壯的系統。分布式系統比集中式的單伺服器系統更健壯,單伺服器系統一旦伺服器出現問題整個系統就不能執行了,分布式系統通常不會因為一兩個節點而受到影響。

對網路的依賴性更低。由於同步可以放在任意時刻進行,mercurial 甚至可以離線進行管理,只需在有網路連線時同步。

簡單易學、易於使用;輕量級,執行快速;可擴充套件性,易於根據使用者需求自行定義、擴充套件。

monotone是乙個免費的分布式版本管理系統。提供了簡單的檔案事務版本儲存,可離線操作,高效的點對點同步協議,支援歷史版本敏感的合併操作、輕量級分支處理以及整合**評審和第三方測試工具。使用加密的版本命令方式和客戶端 rsa 認證,很好的支援國際化,不依賴第三方工具,支援跨平台。 可執行在linux,solaris,mac osx,windows和其他unixes上,遵循gpl協議。

版本控制工具

1.vss 不常用 visual source safe 美國微軟公司的產品,目前常用的版本為6.0版。配置管理的功能比較基本,提供檔案的版本跟蹤功能,安全性不高 微軟不再對vss提供技術支援。2.cvs 不常用 concurrent version system 開發源 的配置管理工具 源於uni...

版本控制工具 SVN

學習svn的 svn入門使用 伺服器 tigris svn 客戶端 tortoise svn 伺服器的搭建 tigris svn server 1.6.5 2 建立中心庫 svnadmin create d share svnrepo 3 修改許可權配置 修改conf svnserve.conf 檔...

版本控制工具 SVN vs GIT

最近由於學校放假,不給留宿,所以一直忙於找房子,今天終於安頓下來了,之前總以為這一天離我還很遠,沒想到竟然來的這麼快。不過也好,遲早都要來的,早來早面對。凡事都有他的好的一面,只要我們心是向陽的。就好比今天我與大家分享的話題,svn vs git。我對版本控制工具用的不多,目前最常用的就是svn,但...