A rebase that changes nothing stales every approval #198

closed cmc opened this on 2026-09-07 21:59 UTC · mr review

Discussion

cmc 2026-09-07 21:59 UTC

Observed on ttorg/widget!1. main moved while the merge request was under review, so a fast-forward was refused. The author rebased; the diff against the merge base was unchanged; every approval went stale and the merge needed all three reviewers again, codeowners included. On an ff-only repository (this one) any merge request that waits behind another pays this on every catch-up.

CI already keys on the commit's tree (#177). Reviews key on the head sha. A review should stay fresh when the diff it approved is the diff still proposed: compare the merge-base diff (or the range-diff) of the old and new head rather than the sha.

Seen in the same run: the author's own approval, marked stale before the rebase, read as stale: false after it. It carries counts: false so nothing merged on it, but the flag is wrong.

Ref #185

closed by commit a5ee6a83a1 by cmc: gitutil, store, hookd, wiki: a rebase that keeps the diff keeps the approvals

2026-09-08 02:35 UTC