金融企业如何解决代码冲突难题?光大银行这么做
中国光大银行是国内银行业在信息科技领域发展较为领先的一家全国性股份制银行,为响应和支持总行“敏捷、科技、生态”的转型战略,光大银行信息科技部在近年来着力建设 DevOps 新平台,打造适应光大银行双模式研发流程,实现支持敏捷开发、持续集成、持续交付、交付管理流程于一体的 Devops 平台。
2019 年,光大银行正式引入了企业级 DevOps 研发效能平台 Gitee。三年来,光大银行完善了代码质量管控水平,提升了需求开发的管理质量,把金融行业代码的管理标准又推上一个新的台阶。
多任务并行开发下的效率困境
在选择 Gitee 前,光大银行研发团队规模总计 3000 人左右,每日业务量巨大,并且银行各系统间存在复杂的关联,多任务并行开发、不同期投产等多种复杂的开发投产场景十分常见,因此如何快速检测、定位并处理交叉代码是提升研发效率的重点之一。
Gitee 团队凭借金融行业丰富的研发效能提升经验,迅速为光大银行研发团队定位了问题所在——代码冲突。
团队成员在使用 Git 的时候会遇到代码冲突的情况,当两名开发者先后往同一个分支发出合并请求,或者多个分支的代码合并到一个分支时,代码冲突就会出现,进而引起分支无法自动合并的问题,影响整体研发效率。
让代码合并提效又提质
针对以上问题,Gitee 团队基于服务端的分支合并冲突处理方法,综合分析了常见的代码冲突场景,为光大银行研发团队总结出了一套冲突文件检测,文件分析,文件冲突内容获取及 Web 页面展示、编辑、缓存的方案及处理流程,并将其融入 Gitee 的操作流程中。
1.自动记录变更集
在使用 Gitee 后,光大银行研发团队改变了原有按照手工输入变更集合进行提交,多个变更集冲突需要多次解决的繁琐过程。
在 Gitee 中,系统会根据规则自动记录每个需求修改的变更集。提测或投产挑拣需求时,自动按序整合挑拣需求对应的变更集文件,形成本次变更合集,如有多个变更集冲突,只需解决一次即可。
2.检测并记录冲突
获取到变更集后,Gitee 会将该变更集按序合并到自动创建的临时中间分支,检测文件是否存在多个不同版本、版本是否连续,将该变更全部检测完成后,检测到的冲突文件会记录到数据库中。
3.定位并处理冲突
随后 Gitee 将会对冲突文件排序并展示在 Web 页面上。临时中间分支文件内容是以目标分支为基点,叠加本次变更合集内容;如果叠加时出现冲突,临时中间分支会根据冲突计算规则,自动叠加影响冲突的变更集内容。
使用 Gitee 后,光大银行研发团队将文件处理方式由本地线下进行改为了更高效的在线处理。团队成员可以直接在线核对差异内容、编辑冲突文件内容并自动缓存解决结果。
团队成员可对结果进行多次处理,并且该过程支持断点续存,处理完成后 Gitee 会自动将临时中间分支内容合并到目标分支,并自动删除临时中间分支。
至此,一次高效的检测、定位并处理交叉代码的流程就执行完毕了。通过 Gitee 团队给出的针对性方案,光大银行研发团队极大地简化了冲突文件检测、定位和处理过程,并标准化了文件冲突解决流程,避免因线下操作不规范引入导致的代码质量风险。
仰望星空,更要脚踏实地
解决微观问题,才能提升宏观效率。Gitee 团队不只仰望星空,关注业界最前沿的研发管理宏观理论,更脚踏实际,调研开发团队在工作中真正出现的微观问题,只有将两者有机结合才能给开发者带来更流畅的产品体验,实现研发效能的提升。
九年发展历程当中,Gitee 凭借在代码管理、项目管理、交付流水线、代码漏洞扫描等诸多研发团队的痛点上持续发力,形成强大的产品矩阵,服务了超过 800 万名开发者,助推 20 万家企业迈向高效能研发,已为科技、金融、政府、教育等行业提供稳定、高效、有针对性的数字化转型解决方案,其中不乏中国人民银行、光大银行、徽商银行、浪潮集团、上海农商行、之江实验室、一汽集团等多家知名机构与企业,并逐渐成为成为行业内头部企业首选的合作伙伴。
关于 Gitee
本文系作者 @Gitee 原创发布在 Gitee 官方博客。未经许可,禁止转载。