999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SVN的校級統一信息系統版本管理系統的設計與實現

2011-10-18 08:10:42鐘文鋒付小龍
中國教育信息化 2011年12期
關鍵詞:定義系統

鐘文鋒,付小龍,杜 炤

(清華大學 計算機與信息管理中心,北京 100084)

基于SVN的校級統一信息系統版本管理系統的設計與實現

鐘文鋒,付小龍,杜 炤

(清華大學 計算機與信息管理中心,北京 100084)

清華大學服務于校級統一信息建設的版本管理系統,以開源工具為基礎,實現了對軟件系統研發版本的有效管理。版本管理系統采用先進的Subversion版本管理為基礎平臺,創新性地以基線加更新文件的版本管理模式,實現了清晰的更新管理、精確的版本定義和高效的自動編譯,同時支持多分支并行開發,解決了清華大學在消除信息孤島,建設校級統一信息系統的過程中,軟件系統更新頻繁、開發部署時間短、多系統并行開發整合等多方面困難,在清華大學的校園信息化建設實踐中取得了良好的應用效果。

版本管理;基線;變更控制

一、系統背景

清華大學信息系統建設目前正處于建設全局性統一信息系統階段。信息系統建設正由各業務部門的獨立業務系統建設,轉變為全局信息化的統一信息系統建設,信息整合成為現階段重要工作內容。

在統一信息系統不斷合并原業務子系統的過程中,原有基于CVS的版本管理方式遇到了很多挑戰。首先是代碼庫訪問權限不滿足要求。隨著統一信息系統規模的擴大,研發人員數量在增多。各個研發人員的角色和負責模塊都不盡相同,需要對每個研發人員精確地設置不同的權限。而CVS的權限認證只能到文件夾,不能滿足復雜權限控制的要求。其次是版本定義過程耗時過長。CVS在給系統打標簽的過程中需要依次處理文件夾下的所有文件,耗費了大量的時間,在信息系統業務范圍擴大、更新頻繁的情況下,定義版本效率低下的缺點愈加明顯。再次是缺少對版本和缺陷的檢索和統計功能。CVS沒有缺陷管理功能,研發團隊無法查詢缺陷的修改時間、是否已經發布等信息,也無法從宏觀上通過報表得知系統的更新頻率和開發人員的工作效果。這些原因都促使必須要升級版本管理系統以適應新的要求。

開源軟件SVN(Subversion)是CVS的替代產品,它在CVS的基礎上加強了對目錄版本的控制,在安全性方面也有了改善。但SVN系統也存在某些限制,如整體復制的版本定義方式雖然能很快完成標簽,但無法直接將某個文件標定到特定版本上,沒有版本狀態、缺陷管理功能等。因此在SVN基礎上,清華大學自主開發了版本管理系統,通過增加完整的版本定義、編譯、發布和缺陷記錄、檢索和統計等功能,實現對版本的全面高效管理。

二、系統功能

基于SVN的校級統一信息系統版本管理系統實現了以下功能:

1.記錄、檢索與統計缺陷

SVN提交文件時可以填寫注釋,在注釋中記錄修復的缺陷描述,但是這種缺陷記錄方式只能以文件或目錄為視角,列出歷史上曾對文件或目錄所做的修改及注釋。這無法滿足日常的以缺陷為視角的,查詢某個缺陷修改時間和是否已經部署上線的要求。為此,版本管理系統設計了規范的編譯申請入口,要求開發人員在提交編譯申請的同時必需填寫修改說明、部署說明等信息。這些申請信息以固定格式的歸檔郵件存儲在服務器上。版本管理系統提供歸檔郵件搜索服務,研發人員可方便地搜索缺陷信息。在此基礎上,版本管理系統還提供了缺陷統計功能,使得版本管理員能直觀地了解各個系統的升級頻率。

2.編譯發布自動化

學校正在運行的信息系統差異很大,有基于Java的 B/S(Browser/Server)應用,也有基于 PowerBuilder的C/S(Client/Server)程序。甚至有些系統部分功能基于B/ S,部分功能基于C/S。不同系統的編譯方式不一樣,但都須經過版本定義、編譯構建、文檔記錄和提交歸檔等發布過程。為此,對不同系統的版本發布過程做了分析,抽象出不同系統在發布過程中的相同操作,將這些共同的操作編寫成自動編譯發布腳本,并將系統間的區別記錄至配置文件,在版本管理系統中實現了一個自動化工具,能通過加載不同配置文件的方式對構架差異懸殊的系統統一進行編譯和發布。統一的自動化編譯發布替代了繁瑣的人工操作,顯著提高了版本管理的工作效率。

