張萱
一般在軟件開發(fā)過程中都會出現(xiàn)版本多樣化、不時變更更新、數(shù)據(jù)量多追溯搜索困難等問題,而開發(fā)出的SVN系統(tǒng)在一定程度上避免了上述情況的發(fā)生,本文著重介紹了SVN軟件及其工作機制,并分析探討了如何實現(xiàn)對軟件的版本控制,提出一個有效的,僅供大家參考的操作實施方法。
【關鍵詞】軟件 版本控制 SVN 優(yōu)勢
1 前言
我們知道每一個軟件項目都是要進行一系列的統(tǒng)計、分析、設計、編碼、測試、交付維護和后期維護支持等復雜的過程,在軟件項目的進行中,會不不可避免的生成大量的數(shù)據(jù)源、代碼源,因此將這些凌亂的,龐大復雜的數(shù)據(jù),進行有序的排列分類,儲存數(shù)據(jù)發(fā)生變更時的變更記載,成功追溯到數(shù)據(jù)變更歷史等成為困擾我們的一大難題,而SVN版本控制工具的成功研發(fā),很好的解決了軟件配置管理中上述版本控制的問題。
2 SVN的概念和工作機制
2.1 SVN的概念
SVN具體指的是什么呢,SVN是subversion的縮寫,是一個開放源代碼的版本控制系統(tǒng),通過采用分支管理系統(tǒng)的高效管理,簡而言之就是用于多個人共同開發(fā)同一個項目,實現(xiàn)共享資源,實現(xiàn)最終集中式的管理。
2.2 SVN的工作機制
我們知道一個軟件開發(fā)試行后,最關鍵的問題就是能夠有效的實現(xiàn)軟件版本系統(tǒng)的控制,而作為版本控制系統(tǒng)的核心任務,能否完成成功的查閱歷史操作記錄和實現(xiàn)協(xié)同開發(fā)才是公司研發(fā)團隊關注的問題。SVN系統(tǒng)具體是如何實現(xiàn)對項目軟件的版本控制,一方面通過實現(xiàn)歷史操作記錄查閱。我們在任意一臺服務器中都可以添加一個SVN版本庫,而相應的版本庫中存放大量的程序和文檔,而這些項目資源主要通過配置管理員依據(jù)不同的配置管理計劃對不同項目的組員分配與之相符合的訪問權限,進而實現(xiàn)對資源的統(tǒng)一管理;只有SVN標本過版本庫中的資源,項目組成員可以對版本資源庫中的資源進行訪問。我們知道一次簡單的訪問過程包括:相關項目組員首先在客戶操作端建立一個從版本庫檢索出來的項目文件,而后就可以對拷貝的檔案進行修改,最后通過SVN提交命令將其修改后的項目文件提交到終端服務器,終端服務器最終會對修改后的項目文件做最后的綜合更新記錄。修改過的文件在修改未被提交到服務器前,SVN 服務器只會對已經(jīng)提交到終端服務器的項目文檔進行更新審核,并與其他人的合并,在此之前修改過的文檔是保密的。提交之后SVN終端服務器會將修改后與修改之前的數(shù)據(jù)進行比較,并在后臺對修改內(nèi)容就行標注顯示,進而實現(xiàn)對歷史操作記錄的更新記載。最終實現(xiàn)項目組組員既能檢索出舊版本,又能通過SVN實現(xiàn)新舊版本的對比。另一方面SVN通過進行組員間的協(xié)同開發(fā)實現(xiàn)對項目軟件的版本控制。協(xié)同開發(fā)一般是指版本控制系統(tǒng)同時接受并處理不同用戶提交的各種不同性質(zhì)版本的資源代碼,同時允許各個用戶之間在遵循相應規(guī)則范圍內(nèi)實現(xiàn)合作開發(fā)。如何處理好有矛盾的版本控制系統(tǒng)才是能夠協(xié)同開發(fā)的關鍵。像是多個程序編碼員同時對同一份資源代碼進行修改、提交到提交到SVN版本庫,就有可能發(fā)生提交后的版本意見想法相沖等問題。就目前而言,主要通過以下兩種方案解決上訴問題。 一種就是我們所謂的“鎖定-修改-解鎖”方案,另一種我們可以稱為“拷貝-修改-合并”方案。簡而言之,在“鎖定-修改-解鎖”方案中,版本控制工具具有一對一的的限制,不同的程序員不能在同一時間中就同一份文檔同時進行鎖定、修改,也就是說,只有當這個程序員修改完畢并提交修改方案后,其他工作人員才能再次對同一文件解鎖并修改,這種方案總體來說操作簡單、容易被大多數(shù)人接受、理解,但這種結局方案背后隱藏的缺點不容忽視的,因為多人同時行同一條道時,就必不可免的等待問題,這樣會費時、費力,在有限的時間內(nèi)不能完成有效的工作;而在應用“拷貝-修改-合并”時,這種一個一個進行的弊端就能有效避免,因為這種方案是允許同一時間有多個程序員對同一文件進行修改的,最后由最后一個提交的程序員決定如何解決和先提交版本之間的沖突問題。雖然這樣做會增加后提交者的擔負,但其還是很好的解決了“鎖定-修改-解鎖”方案帶來的弊端,總體來說是利遠遠大于弊的。為了盡量滿足人們的不同需求,SVN最終共同采用以上兩種方案來滿足不同人群的需求,因此得到大多數(shù)人的喜愛與認可,得到廣泛的采納、應用。
3 SVN軟件版本控制的優(yōu)勢
目前因SVN在運行、數(shù)據(jù)存儲、安全性等方面均占有較強優(yōu)勢,因而更為公司、企業(yè)所接受并被應用,主要從以下幾個方面對其存在優(yōu)勢進行簡要的陳述,從而使人們在軟件版本控制方面有更多的選擇。
3.1 存儲
SVN服務器既具有CVS所具有數(shù)據(jù)儲存的優(yōu)點,像是信息資源存儲后會形成資源樹結構,便于存儲的同時,數(shù)據(jù)一般不會丟失,同時又擁有自己的特色。SVN是通過關系數(shù)據(jù)庫及二進制的存儲方式,同時解決了既往不能同時讀寫同一文件等問題,同時增添了自己特有的“零或一”原則。
3.2 速度
與人們初始的CVS相比,SVN在速度運行方面有很大提升。因為SVN服務器只支持少量的信息、資源傳輸,與其他系統(tǒng)相比,更支持的是離線模式,因此避免了網(wǎng)絡擁擠現(xiàn)象的出現(xiàn)。
3.3 安全性
SVN是一種技術性更加安全的產(chǎn)品,完美的實現(xiàn)了系統(tǒng)和控制兩方面的結合。一方面可以將系統(tǒng)整體的安全功能有效地分布在分支系統(tǒng)中,進而保證分支系統(tǒng)能正常運行,從而使各分支系統(tǒng)能夠互補,最終在系統(tǒng)整體性的安全性得以保障,通過均衡原則實現(xiàn)最終追求安全的目的。
4 結束語
綜上所述,SVN作為項目軟件的版本控制系統(tǒng),能有效的解決項目組員在軟件開發(fā)時出現(xiàn)的版本混亂、資源數(shù)據(jù)處理困難、管理困難等各種問題,大大提高工作效率,同時滿足人們對軟件版本后臺控制的需求。
參考文獻
[1]朱三元,錢樂秋,宿為民,軟件工程技術概[M].北京.科學出版社,2002.
[2]張路,李欣,梅宏等,基于復用的軟件開發(fā)過程的配置管理[J].計算機科學,2012(05):41-44.
[3]曹吉.點評[J].程序員,2004(12):128-129.
[4]劉康平1.5新功能解析[J].程序員,2008(03):119-122.
[5]孫向輝.驅(qū)動領域設計中的敏捷實驗——從SVN的權限管理說起[J].程序員,2007(02):72-74.
[6]劉燕秋,勉玉靜,趙文耘.軟件配置管理中版本管理技術研究[J].計算機工程用,2014(21):68-71
作者單位
陜西黃河集團有限公司 陜西省西安市 710043