欢迎来到专利查询网! | 帮助中心 查专利用我们更专业!
专利查询网
换一换
首页 专利查询网 > 资源分类 > PDF文档下载
分享到微信 分享到微博 分享到QQ空间

代码开发方法、装置、电子设备和计算机存储介质.pdf

  • 资源ID:10833616       资源大小:683.06KB        全文页数:16页
  • 资源格式: PDF        下载积分:30金币
快捷下载 游客一键下载
账号登录下载
三方登录下载: 微信开放平台登录 QQ登录
下载资源需要30金币
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

代码开发方法、装置、电子设备和计算机存储介质.pdf

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201911250710.9 (22)申请日 2019.12.09 (71)申请人 北京五八信息技术有限公司 地址 100080 北京市海淀区学清路甲18号 中关村东升科技园学院园三层301室 (72)发明人 孔校军 (74)专利代理机构 北京弘权知识产权代理事务 所(普通合伙) 11363 代理人 逯长明许伟群 (51)Int.Cl. G06F 8/71(2018.01) G06F 8/41(2018.01) G06F 11/36(2006.01) (54)发明名称 一种代码开

2、发方法、 装置、 电子设备和计算 机存储介质 (57)摘要 本申请公开了一种代码开发方法、 装置、 电 子设备和计算机存储介质, 包括: 从代码开发程 序中的主干分支切出一一对应的至少一个功能 分支和至少一个支干分支, 支干分支与主干分支 具有相同的特性。 将每个代码开发后的功能分支 与对应的支干分支进行预合并处理, 得到预合并 分支。 在预合并处理成功后, 对每个预合并分支 进行编译处理; 将编译后的预合并分支与主干分 支进行集成合并, 每次集成合并时只允许一个预 合并分支与主干分支进行合并。 可见, 本发明提 供的方法, 可以通过预合并方式提前解决功能分 支与主干分支合并后可能出现的代码冲

3、突问题, 以及, 可以通过编译的方式提前验证功能分支合 并到主干分支的稳定性, 进而保证多人进行代码 开发时的稳定性。 权利要求书2页 说明书10页 附图3页 CN 111078274 A 2020.04.28 CN 111078274 A 1.一种代码开发方法, 其特征在于, 包括以下步骤: 获取从代码开发程序中的主干分支切出的至少一个功能分支和至少一个支干分支, 所 述功能分支和支干分支一一对应, 所述支干分支的代码与所述主干分支中的部分代码相 同; 将每一个代码开发后的功能分支和对应的所述支干分支进行预合并处理, 得到多个预 合并分支; 在预合并处理成功后, 对每个所述预合并分支进行编译

4、处理; 在编译处理成功后, 将所述编译后的预合并分支与主干分支进行集成合并, 其中, 后一 所述编译后的预合并分支在前一所述编译后的预合并分支的集成合并处理成功之后再进 行集成合并。 2.根据权利要求1所述的方法, 其特征在于, 所述将每一个代码开发后的功能分支和对 应的所述支干分支进行预合并处理, 得到多个预合并分支, 包括: 调用创建合并请求接口, 根据所述代码开发后的功能分支和对应的支干分支, 创建预 合并请求; 根据所述预合并请求, 调用合并接口, 将所述代码开发后的功能分支和对应的支干分 支进行预合并处理, 得到多个预合并分支。 3.根据权利要求1所述的方法, 其特征在于, 所述在预

5、合并处理成功后, 对每个所述预 合并分支进行编译处理, 包括: 调用持续集成工具接口, 基于每个所述预合并分支, 创建对应的编译任务; 根据每个所述编译任务, 对对应的所述预合并分支进行编译; 按照预定时长, 查询每个所述编译处理过程的编译结果; 在接收到的编译结果为编译成功时, 确定对应的所述预合并分支的编译过程结束。 4.根据权利要求1所述的方法, 其特征在于, 所述在编译处理成功后, 将所述编译后的 预合并分支与主干分支进行集成合并, 包括: 调用创建合并请求接口, 根据所述编译后的预合并分支和主干分支, 创建集成合并请 求; 根据所述集成合并请求, 调用合并接口, 将编译后的预合并分支

6、和主干分支进行集成 合并; 在当前所述编译后的预合并分支和主干分支的集成合并处理成功之后, 进行下一所述 编译后的预合并分支和主干分支的集成合并处理过程; 调用删除分支接口, 分别将每一个所述预合并分支删除。 5.根据权利要求1所述的方法, 其特征在于, 还包括: 如果所述编译处理不成功, 或者, 所述集成合并处理不成功, 生成重置指令; 根据所述重置指令, 调用持续集成工具接口, 删除编译过程创建的编译任务, 或者, 调 用删除分支接口, 删除预合并分支, 以将代码开发状态回退到初始状态。 6.一种代码开发装置, 其特征在于, 包括: 代码开发分支获取模块, 用于获取从代码开发程序中的主干分