3.產出全量安裝包和增量補丁

版本管理編譯的結果通常是整個系統的全量安裝包,而全量安裝包在運行環境上的部署必須先暫停相關系統的服務,這樣會影響在線用戶的正常使用。如果只是修改某個功能的代碼,可通過部署增量補丁的方式避免暫停整個系統服務,避免影響用戶的使用。版本管理系統在編譯后同時產出全量安裝包和增量補丁。系統管理員可以選擇以全量或者增量方式部署更新。增量補丁部署方式無需重啟整個系統,增加了部署的靈活性。

4.支持多分支并行開發

統一信息系統劃分為多個子業務模塊,具體的子業務模塊由多位研發人員共同開發和維護。從單個子系統的角度,版本管理系統提供了共用的存儲池,使得子系統內部的開發人員能共享彼此的工作成果并完成任務。從整個統一信息系統的角度,版本管理系統將這些子模塊的修改彼此隔離,使之不相互影響。版本管理系統利用SVN的分支功能,通過給不同子業務系統開設不同分支的方式,支持了互不影響的并行開發。

三、關鍵技術

1.版本管理流程

規范且有效的流程是實現高效版本管理工作的前提。版本發布過程由版本管理員和開發人員共同完成。開發人員接到缺陷修改或者新功能開發任務后先確認子系統分支路徑,并在分支上修改提交代碼。在分支測試通過后,子系統開發人員將分支上的修改合并至主干。同時負責該模塊的開發人員填寫系統名稱、修改說明、修改文件列表等信息,向版本管理系統提交版本發布申請。版本管理系統接收申請后通知版本管理員審核。版本管理員審批申請,將單個或多個申請劃入本次要處理的版本中,并向版本管理系統發起自動工作命令。然后版本管理系統自動根據這些申請單定義新的版本基線,從SVN主干目錄上取出源代碼、編譯增量全量包、生成說明文檔、保存結果至共享目錄,最后向版本管理員、研發人員和系統管理員發出編譯發布任務結束通知。

2.基線加變更版本定義模型

基線加變更模型精確了定義版本,解決了子系統合并進度不一致和SVN整體復制定義基線之間的沖突。基線 (Baseline)是被明顯標識和記錄下來的源代碼整體版本。繪制基線的工作就是定義版本的過程。這個過程可以是整體拷貝,也可以通過對某些修改過的文件打標簽來完成。SVN通過整體復制定義基線,使用SVN能夠按照某個時刻來界定版本,凡是在當前已提交到應用系統SVN主干目錄的代碼都會被編譯。此外,如果有不希望將所有文件的最新修改都納入新版本的情況,如兩個子系統恰好同時合并分支至主干,其中一個分支已經合并結束且提交了編譯申請,而另一個分支剛合并了一部分代碼后發現有沖突,還需要手工合并和測試。這時定義的版本應該只包含已經合并結束分支的修改,如果簡單地以時間劃定版本,那新定義的版本將會錯誤地包含還未合并結束的分支上的修改?;€加變更模型解決了上述問題。

基線加變更模型:以舊基線和新更新文件的標識來定義新基線。新基線不再是簡單地以某個時刻為邊界來劃定,而是在某條舊基線基礎上,通過更新若干個新修改文件的節點作為新的基線。

如圖所示,每一條垂直向下的實直線表示單個文件的時間軸,在這個時間軸上修改過文件的時刻畫圈記錄文件的變更。用一條水平虛線將各個文件某個時刻上的修改狀態串連起來,這條虛線就是某個時刻源程序的一張快照,這就是基線?;€1表示系統初始時刻的版本,而基線3則表示軟件幾經修改后在當前時刻的版本。SVN通過整體復制的方式只能得到水平的基線,如果需要定義如基線2所示的版本,那使用SVN是無法直接操作的?;€加變更模型精確定義了版本:在B時刻將基線2定義為:在基線1的基礎上接受文件1、文件2和文件4的最新修改。通過這種方式就可以將存儲池內文件3在A時刻之后做的所有更新都忽略掉。

實際操作中在申請編譯時,開發人員需要確認分支合并入主干的文件清單。版本管理系統根據此文件清單變更基線并構件系統。

四、系統實現與應用效果

版本管理系統由兩部分構成:部署在Linux服務器上的SVN系統和部署在Windows服務器上的管理軟件。管理軟件使用Java語言開發,采用Apache Ant實現自動構建。開發人員提交的編譯申請以歸檔電子郵件形式存儲在磁盤上,通過Windows Search實現缺陷內容搜索。

