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

基于Git的代碼托管平臺JLUCODE

2017-01-14 21:09:44侯效永李良偉孫召宋春雨楊昊
計算機時代 2016年12期

侯效永+李良偉++孫召+宋春雨+楊昊++韓霄松

摘 要: 軟件版本控制在軟件行業的作用十分重要,而大多數在校學生對版本控制的了解卻知之甚少。通過分析對比三大版本控制系統CVS、SVN、Git的優缺點,基于Git設計并實現了一個吉林大學代碼托管平臺JLUCODE,通過Git協議與Web平臺實現本地與服務器的通訊。該平臺主要實現代碼托管、統計分析、論壇討論和作業管理等功能,以幫助學生學習、理解版本控制的意義,提升自身的能力,更好地管理源碼、完成作業。

關鍵詞: 版本控制; 代碼托管; Git; 代碼分析

中圖分類號:TP317 文獻標志碼:A 文章編號:1006-8228(2016)12-32-03

Abstract: Software version control plays a very important role in the software industry, but most of the students in the school know little about it. In view of this situation, the advantages and disadvantages of three revision control system, CVS, SVN, and Git are analyzed and compared in this paper. And a code hosting platform based on Git, JLUCODE, for the teachers and students of Jilin University is designed and implemented, the communications between local and server are realized through the Git protocol and Web platform. The platform mainly realizes the functions of code hosting, statistical analysis, forums and exercises management, to help students to learn and understand the meaning of version control, enhance their ability to better manage the source code, to complete the work.

Key words: version control; code hosting; Git; code analysis

0 引言

版本控制(Revision Control)是一種軟件工程技巧,借此能在軟件開發的過程中,確保由不同人所編輯的同一代碼文件都得到同步[1]。軟件版本控制致力于幫助程序員管理他們的項目資產,這是一門不可或缺的技術,如若軟件的開發沒有版本控制,開發項目定然會岌岌可危[2-3]。

為了讓更多的程序員能有效并且更加簡單地管理自己的源碼資產,代碼托管便應運而生。代碼托管(Code Hosting)是基于版本控制系統開發的,也可以說是由版本控制系統派生出來的,只有以版本控制系統為基礎而設計開發的代碼托管平臺才有其存在的必要,版本控制是代碼托管的基石,其優劣也影響著托管平臺的優劣[4-5]。

1 版本控制和代碼托管平臺

1.1 三大主流版本控制系統

在當今的軟件開發行業中,主流的版本控制系統分別是CVS(并發版本系統)、SVN(集中式版本控制系統)、Git(分布式版本控制系統)。其中CVS出現最早,是1986年Dick Grune為了解決社區人員分散、合作不便等問題設計開發的一個版本控制工具。而SVN則是CollabNet為了彌補CVS在使用中所發現的不足,于2000年開發完成并發布的另一款版本控制工具。Git是于2005年發布的,主要是由于Bitkeeper收回對Linux社區的授權,Linus不愿使用CVS等其他版本控制工具而研發出來。表1展示三者功能的簡單對比。

網絡速度的快慢,決定著版本控制軟件將代碼提交到服務器上的進度,網速慢可能導致開發不連貫。而Git的許多操作都在本地完成,不同于CVS及SVN每次提交都需要與服務器交互,只需將一個階段性或最終版本提交到服務器。如此,以Git作為代碼托管平臺的版本控制系統,只需在網絡良好的時候,向托管平臺提交便可,既方便又不影響開發。

1.1.2 Git的原子提交方式優勢更大

CVS每次提交都是對單個文件進行版本的分別修改,Git則簡易得多,Git是根據SHA-1算法生成惟一commitid[4]。因此,當想跟蹤以前某次提交的代碼時,不需要考慮到底提交了哪些文件,所有代碼會一次性的提取出來。相比之下,Git在這方面更占優勢。

1.1.3 Git合并分支簡易得多[6]

無論是建立新的分支,還是在分支之間切換,相比CVS等版本控制系統,Git的分支管理則容易許多,它只需要一條命令即可完成,不需要再去新建多余的目錄。而且,分支合并之后,提交的歷史并沒有清除,而是依然保留,這樣更加有助于分支的管理和追蹤。

1.2 優秀代碼托管平臺簡介

SourceForge是一個基于Web的服務,提供了一個源代碼庫,下載鏡像,bug跟蹤等功能。它作為軟件開發人員可以用它來控制和管理的中心位置自由和開放源碼軟件的開發。雖然SourceForge上是第一個提供代碼托管服務的免費開源項目,但許多用戶和項目現在已經轉移到GitHub上,或其他軟件托管設施,亦或自托管他們的軟件。

GitHub是一個利用Git進行版本控制、專門用于存放軟件代碼與內容的共享虛擬主機服務。它由GitHub公司的開發者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails編寫而成。截止2015年,GitHub已經成為世界上代碼存放量最大的網站。然而,GitHub在國內也遭遇許多困難,網絡封鎖、中間人攻擊、DOS攻擊、旁觀者攻擊等。當然這些也并沒有影響它在代碼托管中“霸主”的地位。

上述三個托管平臺都是由國外的公司研發的,國內的Git@OSC是開源中國社區所設計開發的一款基于Git版本控制系統的代碼托管平臺。由于開源中國積累了大量用戶,在Git@OSC推出后,便受到了許多人的關注,因為GitHub的一些不穩定因素,所以許多人都希望Git@OSC能取代GitHub在中國的地位。然而,Git@OSC想要超越GitHub在國內的地位,還是比較困難的。而大多數代碼托管平臺都是基于Git開發的,如Gitlab、BitBucket等,Git已然成為一股潮流。因此我們搭建的代碼托管平臺同樣以Git為基礎。

雖然國外的代碼托管平臺功能齊全,但是由于網絡原因,服務并不穩定,而國內的托管平臺少有完全免費的。所以為了有效的管理代碼,方便師生增強對版本控制的理解,提高開發效率,避免重復開發,我們設計并開發JLUCODE。

2 JLUCODE平臺介紹

本平臺采用B/S[7](Browser/Server)結構,訪問本平臺無需考慮用戶所使用的系統環境,只需有瀏覽器(即B端)和網絡即可訪問我們的服務器(即S端)。

2.1 功能簡介

本平臺面向的用戶是高校師生,主要功能結構如圖1所示。

[JLUCODE系統][教學模塊][用戶管理][版本庫模塊][數據分析][論壇模塊][作業評分][設置答案][發布作業][用戶驗證][修改用戶][添加用戶][源碼查看][歷史版本][創建庫][分析總結][分類分析][單庫分析][進行討論][發布話題][創建話題]

2.1.1 版本庫操作的基本功能

用戶可以在本地通過Git工具、Git命令行或者一些開發工具的Git插件將代碼同步到我們的服務器。版本庫一般通過JLUCODE直接在網上創建,創建時可以對版本庫的訪問策略進行設置,如限制推送(授權訪問、指定用戶)、限制克隆,推送以及限制查看,克隆和推送等。用戶可以通過Git將版本庫提交、同步到平臺服務器中,然后平臺站點獲取服務器中的版本庫數據,并以網頁形式展示出來。除此以外,具有權限的用戶可以查看版本庫的各分支的差異,查看指定版本庫的提交次數及每次提交的所有源代碼。

2.1.2 版本庫源代碼的分析功能

JLUCODE提供對版本庫的源代碼行數、有效代碼行數(總行數-注釋行數-空行行數)等屬性進行分析,并且提供同一版本庫各分支的數據視圖,如圖2。除了提供對單個版本庫分析,我們還提供對不同開發語言進行分類的分析。這些數據會生成報表,能以PDF格式導出,作為個人求職和升學的佐證。

2.1.3 論壇功能

JLUCODE還提供BBS論壇功能,開發人員及廣大用戶可以在此互相交流解決疑惑。

2.1.4 教學功能

JLUCODE面向我校師生,我們為師生提供了作業功能。通過JLUCODE,教師在平臺發布作業,學生只需將本地代碼同步到平臺之中,然后將對應源碼庫設為作業答案源碼庫即可。

2.2 實現技術

平臺前端頁面采用框架Bootstrap進行排布設計,結合HTML、CSS等前端技術實現。后臺程序以ThinkPHP為框架,以PHP為主要開發語言,通過PHP實現數據的操作,后臺與數據庫MySQL的連接、查詢、編輯等數據交互是通過PDO數據對象來實現。ThinkPHP是一個快速、兼容而且簡單的輕量級國產PHP開發框架,誕生于2006年初,原名FCS,2007年正式更名為ThinkPHP,遵循Apache2開源協議發布,從Struts[8]結構移植過來并做了改進和完善,使用面向對象的開發結構和MVC模式[9];然后在服務器搭建Git服務,以使本地Git客戶端可正常與服務器通信。后臺通過PHP獲取服務器中Git的信息,并在前端通過AJAX或者表單請求數據時,將數據返回,并顯示在頁面中。圖3為本平臺的技術框架。