7、支切出的至少一个功能 分支和至少一个支干分支, 所述功能分支和支干分支一一对应, 所述支干分支的代码与所 述主干分支中的部分代码相同; 权利要求书 1/2 页 2 CN 111078274 A 2 预合并处理模块, 用于将每一个代码开发后的功能分支和对应的所述支干分支进行预 合并处理, 得到多个预合并分支; 编译处理模块, 用于在预合并处理成功后, 对每个所述预合并分支进行编译处理; 集成合并处理模块, 用于在编译处理成功后, 将所述编译后的预合并分支与主干分支 进行集成合并, 其中, 后一所述编译后的预合并分支在前一所述编译后的预合并分支的集 成合并处理成功之后再进行集成合并。 7.根据权利

8、要求6所述的装置, 其特征在于, 所述预合并处理模块, 包括: 预合并请求创建单元, 用于调用创建合并请求接口, 根据所述代码开发后的功能分支 和对应的支干分支, 创建预合并请求; 预合并处理单元, 用于根据所述预合并请求, 调用合并接口, 将所述代码开发后的功能 分支和对应的支干分支进行预合并处理, 得到多个预合并分支。 8.根据权利要求6所述的装置, 其特征在于, 所述编译处理模块, 包括: 编译任务创建单元, 用于调用持续集成工具接口, 基于每个所述预合并分支, 创建对应 的编译任务; 编译单元, 用于根据每个所述编译任务, 对对应的所述预合并分支进行编译; 编译结果查询单元, 用于按照

9、预定时长, 查询每个所述编译处理过程的编译结果; 编译过程结束确定单元, 用于在接收到的编译结果为编译成功时, 确定对应的所述预 合并分支的编译过程结束。 9.根据权利要求6所述的装置, 其特征在于, 所述集成合并处理模块, 包括: 集成合并请求创建单元, 用于调用创建合并请求接口, 根据所述编译后的预合并分支 和主干分支, 创建集成合并请求; 集成合并单元, 用于根据所述集成合并请求, 调用合并接口, 将编译后的预合并分支和 主干分支进行集成合并; 下一集成合并触发单元, 用于在当前所述编译后的预合并分支和主干分支的集成合并 处理成功之后, 进行下一所述编译后的预合并分支和主干分支的集成合并

10、处理过程; 分支删除单元, 用于调用删除分支接口, 分别将每一个所述预合并分支删除。 10.根据权利要求6所述的装置, 其特征在于, 还包括: 重置指令生成模块, 用于在所述编译处理不成功, 或者, 所述集成合并处理不成功, 生 成重置指令; 删除模块, 用于根据所述重置指令, 调用持续集成工具接口, 删除编译过程创建的编译 任务, 或者, 调用删除分支接口, 删除预合并分支, 以将代码开发状态回退到初始状态。 11.一种电子设备, 其特征在于, 包括: 存储器, 用于存储程序指令; 处理器, 用于调用并执行所述存储器中的程序指令, 以实现权利要求15任一项所述 的代码开发方法。 12.一种计

11、算机存储介质, 其特征在于, 所述计算机存储介质中存储有计算机程序, 当 代码开发装置的至少一个处理器执行所述计算机程序时, 代码开发装置执行权利要求15 任一项所述的代码开发方法。 权利要求书 2/2 页 3 CN 111078274 A 3 一种代码开发方法、 装置、 电子设备和计算机存储介质 技术领域 0001 本申请涉及计算机软件开发技术领域, 尤其涉及一种代码开发方法、 装置、 电子设 备和计算机存储介质。 背景技术 0002 在代码开发过程中, 常需要多个开发者对同一个项目功能进行代码开发。 为保证 多个开发者能够协作开发, 在多人的软件项目团队中, 大多使用多分支的开发方式, 每

12、个人 在开发需求时单独从主干分支切出一个功能分支, 并在各自的功能分支上进行需求开发, 需求开发完毕测试通过后, 再将多个功能分支合并至主干分支。 0003 但是, 这种开发与代码集成模式有以下两个问题: 一是在多人开发时, 不能保证每 个开发者开发的功能分支实时获取到最新的主干分支代码, 这样易出现需求开发完成后与 主干分支的代码冲突的问题, 而代码冲突一旦解决出错就会导致最终合并到主干分支的代 码出错, 出现主干分支代码异常, 无法进行编译。 二是在一些开发者未安装完整的流程进行 测试时, 功能分支出现有问题的代码也会合并到主干分支, 也会导致主干分支编译出错。 0004 一旦主干分支出现

