版本控制(Revision control)是一種軟體工程技巧,籍以在開發的過程當中,確保由不一樣人所編輯的同一檔案都獲得更新。windows
版本控制軟件提供完備的版本管理功能,用於存儲、追蹤目錄(文件夾)和文件的修改歷史,是軟件開發者的必備工具,是軟件公司的基礎設施。版本控制軟件的最高目標,是支持軟件公司的配置管理活動,追蹤多個版本的開發和維護活動,及時發佈軟件。api
Perforce,StarTeam)--------〉入門級安全
1.Clear case --------〉中堅級服務器
2.CVS --------〉開源奇葩分佈式
3.Visual SourceSafe--------〉新秀級工具
4. SourceAnywhere --------〉中堅級學習
5.PVCS--------〉小工做組級ui
6 Perforce --------〉新秀級url
7.CCC --------〉元老級操作系統
8.StarTeam --------〉元老級
9.RCS --------〉元老級
10.SCCS --------〉元老級
11.Hansky Firefly
12.Others(還有一些比較少見或某個公司專用的軟件,如Seapine,JBCM等)
1.Visual Source Safe(簡稱VSS)
VSS是美國微軟公司的產品,目前經常使用的版本爲6.0版。VSS是配置管理的一種很好的入門級的工具。
易學易用是VSS的強項,VSS採用標準的windows操做界面,只要對微軟的產品熟悉,就能很快上手。VSS的安裝和配置很是簡單,對於該產品,不須要外部的培訓(能夠爲公司省去一筆不菲的費用)。只要參考微軟完備的隨機文檔,就能夠很快的用到實際的工程當中。
VSS的配置管理的功能比較基本,提供文件的版本跟蹤功能,對於build和基線的管理,VSS的打標籤的功能能夠提供支持。VSS提供share(共 享)、branch(分支)和合並(merge)的功能,對於團隊的開發進行支持。VSS不提供對流程的管理功能,如對變動的流程進行控制。
VSS不能提供對異地團隊開發的支持。此外VSS只能在windows平臺上運行,不能運行在其餘操做系統上。 有軟件提供商提供VSS插件,能夠同時解決VSS跨平臺和遠程鏈接兩個問題,例如SourceAnywhere for VSS, SourceOffSite等。
VSS的安全性不高,對於VSS的用戶,能夠在文件夾上設置不可讀,可讀,可讀/寫,可徹底控制四級權限。但因爲VSS的文件夾是要徹底共享給用戶後,用戶才能進入,因此用戶對VSS的文件夾均可以刪除。這一點也是VSS的一個比較大的缺點。
VSS沒有采用對許可證進行收費的方式,只要安裝了VSS,對用戶的數目是沒有限制的。所以使用VSS的費用是較低的。
微軟再也不對VSS提供技術支持。
2.Concurrent Version System(簡稱CVS)
CVS是開發源代碼的配置管理工具,其源代碼和安裝文件均可以避免費下載。
CVS是源於unix的版本控制工具,對於CVS的安裝和使用最好對unix的系統有所瞭解能更容易學習,CVS的服務器管理須要進行各類命令行操做。目前,CVS的客戶端有winCVS的圖形化界面,服務器端也有CVSNT的版本,易用性正在提升。
CVS的功能除具有VSS的功能外,還具備:
它的客戶機/服務器存取方法使得開發者能夠從任何因特網的接入點存取最新的代碼;它的無限制的版本管理檢出(checkout:注1)的模式避免了一般的 由於排它檢出模式而引發的人工衝突;它的客戶端工具能夠在絕大多數的平臺上使用。一樣,CVS也不提供對變動流程的自動管理功能。
通常來講,CVS的權限設置單一,一般只能經過CVSROOT/passwd, CVSROOT/readers, CVSROOT/writers文 件,同時還要設置CVS REPOS的物理目錄權限來完成權限設置,沒法完成複雜的權限控制;可是CVS經過CVS ROOT目錄下的腳本,提供了相應功 能擴充的接口,不但能夠完成精細的權限控制,還能完成更加個性化的功能。
CVS是開發源碼軟件,無需支付購買費用。
一樣由於CVS是開發源碼軟件,沒有生產廠家爲其提供技術的支持。如發現問題,一般只能靠本身查找網上的資料進行解決。
3.SVN
SVN全名Subversion,即版本控制系統。
SVN與CVS同樣,是一個跨平臺的軟件,支持大多數常見的操做系統。做爲一個開源的版本控制系統,Subversion 管理着隨時間改變的數據。 這些數據放置在一箇中央資料檔案庫中。 這個檔案庫很像一個普通的文件服務器, 不過它會記住每一次文件的變更。 這樣你就能夠把檔案恢復到舊的版本, 或是瀏覽文件的變更歷史。Subversion 是一個通用的系統, 可用來管理任何類型的文件, 其中包括了程序源碼。
SubVersion:實現服務系統的軟件。
TortoiseSVN:是SVN客戶端程序,爲windows外殼程序集成到windows資源管理器和文件管理系統的Subversion客戶端。
SVNService.exe:是專爲 SubVersion 開發的一個用來做爲 Win32 服務掛接的入口程序。
AnkhSVN:是一個專爲Visual Studio提供SVN的插件。
4.Git
Git是一個開源的分佈式版本控制系統,用以有效、高速的處理從很小到很是大的項目版本管理.
Git 是 Linus Torvalds 爲了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。
Torvalds 開始着手開發 Git 是爲了做爲一種過渡方案來替代 BitKeeper,後者以前一直是 Linux 內核開發人員在全球使用的主要源代碼工具。開放源碼社區中的有些人以爲 BitKeeper 的許可證並不適合開放源碼社區的工做,所以 Torvalds 決定着手研究許可證更爲靈活的版本控制系統。儘管最初 Git 的開發是爲了輔助 Linux 內核開發的過程,可是咱們已經發如今不少其餘自由軟件項目中也使用了 Git。例如 最近就遷移到 Git 上來了,不少 Freedesktop 的項目也遷移到了 Git 上。
參考: