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.

主站蜘蛛池模板: 久久黄色毛片| 幺女国产一级毛片| 日本三区视频| 国产成人无码综合亚洲日韩不卡| 亚洲天堂2014| 亚洲欧洲国产成人综合不卡| AV不卡无码免费一区二区三区| 亚洲精品少妇熟女| 99精品国产电影| 99精品热视频这里只有精品7| 欧美午夜一区| 扒开粉嫩的小缝隙喷白浆视频| 亚洲欧洲日产国产无码AV| 一个色综合久久| 亚洲综合久久成人AV| 亚洲色图欧美一区| 热re99久久精品国99热| 五月婷婷丁香色| 综合色区亚洲熟妇在线| 午夜毛片福利| 精品乱码久久久久久久| 婷婷综合亚洲| 国产日韩欧美成人| 日韩在线影院| 99国产精品国产| 亚洲精品成人片在线观看| 国产精品美女网站| 亚洲无码高清免费视频亚洲| 亚洲a级在线观看| 日本高清有码人妻| 亚洲看片网| 久久精品国产精品一区二区| 亚洲另类色| 精品视频在线观看你懂的一区| AV无码国产在线看岛国岛| 国产乱子伦手机在线| 永久免费无码成人网站| 国产精品污视频| 国产自视频| 国产午夜无码片在线观看网站| 精品久久久久久中文字幕女 | 国产午夜无码专区喷水| 这里只有精品在线| 免费人成黄页在线观看国产| 欧美一区二区人人喊爽| 久久黄色视频影| 国产精品美人久久久久久AV| 亚洲精品777| 人与鲁专区| 18黑白丝水手服自慰喷水网站| 亚洲欧美在线看片AI| 国产精品无码一区二区桃花视频| 亚洲一级无毛片无码在线免费视频 | 波多野结衣一区二区三视频| 又黄又湿又爽的视频| 99re这里只有国产中文精品国产精品| 色综合激情网| 99视频有精品视频免费观看| 欧美特级AAAAAA视频免费观看| 高清欧美性猛交XXXX黑人猛交| 国产麻豆永久视频| 国产精品无码制服丝袜| 国产欧美日韩在线一区| 免费观看男人免费桶女人视频| 精品人妻一区无码视频| 极品私人尤物在线精品首页 | 日韩欧美国产区| 亚洲另类色| 国产在线专区| 99视频精品在线观看| 欧美中文字幕在线播放| 欧美乱妇高清无乱码免费| 亚洲高清中文字幕在线看不卡| 国产经典三级在线| 亚洲人精品亚洲人成在线| 美女黄网十八禁免费看| 久热精品免费| 99九九成人免费视频精品| 亚洲精品无码AV电影在线播放| 久久久亚洲色| 成人免费视频一区| 国产女同自拍视频|