13、问题导致无法正确编译, 就会影响后续测试, 如果主干分支的 问题没有及时解决甚至会影响软件版本正常发布。 虽然多人开发代码过程汇总, 有人工代 码审核流程, 但由人工执行会存在遗漏问题, 并不能保证执行到位, 依然无法保证主干分支 的稳定性。 发明内容 0005 本申请提供了一种代码开发方法、 装置、 电子设备和计算机存储介质, 以解决现有 的多人开发代码的方法不能保证主干分支的稳定性的问题。 0006 第一方面, 本申请提供了一种代码开发方法, 包括以下步骤: 0007 获取从代码开发程序中的主干分支切出的至少一个功能分支和至少一个支干分 支, 所述功能分支和支干分支一一对应, 所述支干分支

14、的代码与所述主干分支中的部分代 码相同; 0008 将每一个代码开发后的功能分支和对应的所述支干分支进行预合并处理, 得到多 个预合并分支; 0009 在预合并处理成功后, 对每个所述预合并分支进行编译处理; 0010 在编译处理成功后, 将所述编译后的预合并分支与主干分支进行集成合并, 其中, 后一所述编译后的预合并分支在前一所述编译后的预合并分支的集成合并处理成功之后 再进行集成合并。 0011 进一步地, 所述将每一个代码开发后的功能分支和对应的所述支干分支进行预合 并处理, 得到多个预合并分支, 包括: 0012 调用创建合并请求接口, 根据所述代码开发后的功能分支和对应的支干分支,

15、创 建预合并请求; 说明书 1/10 页 4 CN 111078274 A 4 0013 根据所述预合并请求, 调用合并接口, 将所述代码开发后的功能分支和对应的支 干分支进行预合并处理, 得到多个预合并分支。 0014 进一步地, 所述在预合并处理成功后, 对每个所述预合并分支进行编译处理, 包 括: 0015 调用持续集成工具接口, 基于每个所述预合并分支, 创建对应的编译任务; 0016 根据每个所述编译任务, 对对应的所述预合并分支进行编译; 0017 按照预定时长, 查询每个所述编译处理过程的编译结果; 0018 在接收到的编译结果为编译成功时, 确定对应的所述预合并分支的编译过程结

16、 束。 0019 进一步地, 所述在编译处理成功后, 将所述编译后的预合并分支与主干分支进行 集成合并, 包括: 0020 调用创建合并请求接口, 根据所述编译后的预合并分支和主干分支, 创建集成合 并请求; 0021 根据所述集成合并请求, 调用合并接口, 将编译后的预合并分支和主干分支进行 集成合并; 0022 在当前所述编译后的预合并分支和主干分支的集成合并处理成功之后, 进行下一 所述编译后的预合并分支和主干分支的集成合并处理过程; 0023 调用删除分支接口, 分别将每一个所述预合并分支删除。 0024 进一步地, 还包括: 0025 如果所述编译处理不成功, 或者, 所述集成合并处

17、理不成功, 生成重置指令; 0026 根据所述重置指令, 调用持续集成工具接口, 删除编译过程创建的编译任务, 或 者, 调用删除分支接口, 删除预合并分支, 以将代码开发状态回退到初始状态。 0027 第二方面, 本申请提供了一种代码开发装置, 包括: 0028 代码开发分支获取模块, 用于获取从代码开发程序中的主干分支切出的至少一个 功能分支和至少一个支干分支, 所述功能分支和支干分支一一对应, 所述支干分支的代码 与所述主干分支中的部分代码相同; 0029 预合并处理模块, 用于将每一个代码开发后的功能分支和对应的所述支干分支进 行预合并处理, 得到多个预合并分支; 0030 编译处理模

18、块, 用于在预合并处理成功后, 对每个所述预合并分支进行编译处理; 0031 集成合并处理模块, 用于在编译处理成功后, 将所述编译后的预合并分支与主干 分支进行集成合并, 其中, 后一所述编译后的预合并分支在前一所述编译后的预合并分支 的集成合并处理成功之后再进行集成合并。 0032 进一步地, 所述预合并处理模块, 包括: 0033 预合并请求创建单元, 用于调用创建合并请求接口, 根据所述代码开发后的功能 分支和对应的支干分支, 创建预合并请求; 0034 预合并处理单元, 用于根据所述预合并请求, 调用合并接口, 将所述代码开发后的 功能分支和对应的支干分支进行预合并处理, 得到多个预

19、合并分支。 0035 进一步地, 所述编译处理模块, 包括: 0036 编译任务创建单元, 用于调用持续集成工具接口, 基于每个所述预合并分支, 创建 说明书 2/10 页 5 CN 111078274 A 5 对应的编译任务; 0037 编译单元, 用于根据每个所述编译任务, 对对应的所述预合并分支进行编译; 0038 编译结果查询单元, 用于按照预定时长, 查询每个所述编译处理过程的编译结果; 0039 编译过程结束确定单元, 用于在接收到的编译结果为编译成功时, 确定对应的所 述预合并分支的编译过程结束。 0040 进一步地, 所述集成合并处理模块, 包括: 0041 集成合并请求创建单

20、元, 用于调用创建合并请求接口, 根据所述编译后的预合并 分支和主干分支, 创建集成合并请求; 0042 集成合并单元, 用于根据所述集成合并请求, 调用合并接口, 将编译后的预合并分 支和主干分支进行集成合并; 0043 下一集成合并触发单元, 用于在当前所述编译后的预合并分支和主干分支的集成 合并处理成功之后, 进行下一所述编译后的预合并分支和主干分支的集成合并处理过程; 0044 分支删除单元, 用于调用删除分支接口, 分别将每一个所述预合并分支删除。 0045 进一步地, 还包括: 0046 重置指令生成模块, 用于在所述编译处理不成功, 或者, 所述集成合并处理不成 功, 生成重置指

21、令; 0047 删除模块, 用于根据所述重置指令, 调用持续集成工具接口, 删除编译过程创建的 编译任务, 或者, 调用删除分支接口, 删除预合并分支, 以将代码开发状态回退到初始状态。 0048 第三方面, 本申请提供了一种电子设备, 包括: 0049 存储器, 用于存储程序指令; 0050 处理器, 用于调用并执行所述存储器中的程序指令, 以实现第一方面所述的代码 开发方法。 0051 第四方面, 本申请提供了一种计算机存储介质, 所述计算机存储介质中存储有计 算机程序, 当代码开发装置的至少一个处理器执行所述计算机程序时, 代码开发装置执行 第一方面所述的代码开发方法。 0052 由以上

22、技术方案可知, 本发明实施例提供的一种代码开发方法、 装置、 电子设备和 计算机存储介质, 包括: 从代码开发程序中的主干分支切出一一对应的至少一个功能分支 和至少一个支干分支, 支干分支与主干分支具有相同的特性。 将每个代码开发后的功能分 支与对应的支干分支进行预合并处理, 得到预合并分支, 提前验证将功能分支合并到主干 分支之后是否会出现代码冲突。 在预合并处理成功后, 对每个预合并分支进行编译处理, 以 预先验证功能分支合并到主干分支的稳定性; 在编译处理成功后, 将编译后的预合并分支 与主干分支进行集成合并, 集成合并为串行的合并方式, 即每次集成合并时只允许一个预 合并分支与主干分支

23、进行合并, 使得后一预合并分支可以与最新的主干分支进行集成合 并, 以确保每次的预合并分支与主干分支一致, 保证每次最终的主干分支的正确性。 可见, 本发明提供的方法, 可以通过预合并方式提前解决功能分支与主干分支合并后可能出现的 代码冲突问题, 以及, 可以通过对预合并分支进行编译的方式提前验证功能分支合并到主 干分支的稳定性, 进而保证多人进行代码开发时的稳定性。 说明书 3/10 页 6 CN 111078274 A 6 附图说明 0053 为了更清楚地说明本申请的技术方案, 下面将对实施例中所需要使用的附图作简 单地介绍, 显而易见地, 对于本领域普通技术人员而言, 在不付出创造性劳动

24、性的前提下, 还可以根据这些附图获得其他的附图。 0054 图1为本发明实施例提供的代码开发方法的流程图; 0055 图2为本发明实施例提供的代码开发方法的合并流程示意图; 0056 图3为本发明实施例提供的得到预合并分支的方法流程图; 0057 图4为本发明实施例提供的编译处理的方法流程图; 0058 图5为本发明实施例提供的集成合并的方法流程图; 0059 图6为本发明实施例提供的代码开发装置的结构框图; 0060 图7为本发明实施例提供的电子设备的硬件结构示意图。 具体实施方式 0061 在多人代码开发过程中, 为了避免多人进行代码开发易出现的代码冲突、 主干分 支不稳定的问题, 本发明

25、实施例提出了一套业务系统, 此业务系统主要通过预合并的方式, 将功能分支合并至预合并分支, 并进行编译, 以提前验证一下功能分支与预合并分支的稳 定性, 编译通过后再将预合并分支最终合并至主干分支, 达到提前发现问题, 解决问题的目 的, 以提高主干分支的代码稳定性。 0062 图1为本发明实施例提供的代码开发方法的流程图; 图2为本发明实施例提供的代 码开发方法的合并流程示意图。 0063 本发明实施例提供的一种代码开发方法, 应用于业务系统, 业务系统可实现多人 的代码开发业务, 业务系统中安装有代码开发程序, 实现预合并、 编译和代码合并的功能。 本实施例中, 业务系统中采用Gitlab

26、作为代码管理工具。 Gitlab是一个用于仓库管理系统 的开源项目, 使用Git作为代码管理工具, 并在此基础上搭建起来的web服务。 Git是分布式 代码管理容器, 该代码管理容器可以在本地和远端都保有一份相同的代码。 0064 Gitlab配置有创建分支接口、 创建合并请求接口和合并接口, 创建分支接口用于 创建支干分支, 创建合并请求接口用于创建一个预合并请求, 合并接口用于根据预合并请 求进行预合并处理。 0065 如图1和图2所示, 本发明实施例提供的代码开发方法, 包括以下步骤: 0066 S1、 获取从代码开发程序中的主干分支切出的至少一个功能分支和至少一个支干 分支, 功能分支

27、和支干分支一一对应, 支干分支的代码与所述主干分支中的部分代码相同。 0067 为适配多人的代码开发, 业务系统中的代码开发程序中包括主干分支和多个功能 分支, 每个开发人员对应一个功能分支进行代码开发, 代码开发后的功能分支再合并到主 干分支中。 0068 本实施例中, 为提高主干分支的代码稳定性, 在主干分支中切出至少一个支干分 支, 具体方式是调用Gitlab的创建分支接口, 在主干分支中创建一个支干分支。 此处, 主干 分支为进行过集成合并后形成的新主干分支, 创建支干分支的主干分支中的代码为集合功 能分支和主干分支的最新代码。 0069 支干分支具有与主干分支相同的代码特性, 即支干

28、分支中的代码与主干分支中的 说明书 4/10 页 7 CN 111078274 A 7 部分代码相同。 也就是说, 支干分支可以作为主干分支的替代分支, 与功能分支提前进行编 译, 以提前验证在将功能分支最终合并到主干分支后是否会出现代码冲突的问题。 若存在 代码冲突, 则提前解决问题, 以通过提前验证可以保证主干分支的代码稳定性。 0070 为此, 为保证每个功能分支均可以与对应的支干分支进行提前的代码稳定性验 证, 需使由主干分支切出的支干分支的数量与功能分支相同, 且支干分支与功能分支为一 一对应关系。 0071 S2、 将每一个代码开发后的功能分支和对应的支干分支进行预合并处理, 得到

29、多 个预合并分支。 0072 多个开发人员并行对各自的功能分支进行代码开发后, 将每个代码开发后的功能 分支与对应的支干分支进行预合并处理, 得到的预合并分支可以看作是功能分支与主干分 支提前进行合并的分支。 0073 本实施例提供的代码开发方法, 采用并行开发串行合并的方式, 多个功能分支可 同时进行代码开发, 但在执行预合并过程时, 需要在前一个功能分支与对应的支干分支预 合并之后, 再进行下一个功能分支与对应的支干分支的预合并。 此时, 下一个支干分支是基 于前一个预合并分支与主干分支经过集成合并后得到的新主干分支创建而成, 以保证每个 代码开发后的功能分支均能够与最新的主干分支进行代码

30、开发, 避免出现代码冲突, 保证 代码稳定性。 0074 图3为本发明实施例提供的得到预合并分支的方法流程图。 参见图3, 具体地, 本实 施例中, 按照下述步骤将每一个代码开发后的功能分支和对应的所述支干分支进行预合并 处理, 得到多个预合并分支: 0075 S21、 调用创建合并请求接口, 根据代码开发后的功能分支和对应的支干分支, 创 建预合并请求。 0076 S22、 根据预合并请求, 调用合并接口, 将代码开发后的功能分支和对应的支干分 支进行预合并处理, 得到多个预合并分支。 0077 业务系统中的代码开发程序调用Gitlab中的创建合并请求接口, 创建预合并请 求。 每个预合并请

31、求对应一组代码开发后的功能分支和支干分支, 预合并请求用于实现一 一对应的代码开发后的功能分支和支干分支的预合并过程。 0078 在生成预合并请求后, 业务系统中的代码开发程序调用Gitlab中的合并接口, 将 代码开发后的功能分支和对应的支干分支进行预合并处理, 得到多个预合并分支, 也就是 说, 每组功能分支和支干分支经过预合并之后得到一个预合并分支。 0079 参见图2, 举例说明, 主干分支切出功能分支1、 功能分支2、 支干分支1和支干分支 2, 功能分支1与支干分支1对应, 功能分支2与支干分支2对应。 此时, 创建合并请求接口产生 两个预合并请求, 根据预合并请求1, 使得经过代

