CN111240692B - 一种代码分支冲突提前预警方法 - Google Patents

一种代码分支冲突提前预警方法 Download PDF

Info

Publication number
CN111240692B
CN111240692B CN202010051019.4A CN202010051019A CN111240692B CN 111240692 B CN111240692 B CN 111240692B CN 202010051019 A CN202010051019 A CN 202010051019A CN 111240692 B CN111240692 B CN 111240692B
Authority
CN
China
Prior art keywords
branch
code
user
module
conflict
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.)
Active
Application number
CN202010051019.4A
Other languages
English (en)
Other versions
CN111240692A (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.)
Beijing Simple Technology Co ltd
Original Assignee
Beijing Simple Technology 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 Beijing Simple Technology Co ltd filed Critical Beijing Simple Technology Co ltd
Priority to CN202010051019.4A priority Critical patent/CN111240692B/zh
Publication of CN111240692A publication Critical patent/CN111240692A/zh
Application granted granted Critical
Publication of CN111240692B publication Critical patent/CN111240692B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • 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)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种代码分支冲突提前预警方法,包括在用户与代码服务器之间添加的用户命令处理模块、分支检测范围配置模块、分支查询模块和分支冲突检测模块,具有以下步骤:(1)用户向代码服务器发送代码提交命令,将最新代码提交至代码服务器目标分支A;(2)用户命令处理模块拦截并分析用户命令,并解析出用户命令;(3)代码服务器将用户提交结果返回给用户命令处理模块;(4)分支检测范围配置模块将检测范围配置信息告知分支查询模块;本发明使用效果好,在团队分支协同开发时,能够主动、及时的发现代码冲突,极大的提高了开发效率。

Description

