【摘要】現(xiàn)在的軟件項目開發(fā)中,必然涉及版本控制(Revision Control)工具。沒有使用版本控制工具的開發(fā)工作,有人形容就如同生活在“黑暗時代”。版本控制工具是項目開發(fā)中必不可少的,以此進行的版本控制可以確保在軟件項目開發(fā)中,不同的開發(fā)人員所涉及的同一文檔都得到更新。
關(guān)于軟件版本控制
如果在開發(fā)團隊中沒有使用版本控制,多個開發(fā)人員共同負責(zé)同一個軟件文檔的開發(fā),每個人在各自的機器上有整個軟件文檔的備份,并對之實施編程開發(fā),在分別完成各自任務(wù)之后,再通過文本比對工具將各自機器上的不同版本的程序整合到一臺機器上。沒有進行版本控制或者版本控制本身缺乏正確的流程管理,在軟件開發(fā)過程中將會引入很多問題,如軟件代碼的一致性、軟件內(nèi)容的冗余、軟件過程的事物性、軟件開發(fā)過程中的并發(fā)性、軟件源代碼的安全性,以及軟件的整合等問題。
版本控制的目的是實現(xiàn)開發(fā)團隊并行開發(fā)、提高開發(fā)效率的基礎(chǔ)。其目的在于對軟件開發(fā)進程中文件或目錄的發(fā)展過程提供有效的追蹤手段,保證在需要時可回到舊的版本,避免文件的丟失、修改的丟失和相互覆蓋,通過對版本庫的訪問控制避免未經(jīng)授權(quán)的訪問和修改,達到有效保護企業(yè)軟件資產(chǎn)和知識產(chǎn)權(quán)的目的。
版本控制的功能在于跟蹤記錄整個軟件的開發(fā)過程,包括軟件本身和相關(guān)文檔,以便對不同階段的軟件及相關(guān)文檔進行表示并進行差別分析,對軟件代碼進行可撤消的修改,便于匯總不同開發(fā)人員所做的修改,輔助協(xié)調(diào)和管理軟件開發(fā)團隊。
Linux下的版本控制
版本控制在空間上可以保證完成集中統(tǒng)一管理,解決一致性和冗余問題。在開發(fā)工作中,開發(fā)人員在提交軟件代碼的時候一般采用服務(wù)器/客戶端方式,盡管開發(fā)人員可以在自己的本地留有備份,但最終唯一有效的只有服務(wù)器端的程序代碼;在時間上全程跟蹤記錄工具將會自動記錄開發(fā)過程中的每個更改細節(jié),和不同時期的不同版本。這在一定程度上可以解決冗余、事務(wù)性處理并發(fā)性問題。項目管理人員可以通過版本控制對團隊中的不同人員,實施操作權(quán)限的控制。對于不同角色的開發(fā)人員,對軟件的不同部分可以定義不同的訪問權(quán)限。這在一定程度可以解決軟件安全性問題。版本控制工具的使用,可以減輕開發(fā)人員的負擔(dān),節(jié)省時間,同時降低人為錯誤。
各“級別”的版本控制工具
“工欲善其事,必先利其器”。既然版本控制在軟件項目開發(fā)中如此重要,那就有必要來仔細了解一下軟件版本控制工具。
版本控制工具也有“級別”之分,其中有“元老級”的CCC(Change and Configuration Control)、RCS(Revision Control System)、SCCS(Source Code Control System),“新秀級”的Hansky Firefly ,“入門級”的Visual SourceSafe,“中堅級”的Clearcase,還有開源軟件通用的版本控制工具CVS(Concurrent Versions System)和SVN(SubVersion)。CVS在一段時期內(nèi)幾乎成為版本控制工具的“代名詞”,大概有著30多年的歷史,而SVN是CVS的理想替代者,并出自同一人之手,被一些人譽為“迄今為止最好用的開源源碼版本控制工具”。
CCC:Change and Configuration Control。在20世紀60年代末70年代初,軟件配置管理的概念開始提出。20世紀七十年代初期加利福利亞大學(xué)的Leon Presser撰寫了一篇論文,提出控制變更和配置的概念,之后在1975年,他成立了一家名為SoftTool的公司,開發(fā)了自己的配置管理工具CCC——這也是最早的配置管理工具之一。
RCS:Revision Control System。誕生于1980年,由WALTER.f.Tichy 于美國的在Indina州的 Purdue 大學(xué)開發(fā),是基于單一文件的版本維護系統(tǒng)。
SCCS:Source Code Control System。SCCS是一種基本的程序源代碼版本控制工具,它適用于任何正文文件的版本維護。SCCS基于單一文件的版本控制,通常它的軟件儲藏室和要維護的文件在同一目錄下. SCCS 工作時,有一個專門的SCCS 格式的文件保留其源文件的編碼版本,其記錄了足夠的信息來生成新的版本,并記錄了誰對文件有修改權(quán),擁有該版本的”鎖”。
Hansky Firefly:作為H a n s k y 公司軟件開發(fā)管理套件中重要一員的Firefly,可以輕松管理、維護整個企業(yè)的軟件資產(chǎn),包括程序代碼和相關(guān)文檔。Firefly是一個功能完善、運行速度極快的軟件配置管理系統(tǒng),可以支持不同的操作系統(tǒng)和多種集成開發(fā)環(huán)境,因此它能在整個企業(yè)中的不同團隊,不同項目中得以應(yīng)用。Firefly基于真正的客戶機/服務(wù)器體系結(jié)構(gòu),不依賴于任何特殊的網(wǎng)絡(luò)文件系統(tǒng),可以平滑地運行在不同的LAN、WAN 環(huán)境中。它的安裝配置過程簡單易用,F(xiàn)irefly 可以自動、安全地保存代碼的每一次變化內(nèi)容,避免代碼被無意中覆蓋、修改。項目管理人員使用Firefly可以有效地組織開發(fā)力量進行并行開發(fā)和管理項目中各階段點的各種資源,使得產(chǎn)品發(fā)布易于管理;并可以快速地回溯到任一歷史版本。系統(tǒng)管理員使用Firefly的內(nèi)置工具可以方便的進行存儲庫的備份和恢復(fù),而不依賴于任何第三方工具。
Visual SourceSafe:微軟的版本控制工具,僅支持Windows操作系統(tǒng)。雖然簡單好用,但是僅適用于團隊級開發(fā),不能勝任企業(yè)級的開發(fā)工作。
Clearcase:IBM旗下Rational公司(2003年被IBM收購)的一款重量級的軟件配置管理(SCM, Software Configuration Managemen)工具。與CVS和VSS不同,Clearcase涵蓋的范圍包括版本控制、建立管理、工作空間管理和過程控制。從最初的軟件配置計劃,到配置項的確立,從變更控制到版本控制,Clearcase貫穿于整個軟件生命周期。 Clearcase支持現(xiàn)有的絕大多數(shù)操作系統(tǒng),但它的安裝、配置、使用相對較復(fù)雜,并且需要進行團隊培訓(xùn)。
CVS:Concurrent Versions System。CVS 是有著三十年以上的時間的考驗。CVS是開放源代碼軟件世界的一個偉大杰作,有人認為如今開源成功發(fā)展的幕后功臣之一當(dāng)CVS莫屬。Linux 的創(chuàng)始人 Linus 就把 Linux 的成功,歸因于 CVS。由于CVS功能強大,跨平臺,支持并發(fā)版本控制,而且免費,所以它在全球中小型軟件企業(yè)中得到了廣泛使用。CVS最大的遺憾就是缺少相應(yīng)的技術(shù)支持,許多問題的解決需要自已尋找資料,甚至是研究源代碼。CVS是一個典型的服務(wù)器/客戶端軟件,有UNIX版本的CVS 、Linux版本的CVS和WINDOWS版本的CVS。CVS支持遠程管理,項目組分布開發(fā)時一般都采用CVS。
SVN:SubVersion。CVS縱然易用,但也有一些與生俱來的缺點,比如CVS不支持文件改名,只對文件控制版本而沒有針對目錄的管理,等等。之后CVS 的創(chuàng)始人之一在其現(xiàn)任公司的資助下開發(fā)了SubVersion,用以替代CVS。SubVersion 的設(shè)計目的就是針對CVS 的一些弱點進行改進。
SVN的版本控制流程
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請以權(quán)威部門公布的內(nèi)容為準!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學(xué)生提供專業(yè)、高質(zhì)量的課程和服務(wù),解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學(xué)員考試保駕護航。面授、直播&錄播,多種班型靈活學(xué)習(xí),滿足不同學(xué)員考證需求,降低課程學(xué)習(xí)難度,使學(xué)習(xí)效果事半功倍。
發(fā)表評論 查看完整評論 | |