32、码开发后的功能分支1与支干分支1进行预 合并处理, 得到预合并分支1; 根据预合并请求2, 使得经过代码开发后的功能分支2与支干 分支2进行预合并处理, 得到预合并分支2。 0080 在完成预合并处理后, 判断每个预合并处理过程是否成功, 判断标准是预合并分 支中的代码与主干分支的代码是否存在代码冲突。 代码冲突是指开发后的功能分支与支干 分支进行预合并得到的预合并分支的代码与主干分支的代码不一致。 0081 如果某个开发人员在是基于旧主干分支进行功能开发, 而另一开发人员是基于新 说明书 5/10 页 8 CN 111078274 A 8 主干分支进行功能开发, 此时, 由于两个人同时改变同

33、一部分的代码, 则基于旧主干分支进 行功能开发的代码与主干分支的代码不一致, 同时, 业务系统无法确定应将哪一开发人员 进行代码开发的功能分支合并至主干分支, 导致代码冲突。 0082 如果预合并分支的代码出现代码冲突, 则确定当前功能分支的预合并处理过程失 败, 开发人员需对当前功能分支进行代码修改, 解决代码冲突问题后再与支干分支进行预 合并。 0083 S3、 在预合并处理成功后, 对每个预合并分支进行编译处理。 0084 在代码开发后的功能分支与支干分支经过预合并处理得到预合并分支后, 如果判 断出预合并处理过程成功, 未出现代码冲突现象, 则执行后续步骤, 即对预合并分支进行编 译处

34、理。 0085 开发人员的功能分支通过预合并后, 此时的预合并分支代码就是集合了主干分支 和功能分支的最新代码。 再对预合并分支进行编译, 确保最终合并后主干分支的稳定性。 本 实施例中, 利用Jenkins进行编译, Jenkins是一个开源软件项目, 是基于Java开发的一种持 续集成工具。 0086 图4为本发明实施例提供的编译处理的方法流程图。 参见图4, 具体地, 按照下述步 骤在预合并处理成功后, 对每个预合并分支进行编译处理: 0087 S31、 调用持续集成工具接口, 基于每个预合并分支, 创建对应的编译任务。 0088 S32、 根据每个编译任务, 对对应的预合并分支进行编译

35、。 0089 Jenkins(持续集成工具)包括持续集成工具接口, 在对预合并分支进行编译时, 先 调用持续集成工具接口, 依赖预合并分支创建一个编译任务。 每个预合并分支对应一个编 译任务, 避免多个预合并分支相互之间的编译过程相互影响。 0090 启动创建的每个编译任务, 以对每个预合并分支进行编译。 具体的编译方法可参 照现有的编译过程, 本实施例不做具体限定。 0091 S33、 按照预定时长, 查询每个编译处理过程的编译结果。 0092 S34、 在接收到的编译结果为编译成功时, 确定对应的预合并分支的编译过程结 束。 0093 在对预合并分支进行编译过程中, 定时轮询编译处理过程的

36、编译结果。 本实施例 中, 设定预定时长, 每隔预定时长, 查询一次编译结果。 0094 本实施例提供的业务系统, 按照预定时长查询编译结果, 如果编译成功, 则返回 “编译成功” 提示, 以提示开发人员当前预合并分支的编译处理过程成功; 如果编译失败, 则 返回 “编译失败” 提示, 以提示开发人员当前预合并分支的编译处理过程失败。 在编译失败 时, 开发人员需要进行重置, 以修改代码后从预合并处理过程(步骤S2)重新执行后续步骤。 0095 本实施例中, 基于代码开发后的功能分支与支干分支的预合并, 以及, 支干分支具 有与主干分支相同的代码特性, 通过对预合并分支进行编译, 使得可以提前

37、验证代码开发 后的功能分支与主干分支进行合并后的代码稳定性, 以保证功能分支在与主干分支最终合 并时的代码稳定。 0096 S4、 在编译处理成功后, 将编译后的预合并分支与主干分支进行集成合并, 其中, 后一编译后的预合并分支在前一所述编译后的预合并分支的集成合并处理成功之后再进 行集成合并。 说明书 6/10 页 9 CN 111078274 A 9 0097 编译处理成功后, 再进行集成合并过程, 即将编译后的预合并分支再合并到主干 分支中, 完成代码开发过程。 0098 本发明实施例提供的代码开发方法, 采用并行开发方法, 即多个功能分支可以由 不同的开发人员同时进行代码开发。 但是,

38、 为了确保每次预合并分支与主干分支的代码一 致, 避免出现代码冲突, 本实施例中, 在将编译后的预合并分支合并到主干分支时, 采用串 行的合并方式, 即每次合并时仅允许一个预合并分支与主干分支进行集成合并, 在当前预 合并分支与主干分支集成合并完成之后, 再进行下一个预合并分支与主干分支的集成合 并, 以保证每次最终合并到主干分支的代码一致性。 0099 参见图2, 先进行编译后的预合并分支1与主干分支的集成合并, 在该集成合并过 程结束后, 再进行编译后的预合并分支2与主干分支的集成合并过程。 0100 图5为本发明实施例提供的集成合并的方法流程图。 参见图5, 本实施例中, 按照下 述步骤