一种代码分支冲突提前预警方法
技术领域
本发明涉及软件开发领域,具体是一种代码分支冲突提前预警方法。
背景技术
在企业进行多人协同软件开发时,利用不同代码分支进行开发已经是当前的基本做法。分支开发带来的优点是不同团队或者不同个人在进行开发时,可以相互隔离,做到互不影响。以免因为相互影响而影响开发进度,例如A团队利用分支A进行功能A的开发,B团队利用分支B进行功能B的开发,就可以实现谁先开发完毕就可以合入主干分支并进行部署上线。如果不使用分支开发,则功能A和B的代码会混合在一起,直到功能A和B全部完成才能部署上线,除非采用其他例如功能开关等复杂技术方案才能实现分支开发隔离的优点。
但是分支开发带来了软件开发的一个经典问题,就是分支代码冲突。当A团队开发完毕,代码准备合入主干分支时,发现代码和B团队的代码发生了重大冲突。导致需要花费大量时间来解决冲突并进行重新测试。
现有代码版本控制软件都提供了代码分支对比的基本功能,用户调用相关命令可以查看分支代码是否冲突。但是在使用过程中发现具有以下缺点:
1.被动;只有用户主动去执行分支比较命令时才会发现冲突。
2.滞后,修复成本高;当发现冲突时,通常时间比较滞后了,修复成本会比及时发现高很多。
3.难以确定比较范围,效率低下;通常团队协同开发时,分支众多,且团队越大,分支越多;且随着开发历史久远,堆积的历史分支可能越来越多。如果靠用户去逐个手动比较,效率极低,当分支数量太多时,问题尤为突出。
发明内容
本发明的目的在于提供一种代码分支冲突提前预警方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种代码分支冲突提前预警方法,包括在用户与代码服务器之间添加的用户命令处理模块、分支检测范围配置模块、分支查询模块和分支冲突检测模块,具有以下步骤:
(1)用户向代码服务器发送代码提交命令,将最新代码提交至代码服务器目标分支A;
(2)用户命令处理模块拦截并分析用户命令,并解析出用户命令;
如果不是代码提交命令,则直接将用户命令转交给代码服务器处理,并将代码服务器原生返回结果按原路径返回给用户;
如果是代码提交命令,则解析出其目标分支A,然后将处理流程转交给代码服务器处理;
(3)代码服务器将用户提交结果返回给用户命令处理模块;
如果提交失败,则用户命令处理模块将代码服务器返回的原生失败信息返回给用户,流程结束;
如果提交成功,则用户命令处理模块将代码服务器返回的原生成功信息记为Message C暂存,并进入额外的分支冲突检测流程,进入分支检测范围配置模块;
(4)分支检测范围配置模块将检测范围配置信息告知分支查询模块;
(5)分支查询模块根据检测范围配置信息去代码服务器进行查询,查询在代码服务器的分支中,有哪些分支符合检测条件;
(6)代码服务器将符合条件的分支列表数据,记为List B,回传给分支查询模块;
(7)分支查询模块将符合条件的分支列表数据List B发送给分支冲突检测模块;
(8)如果List B数据为空,则分支冲突检测模块无需进行实际检测,直接告知用户命令处理模块检测未发现分支冲突;此时用户命令处理模块暂存的Message C返回给用户;
如果List B数据不为空,则分支冲突检测模块调用代码服务器原生命令,将分支A及List B中的各分支进行逐个比对,假设经过比对,List B中仅有部分分支和分支A代码冲突,则将这些分支记为List D;
(9)分支冲突检测模块将List D发送给用户命令处理模块;
(10)用户命令处理模块将暂存的Message C、分支冲突信息List D发送给用户,流程结束。
作为本发明进一步的方案:所述用户命令处理模块用以拦截用户请求,解析用户代码操作命令,并实现和用户信息交互。
作为本发明进一步的方案:所述分支检测范围配置模块用以设置需要检测的分支范围,仅检测一定时间范围内有代码更新,且分支名称符合设定范围的分支列表。
作为本发明进一步的方案:所述分支检测范围配置模块检测的范围包括指定时间范围和指定分支名称范围,分支名称范围支持模糊匹配和精确匹配。
作为本发明进一步的方案:所述分支查询模块根据分支检测范围配置模块中的信息,向代码服务器检索符合检测条件的分支列表。
作为本发明进一步的方案:所述分支冲突检测模块进行具体的分支代码是否存在冲突的检测。
与现有技术相比,本发明的有益效果是:
本发明采用上述方法,在用户和远程代码服务器之间设立分支代码冲突检测模块,将冲突结果第一时间反馈到用户,在团队分支协同开发时,发现代码冲突的时间提前,有效的降低了修复冲突的成本,提升手动比较分支冲突时的效率,使用更加方便。对于检测的目标分支范围,根据一定时间范围内是否有代码更新及分支名称范围进行综合确定,使用更加便捷,能够主动、及时的发现代码冲突,极大的提高了开发效率。本发明使用效果好,在团队分支协同开发时,能够主动、及时的发现代码冲突,极大的提高了开发效率。
附图说明
图1为一种代码分支冲突提前预警方法的流程图。
具体实施方式
下面结合具体实施方式对本专利的技术方案作进一步详细地说明。
请参阅图1,一种代码分支冲突提前预警方法,包括在用户与代码服务器之间添加的用户命令处理模块、分支检测范围配置模块、分支查询模块和分支冲突检测模块,所述用户命令处理模块用以拦截用户请求,解析用户代码操作命令,并实现和用户信息交互;所述分支检测范围配置模块用以设置需要检测的分支范围,仅检测一定时间范围内有代码更新,且分支名称符合设定范围的分支列表;分支检测范围配置模块检测的范围包括指定时间范围和指定分支名称范围,分支名称范围支持模糊匹配和精确匹配;所述分支查询模块根据分支检测范围配置模块中的信息,向代码服务器检索符合检测条件的分支列表;所述分支冲突检测模块进行具体的分支代码是否存在冲突的检测;
具有以下步骤:
(1)用户向代码服务器发送代码提交命令,将最新代码提交至代码服务器目标分支A,如箭头1所示。
(2)用户命令处理模块拦截并分析用户命令,解析出用户命令;
如果不是代码提交命令,则直接将用户命令转交给代码服务器处理,如箭头2所示;并将代码服务器原生返回结果按原路径返回给用户,如箭头3、箭头12所示。
如果用户命令处理模块解析出用户命令是代码提交命令,则解析出其目标分支A,然后将处理流程转交给代码服务器处理,如箭头2所示。
(3)代码服务器将用户提交结果返回给用户命令处理模块,如箭头3所示。
如果提交失败,则用户命令处理模块将代码服务器返回的原生失败信息按箭头12所示返回给用户,流程结束。
如果提交成功,则用户命令处理模块将代码服务器返回的原生成功信息记为Message C暂存,并进入额外的分支冲突检测流程,进入分支检测范围配置模块,如箭头4所示。
(4)分支检测范围配置模块将检测范围配置信息告知分支查询模块,如箭头5所示。
(5)分支查询模块根据检测范围配置信息去代码服务器进行查询,查询在代码服务器的分支中,有哪些分支符合检测条件,如箭头6所示。
(6)代码服务器将符合条件的分支列表数据,记为List B,回传给分支查询模块,如箭头7所示。
(7)分支查询模块将符合条件的分支列表数据List B发送给分支冲突检测模块,如箭头8所示。
(8)如果List B数据为空,则分支冲突检测模块无需进行实际检测,直接告知用户命令处理模块检测未发现分支冲突,如箭头11所示。此时用户命令处理模块将暂存的Message C返回给用户,如箭头12所示。
如果List B数据不为空,则分支冲突检测模块调用代码服务器原生命令,将分支A及List B中的各分支进行逐个比对(如箭头9和箭头10所示),假设经过比对,List B中仅有部分分支和分支A代码冲突,将这些分支记为List D。
(9)分支冲突检测模块将List D按箭头11所示方向发送给用户命令处理模块。
(10)用户命令处理模块将暂存的Message C、分支冲突信息List D发送给用户,如箭头12所示,流程结束。
上面对本专利的较佳实施方式作了详细说明,但是本专利并不限于上述实施方式,在本领域的普通技术人员所具备的知识范围内,还可以在不脱离本专利宗旨的前提下做出各种变化。

