【导语代码审查是保障软件质量的重要手段但面对大型PR时传统Git工作流往往力不从心。Ben Gesoff分享了基于Jujutsu的工作流为解决这一难题提供了新方案。】传统Git工作流的困境代码审查是软件工程中保障质量的关键环节然而当面对包含数百个文件、数万行代码变更的大型PR时即便经验丰富的审查者也容易迷失。传统Git工作流在处理这类场景时存在明显不足审查者需要记住哪些文件看过、哪些未看、哪些意见已解决这种“心理清单”带来了巨大的认知负担。Jujutsu工作流的核心特性Jujutsu是新兴的版本控制系统旨在替代Git。其核心设计理念是利用不可变的事务和自动追踪的变更图消除传统Git操作的陷阱。在代码审查场景中Jujutsu的几个特性发挥了关键作用。首先是jj duplicate命令它能复制变更并保留与原始变更的关联。审查者审查大型PR时可先复制PR对应的变更复制品与原始变更相互独立便于自由操作且不影响原始代码。其次是创建空的父提交通过jj new --no-edit --insert-before 命令在当前变更下方插入空提交作为“已审查”的锚点。每当审查完一部分文件就用jj squash命令将这些文件的变更压缩进空提交标记为“已审查完成”使审查进度可视化。Jujutsu工作流的持久化优势Jujutsu工作流的精妙之处在于其“持久化”特性。传统Git工作流中暂停审查后再继续审查者可能需回想之前的进度。而在Jujutsu工作流里审查状态保存在版本历史中已被squash进父提交的文件就是已完成的部分无需额外笔记或文档记录。与竞品的横向对比业界其他大型代码审查系统有不同思路。TigerBeetle采用“分层审查”方法将大型变更拆解成多个逻辑层次逐层审查Jane Street开发了Iron系统专门追踪代码审查中的对话线程和决策历史。Jujutsu工作流与它们不同无需特殊基础设施只需一个Git替代品任何团队都可直接采用。Jujutsu工作流的落地挑战与前景Jujutsu工作流的前提是团队从Git切换到Jujutsu这对大多数团队来说迁移成本不低。不过Gesoff指出Jujutsu与Git兼容性良好可将Jujutsu仓库当作普通Git仓库使用两者边界透明。对于处理超大型项目、频繁遇到“PR太大看不过来”问题的团队这套工作流值得评估。编辑观点Jujutsu工作流为大型PR代码审查提供了创新解决方案虽有迁移成本但优势明显有望在未来为软件开发团队带来更高效的审查体验。