⑴ 版本控制軟體的常用的版本控制軟體簡介
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提供技術支持。 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是開發源碼軟體,沒有生產廠家為其提供技術的支持。如發現問題,通常只能靠自己查找網上的資料進行解決。 StarTeam是Borland公司的配置管理工具,StarTeam屬於高端的工具,在易用性,功能和安全性等方面都很不錯。
StarTeam的用戶界面同VSS的類似,它的所有的操作都可通過圖形用戶界面來完成,同時,對於習慣使用命令方式的用戶,StarTeam也提供命令集進行支持。同時,StarTeam的隨機文檔也非常詳細。
除了具備VSS,CVS所具有功能外,StarTeam還提供了對基於資料庫的變更管理功能,是相應工具中獨樹一幟的。StarTeam還提供了流程定製 的工具,用戶可跟據自己的需求靈活的定製流程。與VSS和CVS不同,VSS和CVS是基於文件系統的配置管理工具,而StarTeam是基於資料庫的。 StarTeam的用戶可根據項目的規模,選取多種資料庫系統。
STARTEAM無需通過物理路徑的許可權設置,而是通過自己的資料庫管理,實現了類似WINDOWSNT的域用戶管理和目錄文件ACL控制。 StarTeam完全是域獨立的。這個優勢可以為用戶模型提供靈活性,而不會影響到現有的安全設置。StarTeam的訪問控制非常靈活並且系統。您可以 對工程,視圖,文件夾一直向下到每一個小的item設置許可權。對於高級別的視圖(view),訪問控制可以與用戶組、用戶、項目甚至視圖等鏈接起來。
StarTeam是按license來收費的,比起VSS,CVS來,企業在啟動StarTeam進行配置管理需要投入一定資金。
Borland公司將對用戶進行培訓,並協作用戶建立配置管理系統。並對用戶提供技術升級等完善的支持。 ClearCase是Rational公司的產品,也是目前使用較多的配置管理工具。
ClearCase的安裝和維護遠比StarTeam復雜,要成為一個合格的ClearCase的系統管理員,需要接受專門的培訓。ClearCase提供命令行和圖形界面的操作方式,但從ClearCase的圖形界面不能實現命令行的所有功能。
ClearCase提供VSS,CVS,StarTeam所支持的功能,但不提供變更管理的功能。Rational另提供了ClearQuest工具提供 對變更管理的功能,與StarTeam不同,ClearCase後台的資料庫是專有的結構。ClearCase對於windows和unix平台都提供支 持。ClearCase通過多點復制支持多個伺服器和多個點的可擴展性,並擅長設置復雜的開發過程。
ClearCase的許可權設置功能與StarTeam相比,StarTeam有獨立的安全管理機制,ClearCase沒有專用的安全性管理機制,依賴於操作系統。
要選用ClearCase,需要考慮的費用除購買license的費用外,還有必不可少的技術服務費用,沒有Rational公司的專門的技術服務,很難 發揮出ClearCase的威力。如現在網上雖有ClearCase的破解軟體,但嘗試應用的公司大多失敗的緣故。另外,對於web訪問的支持,對於變更 管理的支持功能都要另行購買相應的軟體。
Rational公司已被IBM公司收購,所以有可靠的售後服務保證。 SVN全名Subversion,即版本控制系統。
SVN與CVS一樣,是一個跨平台的軟體,支持大多數常見的操作系統。作為一個開源的版本控制系統,Subversion 管理著隨時間改變的數據。 這些數據放置在一個中央資料檔案庫中。 這個檔案庫很像一個普通的文件伺服器, 不過它會記住每一次文件的變動。 這樣你就可以把檔案恢復到舊的版本, 或是瀏覽文件的變動歷史。Subversion 是一個通用的系統, 可用來管理任何類型的文件, 其中包括了程序源碼。
SubVersion:實現服務系統的軟體。
TortoiseSVN:是SVN客戶端程序,為windows外殼程序集成到windows資源管理器和文件管理系統的Subversion客戶端。
SVNService.exe:是專為 SubVersion 開發的一個用來作為 Win32 服務掛接的入口程序。
AnkhSVN:是一個專為Visual Studio提供SVN的插件。 SourceAnywhere系列是由加拿大公司Dynamsoft開發的,有三個產品,SourceAnywhere for VSS, SourceAnywhere Standalone, SourceAnywhere Hosted.
SourceAnywhere for VSS是微軟推薦的遠程和跨平台訪問VSS的工具。SourceAnywhere Standalone界面風格與VSS相似,但它是基於SQL Server的,且有其它一些安全和遠程訪問機制,可以廣域網中使用;支持把數據從VSS庫中導入SourceAnywhere。SourceAnywhere Hosted是SourceAnywhere Standalone的託管服務SaaS。 Git是一個開源的分布式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理.
Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟體。
Torvalds 開始著手開發 Git 是為了作為一種過渡方案來替代 BitKeeper,後者之前一直是 Linux 內核開發人員在全球使用的主要源代碼工具。開放源碼社區中的有些人覺得 BitKeeper 的許可證並不適合開放源碼社區的工作,因此 Torvalds 決定著手研究許可證更為靈活的版本控制系統。盡管最初 Git 的開發是為了輔助 Linux 內核開發的過程,但是我們已經發現在很多其他自由軟體項目中也使用了 Git。例如 最近就遷移到 Git 上來了,很多 Freedesktop 的項目也遷移到了 Git 上。
⑵ VSS (Microsoft Visual SourceSafe) 中如何進行版本管理
VSS6.0現在是作為Microsoft Visual Studio6.0這個開發產品家族的一員,如Visual C++6.0和Visual J++6.0一樣。
1. VSS的簡單工作原理
Microsoft的VSS6.0解決了軟體開發小組長期所面臨的版本管理問題,它可能有效地幫助項目開發組的負責人對項目程序進行管理,將所有的項目源文件(包括各種文件類型)以特有的方式存入資料庫。開發組的成員不能對該資料庫中的文件進行直接的修改,而是由該版本管理器將該項目的源程序或是子項目的源程序拷貝到各個成員自己的工作目錄下進行調試和修改,然後將修改後的項目文件作Checkin提交給VSS,由它進行綜合更新。VSS也支持多個項目之間文件的快速高效的共享。當某個成員向VSS中添加文件時,該文件將會被備份到資料庫中,以便所有的成員都能共享該文件。而且每個成員對所有的項目文件所作的修改都將被記錄到資料庫中,從而使得修改的恢復和撤銷在任何時刻,任何位置都成為可能。小組的成員可能得到該項目的最新版本,對它進行修改,並保存一個新的版本。
VSS的項目組織管理使得開發小組的協調變得簡單容易且很直觀,當一個和一組文件發放給另一個成員,小組,W eb站點或是任何其他的地址,VSS確保他們之間的真正共享及所選的一組文件的不同版本的安全性。現在,越來越多的開發者可以通過他們的開發環境來訪問VSS的功能。而且VSS可以很容易地於Microsoft Access、 Vi sual Basic、 Visual C++、Visual FoxPro和其他的開發工具集成在一起,一旦VSS 集成到開發環境中,就可以象控制項一樣使用,能夠很好地體現出VSS的易用性和強大功能。
2.VSS中的幾個重要概念
為了更好的了解VSS,有必要對如下一些概念給予說明。
首先是項目的概念,所謂的項目是一組存在VSS中的文件(任何類型),可以在項目中或是項目之間進行文件的添加、刪除、編輯和共享。一個項目與操作系統的文件夾有很多的相似之處,但它更好地支持文件合並、歷史和版本控制。所有的文件存在VSS資料庫的項目中,開發組成員不能在VSS中的主備份文件上工作(除了檢查和版本比對等特殊情況外)而是VSS為每個成員在各自的工作目錄下提供一個拷貝以供工作。盡管在沒有工作目錄的情況下也可以查看某個文件,但如要真正在VSS管理下工作,就必須要創建一個工作目錄。
VSS能夠維護一個文件的多個版本,包括一個從不同版本之間進行修改的記錄。版本控制包括如下方面:
組內協調-在一般情況下,確保在任何時刻都只有一個成員對某個特定的文件進行修改,這樣可以防止文件被其他成員的修改意外更新。當然,VSS管理員可以改變此預設設置以允許對單個文件同時有多個Checkout,並且仍禁止對他人的修改進行覆蓋。
版本跟蹤-對老版本的源代碼和其他文件進行歸檔和跟蹤,而且這些版本能夠被重新得到以便進行bug跟蹤或其他目的。
跨平台開發-支持同一代碼在跨多個開發平台時的版本控制。
重用或面向對象代碼-跟蹤哪些程序使用了哪些代碼可被重用的模塊。
版本控制的涵義在以後的章節中將會得到更進一步的論述。
我們已經知道,VSS提供版本控制和歷史服務,以保證一個文件的每個版本都是可恢復的。VSS用日期/時間戳來記錄文件是何時被Checkout或是何時被修改的,它主要有三種方法來跟蹤文件和項目的版本:
版本號:這是由VSS維護的內部數碼,用戶對它沒有控制權。每個文件和項目的每個版本都有一個版本號,這些版本號總是一個整數且是遞增的。
標簽:這些是用戶賦給某個項目或文件的某個版本的一個字元串,可以是任何格式的長度不超過31字元的字元串。
日期/時間戳:它給出了一個文件何時最後被修改的信息,或者是一個文件何時被Checkin。VSS同時支持 12小時和24小時的時間格式。
工作目錄是用戶真正對項目文件進行調試修改的地方,當用戶Checkout或提取一個文件時,VSS將該項拷貝到用戶的工作目錄下,當用戶修改了該文件並將其Checkin或提交時,VSS再將它從用戶的工作目錄拷回到VSS 的資料庫中。在用戶作Checkout時,VSS將會自動管理他的工作目錄,諸如創建必要的子目錄。而且工作目錄可以隨時創建或修改。
3. VSS6.0的一些新增的特徵和功能
歸檔和恢復-在VSS6.0中這兩個操作是在一個用戶界面友好的VSS管理員wizard中進行的,而在以前的版本中,它們只能通過命令行來實現。
移動文件-當用戶移動文件時,VSS6.0自動將該文件共享到一個新的項目中,並在原項目中將其刪除。在新項目中,該文件的屬性是共享的。
多個項目之間的差異比較-該功能允許用戶在不同的項目之間進行差異比較。
單個文件的展開-在以前的版本中,VSS只能展開一個目錄(文件夾),在VSS6.0中,同時可以展開一個文件。
快速提取-由於VSS6.0在性能上的提高,現在的文件提取速度比以往VSS版本的快兩倍左右。
歷史信息過濾-VSS6.0支持查看那些沒有標簽的文件和項目的歷史。
清除臨時文件夾選項-該新功能可使用戶很方便地清除臨時文件夾。
檢查外部的超連接-在VSS的較早的版本中,只有內部的超連接和項目內的跳轉才得到檢查,VSS6.0允許用戶檢查項目之外的超連接和跳轉。
創建打開VSS資料庫的快捷鍵-用戶可以使用VSS Explorer中該新功能創建一個打開某個特定VSS 資料庫的桌面快捷鍵。
HTML格式的幫助-VSS的以往版本使用的是WinHelp格式。