分布式版本控制系统在海洋管理软件开发中的应用研究
2017-03-28郝杰
郝 杰
(辽宁师范大学城市与环境学院大连市116029)
分布式版本控制系统在海洋管理软件开发中的应用研究
郝 杰
(辽宁师范大学城市与环境学院大连市116029)
对分布式版本控制系统进行介绍,剖析其原理及优势,并对当前海洋管理软件的开发过程进行研究。通过引入分布式版本控制系统辅助提升海洋管理软件开发的效率,规范整个开发过程中的软件发布,新功能测试及上线,发布补丁等一整套流程,极大地提高了整个软件开发过程的系统性和便利性。
分布式版本控制;GIT;海洋管理软件
我国海域面积广阔,蕴藏着丰富的资源,为了对海洋进行系统管理,更好的对海洋资源系统进行开发,并对一些海域海岸带进行规划修复等,这些都需要开发专用的海洋管理软件,例如海洋环境分析软件、海域整治修复软件等。在这些海洋管理软件的开发过程中需要将已经完成的软件稳定版本上线,同时着手进行新功能的开发测试,稳定后将新功能集成到软件中,或者在新功能的开发过程中需要紧急为已经发布的稳定版本打补丁,这些问题在传统的软件开发方法中难以解决,并且开发过程繁琐,安全性低,稍有不慎,就会引发软件的错误,导致前功尽弃。所以急需一种版本控制系统来解决软件开发中的各种问题,使软件开发过程安全可控方便快捷。
1 版本控制系统介绍
软件工程师在软件开发过程中常常需要保留一个程序的许多不同版本,并且为它们做不同的标记,这种方法在很多大型的软件项目中经常使用,该方法虽然可行,但效率很低。首先,必须同时维护很多几乎一样的源码备份;而且极度依赖软件工程师的自我修养与开发习惯,经常因为这个原因使软件发生了很多错误;其次,一个程序同时存有两个以上的版本很有必要,例如:其中一个版本为开发完成的稳定版本;而另一个开发版本则有新的功能正在开发,这使得同一时间需要不同的版本。为了解决这些问题,诞生了自动化的版本控制系统,版本控制的功能在于跟踪记录整个软件的开发过程,包括软件本身和相关文档[1],版本控制可以记录工程项目中各个模块的改动,并且为每次改动做出标记,开发人员可以根据需要将工程项目还原到有标记的任何一次改动。
版本控制系统主要分为两种,一种是集中式版本控制系统,另一种是分布式版本控制系统。之前的版本控制系统使用集中式版本控制比较多,所有版本的工作在一个服务器进行,由中央服务器进行管理工作,指定权限,一次只能允许一个开发者工作,存在着较多的缺陷,对唯一的版本库过分依赖,一旦不能正常连接到集中式的版本库,整个系统就会陷入瘫痪[2]。为了解决集中式版本控制系统中存在的问题,诞生了分布式版本控制系统,Linux系统的创始人林纳斯·托瓦兹发明了分布式版本控制系统GIT,分布式版本控制系统允许开发者直接在各自的本地文件库中工作,多个开发者可以同时修改同一文件,每个文件库有合并各个改变的功能。分布式版本控制让开发者在没有网络的情况下也能够继续工作,也让开发者有充分的版本控制能力,而不需要经过中央服务器的许可。
2 分布式版本控制系统原理
分布式版本控制系统并不存在“中央服务器”,每个开发者的电脑上都是一个完整的版本库,这样的优势是工作时可以不需要网络连接,因为版本库就在开发者自己的电脑上。这种方式也有利于开发团队的多人协作,当一名开发者在自己的电脑上修改了文件A,此时同事也在他的电脑上修改了文件A,两个开发者之间只需要把各自的修改推送给对方,就可以互相看到对方的修改;同时分布式版本控制系统的安全性很高,每个开发者电脑里都有完整的版本库,当项目文件损坏时,可以从其他开发者电脑上进行拷贝。而集中式版本控制系统的中央服务器如果出现错误,则所有开发者都会受到影响。
如图1所示,GIT主要包括两部分,一部分是工作区,也就是开发者电脑中的项目目录,另一部分则是版本库,版本库中包括很多东西,其中最重要的就是称为stage(或index)的暂存区,还有则是Git自动创建的第一个分支master,以及指向master的一个指针HEAD。当开发者在电脑中对项目作出修改后输入git add命令,改动就会被提交到暂存区,而不是直接提交到master分支,这种设计避免了对master分支的频繁修改,当用户最终确定修改方案时,就可以用git commit命令将改动推送到master分支,将软件的稳定版本上线供用户使用。
图1 GIT原理图
如图2所示,当稳定版上线后还需要增加新的功能,这时就可以通过建立新的开发分支dev进行新功能的测试和提交,所有的一切改动都会保存在dev分支中,而不会对已经上线的稳定版本master形成干扰。当新功能测试完成后就可以加入稳定版本发布,可以通过将dev分支与master分支合并来完成。HEAD代表当前分支,HEAD指针指向dev分支时所做的修改就会保存在dev分支中,指向master分支时则代表当前分支是master分支,所做的改动不会对dev分支形成干扰,确保软件开发正常进行。
图2 GIT分支图
3 GIT在海洋管理软件开发中的应用
在海域整治修复系统的开发过程中,分布式版本控制系统极大地提高了软件开发的效率。首先可以使用GIT的克隆命令,直接从仓库同步海域整治修复系统的最新版本,同步完成后直接进行开发,降低了传统开发方法传输和配置上的困难,完成对项目的修改可以及时推送给其他开发人员,将代码合并后可以一并推送到版本库,GIT大大降低了多人协作进行软件开发的难度。在海洋整治修复软件的开发过程中,最重要的是可以使用GIT diff命令对比两次提交之间的代码或者项目差异,省去了人工对比造成的效率低下。
图3 海域整治修复系统主界面图
4 结语
在开发海域整治修复系统的过程中,通过对传统软件开发方法的分析,结合项目实际,采用了现代化的分布式版本控制系统来辅助软件开发,GIT操作简单,易上手,对软件的改动都可以记录下来,便于对代码的回滚撤销,同时可以方便地为多人协作开发提供支持,降低了团队软件开发的难度和繁琐性,大大提高了开发的效率。
[1]刘悦之.基于Git的分布式版本控制系统的设计与实现[J].科技传播,2012(22):197-198.
[2]宋冬生.Git——版本管理之利器[J].程序员,2007(11):118-119.
2017-03-02