基于SVN的校级统一信息系统版本管理系统的设计与实现

来源 :中国教育信息化·高教职教 | 被引量 : 0次 | 上传用户:bitgxd
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:清华大学服务于校级统一信息建设的版本管理系统,以开源工具为基础,实现了对软件系统研发版本的有效管理。版本管理系统采用先进的subvcr$1013版本管理为基础平台,创新性地以基线加更新文件的版本管理模式,实现了清晰的更新管理、精确的版本定义和高效的自动编译,同时支持多分支并行开发,解决了清华大学在消除信息孤岛,建设校级统一信息系统的过程中,软件系统更新频繁、开发部署时间短、多系统并行开发整合等多方面困难,在清华大学的校园信息化建设实践中取得了良好的应用效果。
  关键词:版本管理:基线:变更控制
  中图分类号:TP399 文献标识码:A 文章编号:1673-8454(2011)23-0055-03
  一、系统背景
  清华大学信息系统建设目前正处于建设全局性统一信息系统阶段。信息系统建设正由各业务部门的独立业务系统建设,转变为全局信息化的统一信息系统建设,信息整合成为现阶段重要工作内容。
  在统一信息系统不断合并原业务子系统的过程中,原有基于CVS的版本管理方式遇到了很多挑战。首先是代码库访问权限不满足要求。随着统一信息系统规模的扩大,研发人员数量在增多。各个研发人员的角色和负责模块都不尽相同,需要对每个研发人员精确地设置不同的权限。而CVS的权限认证只能到文件夹,不能满足复杂权限控制的要求。其次是版本定义过程耗时过长。CVS在给系统打标签的过程中需要依次处理文件夹下的所有文件,耗费了大量的时间,在信息系统业务范围扩大、更新频繁的情况下,定义版本效率低下的缺点愈加明显。再次是缺少对版本和缺陷的检索和统计功能。CVS没有缺陷管理功能,研发团队无法查询缺陷的修改时间、是否已经发布等信息,也无法从宏观上通过报表得知系统的更新频率和开发人员的工作效果。这些原因都促使必须要升级版本管理系统以适应新的要求。
  
  开源软件SVN(Subversion)是CVS的替代产品,它在CVS的基础上加强了对目录版本的控制,在安全性方面也有了改善。但SVN系统也存在某些限制,如整体复制的版本定义方式虽然能很快完成标签。但无法直接将某个文件标定到特定版本上,没有版本状态、缺陷管理功能等。因此在SVN基础上,清华大学自主开发了版本管理系统,通过增加完整的版本定义、编译、发布和缺陷记录、检索和统计等功能,实现对版本的全面高效管理。
  二、系统功能
  基于SVN的校级统一信息系统版本管理系统实现了以下功能:
  1.记录、检索与统计缺陷
  SVN提交文件时可以填写注释,在注释中记录修复的缺陷描述,但是这种缺陷记录方式只能以文件或目录为视角,列出历史上曾对文件或目录所做的修改及注释。这无法满足日常的以缺陷为视角的,查询某个缺陷修改时间和是否已经部署上线的要求。为此,版本管理系统设计了规范的编译申请入口,要求开发人员在提交编译申请的同时必需填写修改说明、部署说明等信息。这些申请信息以固定格式的归档邮件存储在服务器上。版本管理系统提供归档邮件搜索服务,研发人员可方便地搜索缺陷信息。在此基础上,版本管理系统还提供了缺陷统计功能。使得版本管理员能直观地了解各个系统的升级频率。
  2.编译发布自动化
  学校正在运行的信息系统差异很大,有基于Java的B/S fBrowser/Server)应用,也有基于PowerBuilder的C/S(Client/Server)程序。甚至有些系统部分功能基于B/S,部分功能基于C/S。不同系统的编译方式不一样,但都须经过版本定义、编译构建、文档记录和提交归档等发布过程。为此,对不同系统的版本发布过程做了分析,抽象出不同系统在发布过程中的相同操作,将这些共同的操作编写成自动编译发布脚本,并将系统间的区别记录至配置文件,在版本管理系统中实现了一个自动化工具,能通过加载不同配置文件的方式对构架差异悬殊的系统统一进行编译和发布。统一的自动化编译发布替代了繁琐的人工操作,显著提高了版本管理的工作效率。
  3.产出全量安装包和增量补丁
  版本管理编译的结果通常是整个系统的全量安装包,而全量安装包在运行环境上的部署必须先暂停相关系统的服务,这样会影响在线用户的正常使用。如果只是修改某个功能的代码。可通过部署增量补丁的方式避免暂停整个系统服务,避免影响用户的使用。版本管理系统在编译后同时产出全量安装包和增量补丁。系统管理员可以选择以全量或者增量方式部署更新。增量补丁部署方式无需重启整个系统,增加了部署的灵活性。
  4.支持多分支并行开发
  统一信息系统划分为多个子业务模块,具体的子业务模块由多位研发人员共同开发和维护。从单个子系统的角度,版本管理系统提供了共用的存储池,使得子系统内部的开发人员能共享彼此的工作成果并完成任务。从整个统一信息系统的角度,版本管理系统将这些子模块的修改彼此隔离,使之不相互影响。版本管理系统利用SVN的分支功能。通过给不同子业务系统开设不同分支的方式,支持了互不影响的并行开发。
  三、关键技术
  1.版本管理流程
  规范且有效的流程是实现高效版本管理工作的前提。版本发布过程由版本管理员和开发人员共同完成。开发人员接到缺陷修改或者新功能开发任务后先确认子系统分支路径,并在分支上修改提交代码。在分支测试通过后,子系统开发人员将分支上的修改合并至主干。同时负责该模块的开发人员填写系统名称、修改说明、修改文件列表等信息,向版本管理系统提交版本发布申请。版本管理系统接收申请后通知版本管理员审核。版本管理员审批申请,将单个或多个申请划人本次要处理的版本中,并向版本管理系统发起自动工作命令。然后版本管理系统自动根据这些申请单定义新的版本基线,从SVN主干目录上取出源代码、编译增量全量包、生成说明文档、保存结果至共享目录,最后向版本管理员、研发人员和系统管理员发出编译发布任务结束通知。
  2.基线加变更版本定义模型
  基线加变更模型精确了定义版本,解决了子系统合并进度不一致和SVN整体复制定义基线之间的冲突。基线(Baseline)是被明最标识和记录下来的源代码整体版本。绘制基线的工作就是定义版本的过程。这个过程可以是整体拷贝,也可以通过对某些修改过的文件打标签来完成。SVN通过整体复制定义基线,使用SVN能够按照某个时刻来界定版本,凡是在当前已提交到应用系统SVN主干目录的代码都会被编译。此外,如果有不希望将所有文件的最新修改都纳入新版本的情况,如两个子系统恰好同时合并分支至主干,其中一个分支已经合并结束且提交了编泽申请,而另一个分支刚合并了一部分代码后发现有冲突,还需要手_T合并和测试。这时定义的版本应该只包含已经合并结束分支的修改,如果简单地以时间划定版本,那新定义的版本将会错误地包含还未合并结束的分支上的修改。基线加变更模型解决了上述问题。
  基线加变更模型:以旧基线和新更新文件的标识来定义新基线。新基线不再是简单地以某个时刻为边界来划定,而是在某条旧基线基础上,通过更新若干个新修改文件的节点作为新的基线。
  如图所示,每一条垂直向下的实直线表示单个文件的时间轴,在这个时间轴上修改过文件的时刻画圈记录文件的变更。用一条水平虚线将各个文件某个时刻上的修改状态串连起来,这条虚线就是某个时刻源程序的一张快照,这就是基线。基线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等系统中得到了应用。避免了关闭整个系统服务。
  清华大学版本管理系统克服了校级统一信息系统建设过程中业务系统差异大,程序更新频率高,版本管理工作量大等问题。实现了自动对构架差异悬殊的系统进行编译发布,既提高了工作效率又保证了版本的准确性,有力支持了学校的信息化建设。
