Files
deepseek-harness/.agents/notes/implemented/process/2026-07-26-incremental-pr-base-retargeting.zh.md
T
2026-07-26 21:59:03 +08:00

1.8 KiB
Raw Blame History

Agent Note: 增量更新 PR 的 base 分支

Status: implemented

English | 中文

问题

将 PR(Pull Request)的 base 分支当前顶端提交合入 PR 分支的过程中,base 分支可能继续前移。若改从新的顶端提交重新开始,就会丢弃已经完成的冲突解决和验证工作。重写已经推送的合并还会抹去可供评审的历史记录。

决策

每次观察到的 base 分支顶端提交都保留为独立的合并检查点。如果处理期间 base 分支继续前移,先完成并验证正在进行的合并,再将其提交;任务授权推送时,还要完成推送。完成这些步骤后,才能拉取较新的 base,并通过单独的合并提交将其合入。绝不放弃先前工作,也不通过 amend、rebase 或其他方式重写它。

根 AGENTS.md 规定了这项常设指令。堆叠 PR 落地 skill(技能)在调整依赖 PR 的 base 时执行这一规则,堆叠评审指南则负责说明如何将修复沿堆叠向下合并。

曾考虑的替代方案

中止当前工作,改从最新 base 重新开始。 这会丢弃已经解决的冲突和完成的验证,重复劳动,并失去一个有用的恢复点。

重写为一次同时包含两个 base 分支顶端的合并。 这会掩盖冲突解决的顺序;如果第一次合并已经推送,还必须重写远程历史。

后果

  • PR 的 base 多次前移时,这个 PR 可以包含多个用于合并 base 的提交。
  • 已完成的工作不会被丢弃,而是保持可供评审和恢复。
  • 合入较新的 base 会改变合并后的文件树,因此相关检查会在下一次推送前重新运行。