39、在编译处理成功后, 将编译后的预合并分支与主干分支进行集成合并: 0101 S41、 调用创建合并请求接口, 根据编译后的预合并分支和主干分支, 创建集成合 并请求。 0102 S42、 根据集成合并请求, 调用合并接口, 将编译后的预合并分支和主干分支进行 集成合并。 0103 业务系统中的代码开发程序调用Gitlab中的创建合并请求接口, 创建多个集成合 并请求。 每个集成合并请求对应主干分支和一个编译后的预合并分支, 集成合并请求用于 实现主干分支与编译后的预合并分支的集成合并过程。 0104 在生成集成合并请求后, 业务系统中的代码开发程序调用Gitlab中的合并接口, 将主干分支与编

40、译后的预合并分支进行集成合并处理, 完成当前代码开发过程。 0105 S43、 在当前编译后的预合并分支和主干分支的集成合并处理成功之后, 进行下一 编译后的预合并分支和主干分支的集成合并处理过程。 0106 执行串行的合并过程, 在完成当前编译后的预合并分支与主干分支的集成合并成 功后, 再进行下一个编译后的预合并分支与主干分支的集成合并过程。 而下一个编译后的 预合并分支的获得可采用步骤S1至S3的过程, 而切出支干分支的主干分支, 可为前一集成 合并后得到的主干分支, 使得经过一次集成合并后的主干分支中的代码为最新的代码, 即 主干分支为新主干分支, 避免后一预合并分支是功能分支与基于旧

41、主干分支创建的支干分 支进行预合并而成的分支, 这样可以保证每个代码开发后的功能分支可以与最新的支干分 支进行预合并, 进而能够保证功能分支与最终的主干分支合并时不会出现代码冲突, 保证 代码稳定性。 0107 S44、 调用删除分支接口, 分别将每一个预合并分支删除。 0108 在完成当前预合并分支与主干分支的合并后, 预合并分支中的代码与主干分支中 的代码融合, 预合并分支中不再具有代码。 为避免集成合并后的预合并分支干扰主干分支 的开发过程, 本实施例中, 调用Gitlab中的删除分支接口, 由删除分支接口将进行集成合并 后的预合并分支删除。 0109 在多人的代码开发过程中, 上述过程

42、中, 在编译与集成合并两个过程中, 极易出现 代码冲突(集成合并失败)和代码错误(编译失败)导致执行失败的情况。 如果当前代码开发 过程因代码冲突或代码错误而执行失败, 由于下一开发人员的开始执行开发的标志是前一 说明书 7/10 页 10 CN 111078274 A 10 开发人员对应的编译后的预合并分支与主干分支进行集成合并成功之后, 因此, 若当前开 发人员的开发过程无法返回结束标志, 则无法通知下一开发人员执行相应开发过程, 导致 代码开发过程在预合并状态卡住, 影响后续合并工作。 0110 在此种情况下, 本实施例还提供一种代码开发方法, 可以通过重置, 使得代码开发 状态回退到初

43、始状态, 重新修改完代码后再进行预合并。 代码开发状态包括预合并处理状 态和集成合并状态。 0111 具体地, 该方法还包括: 0112 S501、 如果编译处理不成功, 或者, 集成合并处理不成功, 生成重置指令。 0113 S502、 根据重置指令, 调用持续集成工具接口, 删除编译过程创建的编译任务, 或 者, 调用删除分支接口, 删除预合并分支, 以将代码开发状态回退到初始状态。 0114 如果在编译过程返回的编译结果是 “编译失败” , 则由业务系统生成重置指令; 或 者, 在集成合并过程的不成功, 也由业务系统生成重置指令。 重置指令的生成可由重置按钮 实现, 重置按钮配置在业务系

44、统的代码开发程序的页面上, 在编译过程或集成合并过程不 成功时, 点击重置按钮, 生成重置指令。 0115 在编译过程中, 如果需要进行重置, 则根据重置指令, 调用持续集成工具接口, 将 当前编译任务删除, 使得代码开发状态由编译状态回退到预合并前的状态(初始状态)。 在 集成合并过程中, 如果需要进行重置, 则根据重置指令, 调用Gitlab中的删除分支接口, 将 编译后的预合并分支删除, 使得代码开发状态由集成合并状态回退到预合并前的状态(初 始状态)。 0116 预合并前的状态(初始状态)是指代码开发后的功能分支还未与支干分支进行预 合并的状态。 将代码开发状态回退到预合并前的状态,