其他文献
苏州市盲聋学校创建于1929年,几经风雨,2012年一座集古典美与现代化的特殊教育学校矗立在姑苏城外、天平山下、寿桃湖畔。回顾我校发展历程,从1996年率先将电脑引入聋校课程教学,到2000年率先完成校园局域网,再到2012年初步建成数字化校园,我们深刻地体会到,在培养特殊儿童成为社会有用之才的道路上,信息化给特殊教育插上了腾飞的翅膀。  一、以先进的理念推进数字化校园建设  自2008年市委市政
表演游戏是幼儿围绕故事以角色扮演的方式展开的游戏活动。表演游戏是幼儿园的经典游戏,也是合乎幼儿“能编会导会演”天性的创造性游戏活动,具有多重发展和教育价值。比如,幼儿间协商合作表演的过程为形成团体意识、练习社交技能、学会合作提供了天然而真实的应用情境;通过扮演角色创造性再现故事的过程则是发展幼儿想象力和创造力,深入理解故事,感受角色情绪情感,提高言语技巧,体验“角色”概念,实现间接经验向直接经验迁
(以下实录文字中,“鄢”代表鄢超云教授,“杨”代表杨杼悦同学。)  鄢:小杨同学,你学了翻转课堂“学习品质评价”这一部分的网络授课内容,有什么想法吗?  杨:一说到学习品质,我想到的竟然是我自己。我对幼儿园已经没有印象了,但是我深刻地记得小学的时候,我的数学成绩一塌糊涂,即使后来我遇到了很多很好的数学老师,但都再也激发不起我对数学的喜爱。究其原因,就是在我小学的时候,失去了获得正确的数学思维和方法
2011年12月15日,宏碁集团与神州龙芯公司在北京举行了以“精诚合作、云启未来”为主题的战略合作签约仪式。宏碁中国执行副总裁蓝烨、神州龙芯公司总裁陈义与中国科学院计算所研究员、中国工程院院士倪光南出席了此次盛会。宏碁中国服务器事业部总经理闻贤与神州龙芯副总裁王天恩签署了战略合作协议。融合各自的技术和资源优势,宏碁集团与神州龙芯将展开全面合作,共同为行业用户打造全新的云计算应用解决方案。  宏碁中
摘 要:在Linux操作系统中,利用IPTABLES服务实现了防火墙、NAT功能,并将端口转发规则和Web应用服务相结合,实现了用户Web认证功能,保证了内网计算机的安全。经过测试,系统能够高效稳定地运行,实现了设计目标。  关键词:防火墙 网络地址转换 端口转发 访问日志  中图分类号:TP393.08 文献标识码:B 文章编号:1673-8454(2009)03-0056-03    一、引言
日前,2009全国高职高专计算机系主任年会在长春举行,会议由教育部高等学校高职高专计算机类专业教学指导委员会主办,以“推动校企合作,加强专业建设,深化课程改革”为主题,探讨如何构建IT职业教育的新模式。本刊记者就此采访了教育部高职高专计算机类专业教学指导委员会秘书长、大连东软信息技术职业学院品牌与战略发展部部长吴建宁老师,以及英特尔企业解决方案部教育行业中国大区经理贾晓明先生。  大连东软信息技术
我国幼儿园园本课程广泛兴起于本世纪初,特别是2003年幼儿园园本教研制度建设项目的推进之后,越来越多的幼儿园开始建构自己的园本课程。一些地方教育部门还将园本课程建设纳入对幼儿园考核评估和园长个人资格晋升评定的内容中。2015年颁布的《幼儿园园长专业标准》要求园长把文化育人作为办园的重要内容和途径,强调园长要重视利用自然环境和社会(社区)资源,丰富幼儿园教育活动。于是,近年来,深入挖掘利用自然资源和
9月19日,中国自主云计算服务提供商——曙光公司在北京发布云计算策略,曙光公司云计算新格局完整浮出水面。北京、成都、无锡、重庆、哈尔滨等城市的政府重要领导,国家开发银行、中国科学院等相关部门领导,云计算产业链合作伙伴以及各行业云计算用户出席了此次发布会,共同见证曙光公司云计算战略及产品发布,与曙光公司一同启动中国“云”动力。  独特应用模式:“城市云”   曙光公司借助近几年来在“城市云计算中心”
摘 要:以全国多媒体课件大赛二等奖课件“跨文化交际”为例,从心理学角度总结了Flash课件开发的六大原则,即设计阶段主要遵循统一性原则、模块化原则、文本图示化—图片动态化原则及放大有效区域原则,制作阶段主要遵循分散—聚合原则和“登门槛”原则。  关键词:Flash课件;心理学;课件设计;课件制作;原则;“跨文化交际”  中图分类号:TP311.56文献标识码:B文章编号:1673-8454(2
3月1日,锐捷网络网络出口产品线增添新成员——PowerCache内容加速系统。该系统能将外网热点资源自动缓存在本地,供用户直接从内网下载。PowerCache给用户带去了体验与成本的双丰收——内网用户访问已缓存资源,速度可以高达10MB/S,节省出口带宽20%~50%。  随着业务应用及用户上网习惯的发展,用户对于在线视频、下载等体验的要求越来越高。传统网络中,大部分局域网都有流控产品将用户的网