3 結束語

代碼托管平臺彌補了許多開發者對使用版本控制系統上手慢的問題,對于軟件開發具有舉足輕重的作用,在很大程度上保證程序代碼安全的同時,還使身處異地的團隊成員可以同步開發,不至影響進度,從而提高開發效率。本文構建的JLUCODE平臺不僅解決了上述問題,更是將托管平臺服務的開發者市場由社會向高校轉移,讓眾多在校學生接觸到代碼托管服務,增強版本控制意識。下一步的工作重點是將JLUCODE進行大力推廣,讓更多的學生了解并學會使用代碼托管平臺。

參考文獻(References):

[1] Wikipedia contributors. Revision Control System [G/OL].

Wikipedia,2015(20150122) [2016-03-30].

[2] C.Micbael Pilato.使用Subversion進行版本控制 [M].開明出

版社,2009.

[3] Eric Brechner.代碼之殤[M].機械工業出版社, 2013.

[4] 蔣鑫.Git權威指南[M].機械工業出版社,2011.

[5] 羅力格(Jon Loeliger).Git版本控制管理[M].東南大學出版

社,2010.

[6] 宋冬生.Git——版本管理之利器[J].程序員,2007.11:

118-119

[7] 李云云.淺析B/S和C/S體系結構[J].科學之友,2011.1:6-8

[8] 高宇靖.基于MVC設計模式的Struts框架的探索[D].吉林大

學碩士學位論文,2004.

[9] 李霞.MVC設計模式的原理與實現[D].吉林大學碩士學位論

文,2004.

主站蜘蛛池模板: 亚洲精品国产日韩无码AV永久免费网 | 亚洲av日韩av制服丝袜| 日韩在线影院| 久久婷婷色综合老司机| 国产香蕉在线视频| 免费在线色| 真人免费一级毛片一区二区| 波多野结衣在线一区二区| 国内精品免费| 国产毛片基地| 欧美劲爆第一页| 高潮爽到爆的喷水女主播视频| 一级毛片在线播放| 黄色a一级视频| 国产精品香蕉| 国产成人高清精品免费| 国产成人综合久久| www.youjizz.com久久| 日本人又色又爽的视频| 特级做a爰片毛片免费69| 中文无码影院| 精品久久久久无码| 一区二区三区成人| 亚洲视屏在线观看| 永久毛片在线播| 爱做久久久久久| 国产亚洲精品va在线| 幺女国产一级毛片| 99视频国产精品| 日本手机在线视频| 国产波多野结衣中文在线播放 | 国产三级a| 国产精品漂亮美女在线观看| 成人年鲁鲁在线观看视频| 91探花在线观看国产最新| 欧美一级夜夜爽| 国产尤物视频网址导航| 日本91在线| 91成人精品视频| 成人亚洲视频| 91久久精品日日躁夜夜躁欧美| 四虎永久在线| 国产在线视频欧美亚综合| 亚洲三级网站| 在线中文字幕日韩| 一本视频精品中文字幕| 日本高清在线看免费观看| 成年免费在线观看| 国产成a人片在线播放| 国产午夜在线观看视频| 网友自拍视频精品区| 亚洲区一区| 理论片一区| 中文国产成人精品久久| 欧美成人亚洲综合精品欧美激情 | 亚洲中文字幕精品| 亚洲三级影院| 高清不卡毛片| 国产69精品久久| 在线国产91| 亚洲一区精品视频在线| 在线观看免费AV网| 欧美www在线观看| a毛片在线| 亚洲无码视频喷水| 亚洲日韩国产精品综合在线观看| 97国产成人无码精品久久久| 喷潮白浆直流在线播放| Jizz国产色系免费| 欧美不卡在线视频| 日本福利视频网站| 波多野结衣第一页| 国产亚洲高清视频| 五月天福利视频| 亚洲第一成年网| 国产99欧美精品久久精品久久| 免费毛片网站在线观看| 欧美亚洲国产精品久久蜜芽| 国产精品刺激对白在线| 亚洲男人的天堂久久香蕉网| 亚洲人成色在线观看| 免费国产好深啊好涨好硬视频|