Claims (6)

1.一种代码分支冲突提前预警方法,其特征在于,包括在用户与代码服务器之间添加的用户命令处理模块、分支检测范围配置模块、分支查询模块和分支冲突检测模块,具有以下步骤:
(1)用户向代码服务器发送代码提交命令,将最新代码提交至代码服务器目标分支A;
(2)用户命令处理模块拦截并分析用户命令,并解析出用户命令;
如果不是代码提交命令,则直接将用户命令转交给代码服务器处理,并将代码服务器原生返回结果按原路径返回给用户;
如果是代码提交命令,则解析出其目标分支A,然后将处理流程转交给代码服务器处理;
(3)代码服务器将用户提交结果返回给用户命令处理模块;
如果提交失败,则用户命令处理模块将代码服务器返回的原生失败信息返回给用户,流程结束;
如果提交成功,则用户命令处理模块将代码服务器返回的原生成功信息记为MessageC暂存,并进入额外的分支冲突检测流程,进入分支检测范围配置模块;
(4)分支检测范围配置模块将检测范围配置信息告知分支查询模块;
(5)分支查询模块根据检测范围配置信息去代码服务器进行查询,查询在代码服务器的分支中,有哪些分支符合检测条件;
(6)代码服务器将符合条件的分支列表数据,记为List B,回传给分支查询模块;
(7)分支查询模块将符合条件的分支列表数据List B发送给分支冲突检测模块;
(8)如果List B数据为空,则分支冲突检测模块无需进行实际检测,直接告知用户命令处理模块检测未发现分支冲突;此时用户命令处理模块暂存的Message C返回给用户;
如果List B数据不为空,则分支冲突检测模块调用代码服务器原生命令,将分支A及List B中的各分支进行逐个比对,假设经过比对,List B中仅有部分分支和分支A代码冲突,则将这些分支记为List D;
(9)分支冲突检测模块将List D发送给用户命令处理模块;
(10)用户命令处理模块将暂存的Message C、分支冲突信息List D发送给用户,流程结束。
2.根据权利要求1所述的一种代码分支冲突提前预警方法,其特征在于,所述用户命令处理模块用以拦截用户请求,解析用户代码操作命令,并实现和用户信息交互。
3.根据权利要求1所述的一种代码分支冲突提前预警方法,其特征在于,所述分支检测范围配置模块用以设置需要检测的分支范围,仅检测一定时间范围内有代码更新,且分支名称符合设定范围的分支列表。
4.根据权利要求1所述的一种代码分支冲突提前预警方法,其特征在于,所述分支检测范围配置模块检测的范围包括指定时间范围和指定分支名称范围,分支名称范围支持模糊匹配和精确匹配。
5.根据权利要求1所述的一种代码分支冲突提前预警方法,其特征在于,所述分支查询模块根据分支检测范围配置模块中的信息,向代码服务器检索符合检测条件的分支列表。
6.根据权利要求1所述的一种代码分支冲突提前预警方法,其特征在于,所述分支冲突检测模块进行具体的分支代码是否存在冲突的检测。
CN202010051019.4A 2020-01-17 2020-01-17 一种代码分支冲突提前预警方法 Active CN111240692B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010051019.4A CN111240692B (zh) 2020-01-17 2020-01-17 一种代码分支冲突提前预警方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010051019.4A CN111240692B (zh) 2020-01-17 2020-01-17 一种代码分支冲突提前预警方法