45、可对功能分支重新进行代码修改, 由 修改代码后的功能分支再与支干分支进行预合并处理, 并执行后续编译和集成合并的过 程。 0117 由以上技术方案可知, 本发明实施例提供的一种代码开发方法, 包括: 从代码开发 程序中的主干分支切出一一对应的至少一个功能分支和至少一个支干分支, 支干分支与主 干分支具有相同的特性。 将每个代码开发后的功能分支与对应的支干分支进行预合并处 理, 得到预合并分支, 提前验证将功能分支合并到主干分支之后是否会出现代码冲突。 在预 合并处理成功后, 对每个预合并分支进行编译处理, 以预先验证功能分支合并到主干分支 的稳定性; 在编译处理成功后, 将编译后的预合并分支与

46、主干分支进行集成合并, 集成合并 为串行的合并方式, 即每次集成合并时只允许一个预合并分支与主干分支进行合并, 使得 后一预合并分支可以与最新的主干分支进行集成合并, 以确保每次的预合并分支与主干分 支一致, 保证每次最终的主干分支的正确性。 可见, 本发明提供的方法, 可以通过预合并方 式提前解决功能分支与主干分支合并后可能出现的代码冲突问题, 以及, 可以通过对预合 并分支进行编译的方式提前验证功能分支合并到主干分支的稳定性问题, 进而保证多人进 行代码开发时的稳定性。 0118 图6为本发明实施例提供的代码开发装置的结构框图。 0119 如图6所示, 本申请提供了一种代码开发装置, 用于

47、执行图1所示的代码开发方法, 该装置包括: 代码开发分支获取模块10, 用于获取从代码开发程序中的主干分支切出的至 少一个功能分支和至少一个支干分支, 所述功能分支和支干分支一一对应, 所述支干分支 说明书 8/10 页 11 CN 111078274 A 11 的代码与所述主干分支中的部分代码相同; 预合并处理模块20, 用于将每一个代码开发后 的功能分支和对应的所述支干分支进行预合并处理, 得到多个预合并分支; 编译处理模块 30, 用于在预合并处理成功后, 对每个所述预合并分支进行编译处理; 集成合并处理模块 40, 用于在编译处理成功后, 将所述编译后的预合并分支与主干分支进行集成合并

48、, 其中, 后一所述编译后的预合并分支在前一所述编译后的预合并分支的集成合并处理成功之后 再进行集成合并。 0120 进一步地, 所述预合并处理模块20, 包括: 预合并请求创建单元, 用于调用创建合 并请求接口, 根据所述代码开发后的功能分支和对应的支干分支, 创建预合并请求; 预合并 处理单元, 用于根据所述预合并请求, 调用合并接口, 将所述代码开发后的功能分支和对应 的支干分支进行预合并处理, 得到多个预合并分支。 0121 进一步地, 所述编译处理模块30, 包括: 编译任务创建单元, 用于调用持续集成工 具接口, 基于每个所述预合并分支, 创建对应的编译任务; 编译单元, 用于根据

49、每个所述编 译任务, 对对应的所述预合并分支进行编译; 编译结果查询单元, 用于按照预定时长, 查询 每个所述编译处理过程的编译结果; 编译过程结束确定单元, 用于在接收到的编译结果为 编译成功时, 确定对应的所述预合并分支的编译过程结束。 0122 进一步地, 所述集成合并处理模块40, 包括: 集成合并请求创建单元, 用于调用创 建合并请求接口, 根据所述编译后的预合并分支和主干分支, 创建集成合并请求; 集成合并 单元, 用于根据所述集成合并请求, 调用合并接口, 将编译后的预合并分支和主干分支进行 集成合并; 下一集成合并触发单元, 用于在当前所述编译后的预合并分支和主干分支的集 成合

50、并处理成功之后, 进行下一所述编译后的预合并分支和主干分支的集成合并处理过 程; 分支删除单元, 用于调用删除分支接口, 分别将每一个所述预合并分支删除。 0123 进一步地, 还包括: 重置指令生成模块, 用于在所述编译处理不成功, 或者, 所述集 成合并处理不成功, 生成重置指令; 删除模块, 用于根据所述重置指令, 调用持续集成工具 接口, 删除编译过程创建的编译任务, 或者, 调用删除分支接口, 删除预合并分支, 以将代码 开发状态回退到初始状态。 0124 图7为本发明实施例提供的电子设备的硬件结构示意图。 如图7所示, 本申请提供 了一种电子设备, 包括: 存储器601, 用于存储


注意事项

本文(代码开发方法、装置、电子设备和计算机存储介质.pdf)为本站会员(小**)主动上传,专利查询网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知专利查询网(点击联系客服),我们立即给予删除!




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1