From: Yuxuan Chen Date: Fri, 10 Jul 2026 18:30:14 GMT Subject: Re: [PATCH] sequencer: honor --empty when a fixup!/squash! empties its target Message-ID: <20260710182937.716304-1-i@yuxuan.ch> In-Reply-To: From: Yuxuan Chen Hi Phillip, I'm Yuxuan, and I work with Farid at Meta. Thank you for reviewing this patch. It addresses a workflow problem for us, and we appreciate your feedback. Regarding > Using an empty commit has a marker has the advantage that applying it cannot > create conflicts, so you only have to deal with the conflicts caused by the > commit being dropped, not the by fixup not applying cleanly. I am concerned, however, that representing a `drop!` commit as an empty marker would be semantically unsound. We expect `rebase --autosquash` to drop the target commit, but until that rebase happens, the repository is not in a state where we consider the target commit dropped: the target's changes are still present, and the empty marker changes nothing. Therefore, I think a `drop!` commit should contain the inverse of the patch we intend to drop. That way, the repository state reflects the intended removal even before autosquash rewrites the history. I recognize that applying the inverse patch may cause conflicts. However, this is not a new problem; `git revert` has the same issue when the inverse patch does not apply cleanly. Such conflicts reflect the actual difficulty of undoing the change at that point in the history. Thanks, Yuxuan