Publications (2)

Publication Number Publication Date
CN111240692A CN111240692A (zh) 2020-06-05
CN111240692B true CN111240692B (zh) 2023-05-26

Family

ID=70864900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010051019.4A Active CN111240692B (zh) 2020-01-17 2020-01-17 一种代码分支冲突提前预警方法

Country Status (1)

Country Link
CN (1) CN111240692B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111831271B (zh) * 2020-07-20 2023-07-07 北京简单一点科技有限公司 一种支持模拟预合入流水线的Git代码评审系统及其方法
CN115829189B (zh) * 2023-02-08 2023-05-05 安徽深迪科技有限公司 一种智能工厂大数据的可视化调度方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123126A (zh) * 2013-04-26 2014-10-29 阿里巴巴集团控股有限公司 一种用于生成合并冲突记录列表的方法和装置
US9557968B1 (en) * 2014-12-23 2017-01-31 Github, Inc. Comparison graph
CN109783128A (zh) * 2018-12-13 2019-05-21 平安普惠企业管理有限公司 代码改动通知方法、设备、存储介质及装置
CN109901876A (zh) * 2019-02-28 2019-06-18 携程旅游信息技术(上海)有限公司 代码评审方法、系统、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8683443B2 (en) * 2011-08-25 2014-03-25 Salesforce.Com, Inc. Streamlined methodology for resolving software integration conflicts

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123126A (zh) * 2013-04-26 2014-10-29 阿里巴巴集团控股有限公司 一种用于生成合并冲突记录列表的方法和装置
US9557968B1 (en) * 2014-12-23 2017-01-31 Github, Inc. Comparison graph
CN109783128A (zh) * 2018-12-13 2019-05-21 平安普惠企业管理有限公司 代码改动通知方法、设备、存储介质及装置
CN109901876A (zh) * 2019-02-28 2019-06-18 携程旅游信息技术(上海)有限公司 代码评审方法、系统、设备及存储介质

Also Published As

Publication number Publication date
CN111240692A (zh) 2020-06-05

Similar Documents

Publication Publication Date Title
CN110321254B (zh) 软件版本回滚方法、装置、服务器及存储介质
US7127475B2 (en) Managing data integrity
CN111240692B (zh) 一种代码分支冲突提前预警方法
US7464097B2 (en) Managing data integrity using a filter condition
US6334215B1 (en) Methodology for migration of legacy applications to new product architectures
US6049799A (en) Document link management using directory services
US7757226B2 (en) Method and mechanism for performing a rolling upgrade of distributed computer software
US7676453B2 (en) Partial query caching
US20080228802A1 (en) System and Method for Rebuilding Indices for Partitioned Databases
CN110032428B (zh) 分布式事务的执行方法和装置
US7668831B2 (en) Assigning unique identification numbers to new user accounts and groups in a computing environment with multiple registries
US7032124B2 (en) Method of automatically correcting broken links to files stored on a computer
US6915452B2 (en) Method, system and program products for operationally migrating a cluster through emulation
JPH10161916A (ja) データベースの複製に伴う更新競合の検出方法
CN109787858B (zh) 一种批量发布服务的方法及终端
CN111857880B (zh) 对话配置项信息管理方法、装置、设备及存储介质
CN112486640A (zh) 业务处理方法、装置、电子设备及计算机可读存储介质
US20200175172A1 (en) Orchestration of vulnerability scanning and issue tracking for version control technology
CN116107589A (zh) 软件代码的自动编译方法、装置、设备及存储介质
CN113760234B (zh) 一种软件开发方法和系统
CN116662355A (zh) 无效索引的标记方法、存储介质和计算机设备
US5964828A (en) Method and system for maintaining the integrity of objects
CN113791809B (zh) 应用异常处理方法、装置以及计算机可读存储介质
CN111831271B (zh) 一种支持模拟预合入流水线的Git代码评审系统及其方法
CN114371870A (zh) 代码扫描、提交方法及代码扫描服务器、客户端和服务端

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