用途:帮助用户将 Pull Request 回移到较旧的发布分支,尤其适用于回移过程中出现合并冲突、需要人工解决的情况。
主要能力:调用 backport CLI 完成整份 PR 或指定提交的回移;可指定目标 release(如 -r 23.2)或分支(如 -b release-23.1.10-rc);可附加 release justification(-j);可只 cherry-pick 指定提交(-c);支持强制操作(-f)。冲突时工具会停止并列出冲突文件,解决后可用 backport --continue 继续,或用 backport --abort 取消。
必要用法:始终加 --no-browser 防止打开浏览器窗口;若该参数不被识别,说明工具版本过旧,需运行 go install github.com/cockroachdb/backport@latest 升级后重试。基本形式为 backport --no-browser <pull-request>...。
目标分支判断:用户给出具体分支时直接使用;若只说“回移到所有分支/所有受支持版本”,需查阅 CockroachDB 发布支持策略页面 https://www.cockroachlabs.com/docs/releases/release-support-policy,仅回移到维护支持结束日期尚未过去的版本;处于 Assistance Support 阶段的版本只接收关键安全修复,不回移一般缺陷修复;跳过 Unsupported 表中的 EOL 版本;注意 Innovation 版本支持窗口更短且无 Assistance Support 阶段。
工作流:首次回移前先向用户询问 release justification,并在所有回移 PR 中沿用,通过 -j 传入。执行回移后若出现冲突,读取冲突文件、分析分支差异、编辑解决并 git add,再运行 backport --continue,可能需重复多次。完成后工具会 cherry-pick 提交并把分支推送到用户 fork。默认到此为止,只有用户明确要求时才创建 PR。
创建 PR:仅在用户明确要求时使用 gh pr create。标题格式为 release-XX.X: <原始 PR 标题>;正文采用 backport 工具的标准格式,包含 Backport N/N commits from #<原始 PR> on behalf of @<user>、原始提交信息以及 Release justification。
冲突处理原则:导入语句冲突、简单变量改名、格式差异、明显的 API 签名小改动可直接解决;涉及重大逻辑变更、目标分支不存在的依赖、需要大幅修改的 API 变更、多个相互依赖的冲突文件、可能不适合目标分支的改动,应向用户寻求指导。解决时先说明冲突内容与原因,再提出方案或询问。
限制:资料未提供该技能的收费、价格、支持平台或效果信息。