CN110377335A - 代码集成加速方法及系统 - Google Patents

代码集成加速方法及系统 Download PDF

Info

Publication number
CN110377335A
CN110377335A CN201910680170.1A CN201910680170A CN110377335A CN 110377335 A CN110377335 A CN 110377335A CN 201910680170 A CN201910680170 A CN 201910680170A CN 110377335 A CN110377335 A CN 110377335A
Authority
CN
China
Prior art keywords
branch
integrated
code
integrates
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910680170.1A
Other languages
English (en)
Other versions
CN110377335B (zh
Inventor
苏玲
王潇俊
李海涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Ctrip Business Co Ltd
Original Assignee
Shanghai Ctrip Business Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Ctrip Business Co Ltd filed Critical Shanghai Ctrip Business Co Ltd
Priority to CN201910680170.1A priority Critical patent/CN110377335B/zh
Publication of CN110377335A publication Critical patent/CN110377335A/zh
Application granted granted Critical
Publication of CN110377335B publication Critical patent/CN110377335B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种代码集成加速方法及系统,包括以下步骤:S1:配置LM服务,从集成分支的HEAD拉取LM分支,逐个将各个特性分支集成到LM分支;S2:判断集成过程中是否存在冲突,若是,进入步骤S3;若否,进入步骤S4;S3:停止集成,并上报冲突信息;S4:将各个特性分支集成于LM分支;S5:将步骤S4中得到的LM分支集成至集成分支中。各个功能的集成活动只需在代码平台上配置LM服务即可,无需项目团队搭建各自的代码集成环境,无需手工执行代码集成的命令,也无需手工触发编译、打包和部署。很大程度上减少了分支集成的繁琐性和低效性。

Description

代码集成加速方法及系统
技术领域
本发明涉及一种代码集成加速方法及系统。
背景技术
在软件项目开发过程中,项目通常有多个功能一起开发,开发的初期为了减少彼此干扰,会为每个功能创建特性分支。由于开发初期各个分支之间具有较强独立性,受研发不可控因素的影响,对于未来的某个时间点,多个特性功能会存在是否能集成的问题。并且在各特性分支进入到稳定阶段之后,必然需要集成在一起,然后一起被编译、打包和测试。
实际开发过程中,多个特性分支难免会遇到修改公用文件的情况,如果各个开发者不及时关注公共文件的变化,那么以后各特性分支之间很可能出现难以合并集成的情况。
由此可见,软件开发领域中会遭遇这样的难题,一方面,特性分支开发的模式通过单独拉分支做开发,这样可以降低新功能给整个系统带入的风险;但另一方面,如果不经常做集成,等到几个特性分支计划一起上线时,集成会变得很困难。
发明内容
本发明要解决的技术问题是为了克服现有技术中软件开发过程中开发初期各个功能的特性分支独立开发后期集成容易有冲突且特性分支集成依赖开发者手工集成、工作量较大且繁琐的缺陷,提供一种代码集成加速方法及系统。
本发明是通过下述技术方案来解决上述技术问题:
一种代码集成加速方法,其特点在于,包括以下步骤:
S1:配置LM服务,从集成分支的HEAD拉取LM分支,逐个将各个特性分支集成到LM分支;
S2:判断集成过程中是否存在冲突,若是,进入步骤S3;若否,进入步骤S4;
S3:停止集成,并上报冲突信息;
S4:将各个特性分支集成于LM分支;
S5:将步骤S4中得到的LM分支集成至集成分支中。
优选地,该代码集成加速方法还包括配置CI的步骤,其中步骤S4中还包括:自动编译、打包和部署LM分支中最新的代码。
优选地,步骤S4和步骤S5之间,还包括步骤SP:部署后判断所集成的LM分支中是否存在问题功能,若是,进入步骤S1;若否,进入步骤S5,其中步骤S1中还包括:修改LM配置,将问题功能对应的特性分支剔除。
优选地,集成过程通过Git内置Hook机制实现。
优选地,上报冲突信息包括在代码平台上显示冲突信息以及发送冲突信息至干系人。
本发明还提供一种代码集成加速系统,其特点在于,包括配置模块、判断模块、集成模块和输出模块,其中,
该配置模块用于配置LM服务;
该集成模块用于从集成分支的HEAD拉取LM分支,逐个将各个特性分支集成到LM分支;
该判断模块用于判断集成过程中是否存在冲突;
该输出模块用于在存在冲突时停止集成,并上报冲突信息;
该集成模块还用于在未存在冲突时将各个特性分支集成于LM分支,并将更新的LM分支集成至集成分支中以形成更新的集成分支。
优选地,该配置模块还用于配置CI,
该集成模块还用于自动编译、打包和部署LM分支中最新的代码。
优选地,该判断模块还用于在部署后判断所集成的LM分支中是否存在问题功能,
在存在问题功能的情况下,该配置模块还用于修改LM配置,将问题功能对应的特性分支剔除。
优选地,该集成模块包括Git内置Hook机制。
优选地,该输出模块用于在代码平台上显示冲突信息以及发送冲突信息至干系人。
本发明的积极进步效果在于:各个功能的集成活动只需在代码平台上配置LM服务即可,无需项目团队搭建各自的代码集成环境,无需手工执行代码集成的命令,也无需手工触发编译、打包和部署。很大程度上减少了分支集成的繁琐性和低效性。
附图说明
图1为本发明一实施例的代码集成加速方法基本流程图。
图2为本发明一实施例的代码集成加速系统的结构框图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
参考图1和图2,在一实施例中,代码集成加速方法包括:
步骤101:配置LM服务,从集成分支的HEAD拉取LM分支,逐个将各个特性分支集成到LM分支;
步骤102:判断集成过程中是否存在冲突,若是,进入步骤103;若否,进入步骤104;
步骤103:停止集成,并上报冲突信息;
步骤104:将各个特性分支集成于LM分支;
步骤105:将步骤104中得到的LM分支集成至集成分支中。
对应的代码集成加速系统,包括配置模块11、判断模块13、集成模块12和输出模块14,其中,
该配置模块11用于配置LM服务;
该集成模块12用于从集成分支的HEAD拉取LM分支,逐个将各个特性分支集成到LM分支;
该判断模块13用于判断集成过程中是否存在冲突;
该输出模块14用于在存在冲突时停止集成,并上报冲突信息;
该集成模块12还用于在未存在冲突时将各个特性分支集成于LM分支,并将更新的LM分支集成至集成分支中以形成更新的集成分支。
具体来说,在代码平台上配置了具体的LM服务,那么借助Git内置Hook机制,不管是特性分支还是集成分支,只要有一个分支的代码发生了变更,那么,LM对应的分支就会重新生成,先从base分支(集成分支)的HEAD拉取LM分支,然后,逐个地把source分支(特性分支)merge(集成)到LM分支。
在Merge的过程中,一旦报conflict,则停止merge,一方面代码平台上显示冲突信息;另一方面,LM服务自动发email给干系人,通知他们几个特性分支merge时出现了冲突,需要及时解决冲突。
如果没有冲突,LM就把几个特性分支都合入到了LM分支,此时,如果还配置了CI,则LM分支最新的代码会被自动编译、打包和部署。部署后如果发现集成出来的部分功能有问题,那么可以修改LM的配置,把有问题的特性分支从source分支中剔除出去,LM服务会重新编译、打包和部署。如此反复,直到项目团队筛选出可以上线的特性分支最大的组合。最后,团队把通过LM挑出来可以用于上线的分支merge到base分支(集成分支)上去,以便团队成员可以及时获取最新最稳定的代码,基于此拉取新分支进行后续的开发。
通过本发明集成的活动,只需在代码平台上配置LM服务即可,无需项目团队搭建各自的代码集成环境,无需手工执行代码集成的命令,也无需手工触发编译、打包和部署。很大程度上减少了分支集成的繁琐性和低效性。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

Claims (10)

1.一种代码集成加速方法,其特征在于,包括以下步骤:
S1:配置LM服务,从集成分支的HEAD拉取LM分支,逐个将各个特性分支集成到LM分支;
S2:判断集成过程中是否存在冲突,若是,进入步骤S3;若否,进入步骤S4;
S3:停止集成,并上报冲突信息;
S4:将各个特性分支集成于LM分支;
S5:将步骤S4中得到的LM分支集成至集成分支中。
2.如权利要求1所述的代码集成加速方法,其特征在于,该代码集成加速方法还包括配置CI的步骤,其中步骤S4中还包括:自动编译、打包和部署LM分支中最新的代码。
3.如权利要求2所述的代码集成加速方法,其特征在于,步骤S4和步骤S5之间,还包括步骤SP:部署后判断所集成的LM分支中是否存在问题功能,若是,进入步骤S1;若否,进入步骤S5,
其中步骤S1中还包括:修改LM配置,将问题功能对应的特性分支剔除。
4.如权利要求1-3中任意一项所述的代码集成加速方法,其特征在于,集成过程通过Git内置Hook机制实现。
5.如权利要求1-3中任意一项所述的代码集成加速方法,其特征在于,上报冲突信息包括在代码平台上显示冲突信息以及发送冲突信息至干系人。
6.一种代码集成加速系统,其特征在于,包括配置模块、判断模块、集成模块和输出模块,其中,
该配置模块用于配置LM服务;
该集成模块用于从集成分支的HEAD拉取LM分支,逐个将各个特性分支集成到LM分支;
该判断模块用于判断集成过程中是否存在冲突;
该输出模块用于在存在冲突时停止集成,并上报冲突信息;
该集成模块还用于在未存在冲突时将各个特性分支集成于LM分支,并将更新的LM分支集成至集成分支中以形成更新的集成分支。
7.如权利要求6所述的代码集成加速系统,其特征在于,该配置模块还用于配置CI,
该集成模块还用于自动编译、打包和部署LM分支中最新的代码。
8.如权利要求7所述的代码集成加速系统,其特征在于,该判断模块还用于在部署后判断所集成的LM分支中是否存在问题功能,
在存在问题功能的情况下,该配置模块还用于修改LM配置,将问题功能对应的特性分支剔除。
9.如权利要求6-8中任意一项所述的代码集成加速系统,其特征在于,该集成模块包括Git内置Hook机制。
10.如权利要求6-8中任意一项所述的代码集成加速系统,其特征在于,该输出模块用于在代码平台上显示冲突信息以及发送冲突信息至干系人。
CN201910680170.1A 2019-07-26 2019-07-26 代码集成加速方法及系统 Active CN110377335B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910680170.1A CN110377335B (zh) 2019-07-26 2019-07-26 代码集成加速方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910680170.1A CN110377335B (zh) 2019-07-26 2019-07-26 代码集成加速方法及系统

Publications (2)

Publication Number Publication Date
CN110377335A true CN110377335A (zh) 2019-10-25
CN110377335B CN110377335B (zh) 2023-04-25

Family

ID=68256154

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910680170.1A Active CN110377335B (zh) 2019-07-26 2019-07-26 代码集成加速方法及系统

Country Status (1)

Country Link
CN (1) CN110377335B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130055233A1 (en) * 2011-08-25 2013-02-28 Salesforce.Com, Inc. Streamlined methodology for resolving software integration conflicts
CN103713902A (zh) * 2013-12-26 2014-04-09 Tcl集团股份有限公司 一种基于Android系统的BOA编译方法和系统
CN105653261A (zh) * 2015-12-22 2016-06-08 曙光云计算技术有限公司 基于云计算环境下的开发集成测试方法及系统
CN107450933A (zh) * 2017-08-18 2017-12-08 郑州云海信息技术有限公司 一种软件持续集成方法和系统
CN107678773A (zh) * 2017-09-28 2018-02-09 郑州云海信息技术有限公司 一种基于git的代码开发与测试流程管理方法
CN108874650A (zh) * 2017-05-09 2018-11-23 上海秦苍信息科技有限公司 一种持续集成自动化测试方法
US20180373502A1 (en) * 2017-06-27 2018-12-27 Atlassian Pty Ltd Displaying status data in a source code development system
CN109683912A (zh) * 2018-12-29 2019-04-26 有米科技股份有限公司 软件集成与部署的方法、装置、服务器及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130055233A1 (en) * 2011-08-25 2013-02-28 Salesforce.Com, Inc. Streamlined methodology for resolving software integration conflicts
CN103713902A (zh) * 2013-12-26 2014-04-09 Tcl集团股份有限公司 一种基于Android系统的BOA编译方法和系统
CN105653261A (zh) * 2015-12-22 2016-06-08 曙光云计算技术有限公司 基于云计算环境下的开发集成测试方法及系统
CN108874650A (zh) * 2017-05-09 2018-11-23 上海秦苍信息科技有限公司 一种持续集成自动化测试方法
US20180373502A1 (en) * 2017-06-27 2018-12-27 Atlassian Pty Ltd Displaying status data in a source code development system
CN107450933A (zh) * 2017-08-18 2017-12-08 郑州云海信息技术有限公司 一种软件持续集成方法和系统
CN107678773A (zh) * 2017-09-28 2018-02-09 郑州云海信息技术有限公司 一种基于git的代码开发与测试流程管理方法
CN109683912A (zh) * 2018-12-29 2019-04-26 有米科技股份有限公司 软件集成与部署的方法、装置、服务器及存储介质

Also Published As

Publication number Publication date
CN110377335B (zh) 2023-04-25

Similar Documents

Publication Publication Date Title
Fleurey et al. A generic approach for automatic model composition
US8370808B2 (en) Apparatus and a method for generating a test case
US20140331202A1 (en) Software Analysis Program and Software Analysis System
US20050138603A1 (en) Componentization method for reengineering legacy system
EP1247192A1 (en) Method of and system for designing an n-tier software architecture for use in generating software components
CN101937336A (zh) 软件资产打包和消费方法和系统
Pickin et al. Test synthesis from UML models of distributed software
US20020129330A1 (en) System for configuration programming
CN110109681A (zh) 不同平台间代码的转换方法及系统
CN109753286A (zh) 一种基于功能标签的代码方法统计其调用次数的方法
Rindt et al. Automatic Generation of Consistency-Preserving Edit Operations for MDE Tools.
CN109522005A (zh) 跨平台图形化程序设计方法
US20090037878A1 (en) Web Application Development Tool
Lee et al. Requirements modeling and automated requirements-based test generation
GB2604936A (en) Automating complex processes
CN110569044B (zh) 一种将应用部署到运行环境的方法、装置及系统
CN110377335A (zh) 代码集成加速方法及系统
KR100994070B1 (ko) 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치
Santos et al. On the dynamic configuration of business process models
CN112527312A (zh) 一种嵌入式系统的测试方法和测试装置
CN105930258B (zh) 一种参数过滤的方法及装置
Pohl et al. A framework for software product line engineering
Cunha et al. The challenges of representing transparency as patterns
US20060122820A1 (en) Scripting language for domain-specific modification of a simulation model
US20220327047A1 (en) Program development assistance system and program development assistance method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant