欢迎光临散文网 会员登陆 & 注册

迈向规模化敏捷,头部商业银行如何解决代码冲突难题?

2023-06-29 15:19 作者:Gitee酱  | 我要投稿


当一群人同时对同一个地方的代码进行修改,会发生什么?

北京一个阳光明媚的周五,小光同学正在使用 Git 丝滑的写着代码。他马上就要完成一个金融产品特性开发,要是在下班前顺利提交代码,就可以愉快享受一个完整的周末。与之同组并行开发的还有其他 5 位小伙伴,根据开发节奏,对于准时完成任务信心十足,于是他们约好了晚上一起聚餐,大家也加快了敲代码的节奏。

下午 5 点,大家都开始提交代码,一般一个人对应一个分支来对 Feature 开发,此时有 5 个 Feature 分支都要向 Dev 分支合并。其中有三个人修改了同一个地方的代码,冲突出现了。

按照传统的代码管理方式,小光需要判断并找出「提交的冲突代码」涉及了哪些人,并且需要通知「当事人」进行本地拉取代码,从而解决冲突。然而当解决完其中一位小伙伴的代码冲突时,又会出现另一位小伙伴的代码冲突问题,周而复始,甚是折磨。

幸运的是,小光同学所任职的某头部股份制商业银行 G 也发现研发团队存在的代码冲突问题。实际上,80% 使用 Git 进行代码提交的行为都会遇到冲突,而对于银行而言,各大金融系统之间不仅存在复杂的关联,存在多任务并行开发,同时也面临不同期投产等多种复杂的开发投产场景,因此如何快速检测、定位并处理交叉代码成为该银行研发团队的困扰与难题。

于此,该头部股份制商业银行 G 通过多方评估,与开源中国(深圳市奥思网络科技有限公司)达成合作,引入市面上首屈一指的研发效能管理平台—— Gitee 旗舰版,依托旗下面向企业大规模研发生产过程的私有化代码资产管理工具—— Gitee Code,该企业的研发效能实现了下列突破:

  • 轻松应对 4 倍于以往的并行研发速度;

  • 总体冲突解决时长降低 60%;

  • 迈向面向未来的规模化敏捷。

那么,该头部股份制商业银行 G 又是如何运用 Gitee Code 提升在线解决冲突能力,轻松应对并行开发中的每次代码合并的呢?今天,我们给大家进行全方位解读。

毋需本地下载,在线解决冲突

自从引入 Gitee Code 在线解决代码冲突后,该头部股份制商业银行 G 通过覆盖整分支合并 Pull Request(分支向另外分支提出合并需求时的在线评审过程)、Cherry pick(通过摘选的模式向目标分支转移 Commit)两种 Git 的主要合并手段,结合传统 Git Flow 等分支模型整分支合并方式,分析分支间对差异,改变以往一定要下载代码到本地才能解决冲突的方式,只需在 Web 端即可解决企业的代码冲突难题

一次性、自动化、全方位进行检测

当该银行进行整分支合并时,Gitee 通过对比源分支以及目标分支差异帮助企业实现快速检测,并把冲突文件记录到数据中,方便后续开发者能通过在线方式进行冲突解决。

值得一提的是,Cherry pick 在线解决冲突方式是通过自动创建临时中间分支实现快速检测。也就是说,银行开发人员通过 Gitee 将本次变更合集按序合并到临时中间分支,检测企业文件是否存在多个不同版本、版本是否连续来进行快速检测,一次性、自动地将本次变更合计全部检测完成后,并将检测到的冲突文件记录到数据库。

更符合思维模式的三栏评审

当该银行在执行合并过程中遇到冲突文件,只需利用 Gitee Code 的三栏评审在线解决冲突能力,自动从右侧滑入冲突解决窗口,窗口上方展示冲突文件列表,开发人员只需要选择其中任意冲突文件,点击「解决冲突」按钮,下方弹出冲突解决三栏,左栏是原分支代码,右栏是目标分支代码,中间栏是合并结果,差异部分将会以高亮显示。

之后开发人员可以根据实际需要选择左栏或右栏合入,待所有文件合并完成后提交,冲突解决完毕,冲突页面即可关闭。

算法辅助定位冲突

该企业临时中间分支文件内容是以目标分支为基点,叠加本次变更合集内容;当叠加时出现冲突,Gitee 帮助该银行的研发团队对冲突文件进行排序并展示在 Web 页面上,其中临时中间分支文件内容根据冲突计算规则,自动叠加影响冲突的变更集内容。

在线解决、断点续存

自从采用了 Gitee 旗下的私有化 Gitee Code,不仅改变银行原有下载到本地线下进行代码冲突的处理方式,还支持在服务端在线处理。

因此,该银行的研发团队可以直接在线核对产品差异内容、编辑冲突内容,Gitee 将自动缓存解决结果。同时,开发人员还可以对冲突进行多次处理,支持断点续存,当冲突处理完成后,Gitee 自动将临时中间分支内容合并到目标分支,并自动删除临时中间分支。

组织变革是由每个个人的转变构成的

Gitee 基于服务端的在线分支合并冲突处理方法,不仅综合分析了常见的分支合并时文件冲突场景,总结出了一套冲突文件检测,文件分析,文件冲突内容获取及 Web 页面展示、编辑、缓存的方案及处理流程。

按此方法,Gitee 帮助该头部股份制商业银行 G 极大简化了冲突文件检测、定位和处理过程,并标准化了文件冲突解决流程,避免因线下操作不规范引入的代码质量风险。

组织变革是由一个一个的个人来完成的,一个组织中一个人的行为或观念的改变是实现转型的细胞基础。

现如今,该企业研发团队中类似小光的同学无需头疼代码冲突问题。他们只需利用 Gitee Code 的三栏评审在线解决冲突能力,在线轻松完成协作,不再需要线下组织,就能 10 分钟解决完冲突,30 分钟完成自测,不仅提高工作效率,同时也助力整个组织迈向面向未来的规模化敏捷之路

如果您想了解更多高效能组织的解决方案,欢迎复制后面的链接(链接地址:https://gitee.cn/ultimate)前往 Gitee 旗舰版 开启效能提升的关键一步。同时,您也可以复制下方链接,联系您的专属顾问,我们将在第一时间与你沟通。

链接地址:https://gitee.cn/contact-us


迈向规模化敏捷,头部商业银行如何解决代码冲突难题?的评论 (共 条)

分享到微博请遵守国家法律