王文海
摘要:近年來,軟件協(xié)同開發(fā)活動日益增多,許多大型的軟件開發(fā)需要分布很廣的開發(fā)人員協(xié)作共同完成,導致軟件開發(fā)團隊的過程中經(jīng)常遇到的軟件項目開發(fā)文檔和源代碼變化頻繁,混亂和修改的版本沖突問題進行了分析,以及版本控制的原理和功能進行了深入介紹,探索一個軟件協(xié)同開發(fā)過程中使用版本安全控制技術(shù)發(fā)展的標準和流程。
關(guān)鍵詞:版本安全控制;協(xié)同開發(fā);軟件測試
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1007-9416(2017)10-0209-01
1 引言
軟件協(xié)同最初的目的是為了實現(xiàn)和測試部署的需求,由最初的鏈接一直到最后就會產(chǎn)生不同的數(shù)據(jù),其中最為主要的就是文檔和源代碼。在軟件協(xié)同開發(fā)過程中,被分配的任務(wù)剛開始是各司其職分工后來在一起進行。一般來說這樣的工作方式總會有人或是理解錯誤、或是傳遞出現(xiàn)偏差。也就造成了在軟件協(xié)同開發(fā)過程當中的一些數(shù)據(jù)文件的維護和修改必須多個人同時進行,由此可見,就存在一些安全隱患。
在開始于一個新的軟件開發(fā),需要考慮多種因素,所以不是很簡單的就能完成的。也許在剛開始軟件開發(fā)的過程中沒有出現(xiàn)問題,但經(jīng)過一段時間后就會發(fā)現(xiàn)一系列的問題,比如在某種問題的解決方法并不適用。因為軟件協(xié)同開發(fā)過程是剛開始各司其職最后才是一起進行完成的,查找問題的來源就需要從最初的某個時間點重新開始。怎么才能使已經(jīng)完成那個版本在測試中出現(xiàn)問題的修復功能形式到正在測試還未完成的版本呢?或者是是另一種方法軟件協(xié)同開發(fā)的領(lǐng)導者需要熟悉參與開發(fā)軟件的工作人員的工作任務(wù),具體到每一天具體做了什么。保存每一個項目的不用時間點,并給它們定位一個版本號,這種形式雖然方便,但是效率確很低,幾乎沒有。因為復制下來的每一個項目的版本差不多都一樣,找出兩者之間的異同很困難。所以,在開始一個新的軟件協(xié)同開發(fā)就有必要使用自動的版本安全控制。
2 版本控制
版本控制(Revisioncontrol)在軟件工程中使用確保不同成員參與同步開發(fā)的技術(shù)修改過的同一文件也會更新。也就是在開發(fā)過程中,會不斷發(fā)現(xiàn)新需求,不斷發(fā)現(xiàn)bug,如果不做控制,你的軟件將永遠不會發(fā)布,或今天一個版本,明天又是一個版本。一個簡單的版本控制表訂單被自動分配到每個修訂號,例如以第一個加入倉庫的版本號命名為“1”,之后做了修改之后,版本號就會自動遞增為“2”,由此下去,版本就會自動的增加,由此,軟件協(xié)同開發(fā)的工作人員不用追溯到最原始的版本查找問題,使用這個現(xiàn)代化的版本控制就可以查找版本倉庫隨便一個形態(tài)。版本控制軟件大都是采用差分?,F(xiàn)在,通用版本控制軟件可以根據(jù)不同版本的倉庫存儲劃分為集中式和分布式。集中式版本控制系統(tǒng)Concurrent Version System)CVS和SVN(子-sion)。CVS是開發(fā)源代碼的配置管理工具,其源代碼和安裝文件都可以免費下載。的客戶機/服務(wù)器存取方法使得開發(fā)者可以從任何因特網(wǎng)的接入點存取最新的代碼;它的無限制的版本管理檢出的模式避免了通常的 因為排它檢出模式而引起的人工沖突;它的客戶端工具可以在絕大多數(shù)的平臺上使用。同樣,CVS也不提供對變更流程的自動管理功能。SVN作為一個開源的版本控制系統(tǒng),Subversion 管理著隨時間改變的數(shù)據(jù)。 這些數(shù)據(jù)放置在一個中央資料檔案庫中。 這個檔案庫很像一個普通的文件服務(wù)器, 不過它會記住每一次文件的變動。 這樣你就可以把檔案恢復到舊的版本, 或是瀏覽文件的變動歷史。Subversion 是一個通用的系統(tǒng), 可用來管理任何類型的文件, 其中包括了程序源碼。
分布式版本控制系統(tǒng)是Mercurial和Git。分布式版本控制系統(tǒng)根本沒有“中央服務(wù)器”,每個人的電腦上都是一個完整的版本庫,這樣,你工作的時候,就不需要聯(lián)網(wǎng)了,因為版本庫就在你自己的電腦上。既然每個人電腦上都有一個完整的版本庫,那多個人如何協(xié)作呢?比方說你在自己電腦上改了文件A,你的同事也在他的電腦上改了文件A,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。Git是一款免費、開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項目,分布式相比于集中式的最大區(qū)別在于開發(fā)者可以提交到本地,每個開發(fā)者通過克隆(git clone),在本地機器上拷貝一個完整的Git倉庫。
CVS作為最早的開源而且免費的集中式版本控制系統(tǒng),直到現(xiàn)在還有不少人在用。由于CVS自身設(shè)計的問題,會造成提交文件不完整,版本庫莫名其妙損壞的情況。同樣是開源而且免費的SVN修正了CVS的一些穩(wěn)定性問題,是目前用得最多的集中式版本庫控制系統(tǒng)。因此推薦使用這個版本安全管理項目團隊。
3 版本控制工具
Subversion版本控制工具,因為它的命令行工具叫做SVN,通常簡稱為SVN。SVN每個提交到中央服務(wù)器以排序的方式。在倉庫中,在提交和支付日的不同之間,作者提交信息,每次提交統(tǒng)一的增量版本號分配的中央服務(wù)器。
在一個軟件協(xié)同開發(fā)過程中推薦使用“復制-修改-合并策略”,即每個團隊成員檢查從中央存儲庫。工作拷貝就是你本地機器的一個普通的目錄,保存一些文件,你可以任意的編輯、編譯它們,你的工作拷貝是你的私有工作區(qū),Subversion不會自動把你的修改與其他人的合并,也不會把你的修改展示給別人。當你確定要“發(fā)布”自己的修改的時候,SVN會提供相應(yīng)命令,這樣你才能把你的工作和別人的工作合并,并使別人看到你的修改。
通常你的工作拷貝的每一個文件夾里有一個以 “SVN”名的文件夾,它用來幫助Subversion來識別哪個文件作個修改,以及哪個文件已經(jīng)過期等的。
4 使用SVN進行版本控制的注意事項
SVN作為一個版本控制工具,雖然在之前定制一些規(guī)則,但人為控制的還不能有效杜絕。(1)在修改上傳之前要更新到最新版本。假如沒有更新到最新版本,在執(zhí)行數(shù)據(jù)庫最新命令時,就會發(fā)生沖突浪費時間重新修改。所以要更新到最新版本。(2)不提交已編譯的源代碼。如果工作人員通過不了源代碼,就不會影響其他人。(3)軟件版本當中的單個文件“粒度”。有自然、簡單易懂的優(yōu)點。通常只需要一個小的功能或每完成一個修復致力于一個bug。(4)正確編寫版本號,及時上傳。以免出現(xiàn)混亂。
5 結(jié)語
在軟件協(xié)同開發(fā)過程中,有必要使用版本安全控制,不僅有利于方便軟件版本控制可以使簡單的數(shù)據(jù)庫回退到有記錄的版本,開發(fā)人員可以像像皮擦一樣擦掉不需要的就可以了,而且操作簡單、不容易出錯、整合問題的工作能讓開發(fā)工作變得更簡單,提高開發(fā)效率。
參考文獻
[1]竇文生,王偉,高楚舒,等.面向協(xié)作的軟件開發(fā)環(huán)境及其構(gòu)造方法.計算機科學與探索,2011,5:624-632.endprint