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