清華大學版本管理系統現在負責學校24個信息系統的日常編譯發布工作,平均每天發布3.9個版本,支持了系統的研究生培養環節、境外短期研修課程管理等模塊使用多分支并行開發。增量補丁部署方式在綜合教務CS等系統中得到了應用,避免了關閉整個系統服務。

清華大學版本管理系統克服了校級統一信息系統建設過程中業務系統差異大,程序更新頻率高,版本管理工作量大等問題。實現了自動對構架差異懸殊的系統進行編譯發布,既提高了工作效率又保證了版本的準確性,有力支持了學校的信息化建設。

[1]張路,謝冰,梅宏等.基于構件的軟件配置管理技術研究[J].電子學報,2001(2):266.

[2]蔣東興,王進展,袁芳.數字校園校級統一信息系統建設研究與實踐[J].中山大學學報(自然科學版),2009,48(z1):12.

[3]董越.未雨綢繆-理解軟件配置管理[M].北京:電子工業出版社,2008.

[4]David E.Bellagio,Tom J.Milligan.王海鵬譯.軟件配置管理策略與IBM Rational ClearCase[M].北京:人民郵電出版社,2006.

[5]劉燕秋,勉玉靜,趙文耘.軟件配置管理中版本管理技術研究[J].計算機工程與應用,2003(21):68.

[6]于宏霞,陳凱,白英彩.基線技術在軟件配置管理過程中的應用[J].計算機應用與軟件,2006.23(2):43.

[7]倪曉峰,趙文耘,張捷.構件軟件配置管理以及其版本控制技術研究[J].計算機工程與應用,2009(2):94.

[8]BenCollins-Sussman,BrianW.Fitzpatrick,C.Michael Pilato.使用Subversion進行版本控制[OL].2011-02-20. http://svndoc.iusesvn.com/svnbook.

(編輯:楊馥紅)

TP399

A

1673-8454(2011)23-0055-03

猜你喜歡
定義系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
永遠不要用“起點”定義自己
海峽姐妹(2020年9期)2021-01-04 01:35:44
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
定義“風格”
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 久久精品免费看一| yjizz国产在线视频网| 香蕉99国内自产自拍视频| 福利片91| 亚洲国产精品一区二区高清无码久久| 狠狠色婷婷丁香综合久久韩国| 亚洲欧美不卡| 国产成人亚洲精品色欲AV | 国产 在线视频无码| 日韩精品一区二区三区大桥未久| 久久毛片网| 国产亚洲精品yxsp| 免费毛片全部不收费的| 天堂亚洲网| 毛片三级在线观看| 日本一本在线视频| 国内嫩模私拍精品视频| 四虎精品黑人视频| 美女高潮全身流白浆福利区| 91口爆吞精国产对白第三集| 成人一区专区在线观看| 综合五月天网| 日本不卡在线| 国产熟睡乱子伦视频网站| 国产农村妇女精品一二区| 国产成人精品高清不卡在线| 国产剧情无码视频在线观看| 国产人碰人摸人爱免费视频 | 精品国产中文一级毛片在线看 | 色爽网免费视频| 精品视频第一页| 免费国产福利| 91久久国产综合精品| 国产福利免费观看| 亚洲成aⅴ人片在线影院八| jizz在线免费播放| 手机永久AV在线播放| 国产成人无码Av在线播放无广告| 四虎永久免费在线| 午夜欧美在线| 久久久亚洲色| 97在线观看视频免费| 欧美成人午夜在线全部免费| 免费不卡在线观看av| 亚洲成人www| 91久久夜色精品国产网站| 国产精品护士| аⅴ资源中文在线天堂| 青青草原国产免费av观看| A级全黄试看30分钟小视频| 伊人久综合| 久久亚洲精少妇毛片午夜无码| 免费高清毛片| 国产全黄a一级毛片| 四虎精品黑人视频| 亚洲 欧美 中文 AⅤ在线视频| 亚洲成a人片| 色婷婷电影网| 最新国产你懂的在线网址| 国产丝袜丝视频在线观看| 亚洲美女视频一区| 视频一区视频二区中文精品| 91热爆在线| 一级毛片免费不卡在线| 91亚瑟视频| 久久毛片免费基地| 啪啪永久免费av| 久久不卡精品| 国产麻豆精品在线观看| 午夜人性色福利无码视频在线观看| av午夜福利一片免费看| 亚洲精品无码久久毛片波多野吉| 久久精品国产电影| 怡春院欧美一区二区三区免费| 高清无码不卡视频| 中文字幕1区2区| A级毛片无码久久精品免费| 亚洲一区网站| 欧美.成人.综合在线| 日韩毛片免费观看| 美女潮喷出白浆在线观看视频| 国产成人禁片在线观看|