Eric Sunshine pointed out that I had such a commit message in https://public-inbox.org/git/CAPig+cRrS0_nYJJY=O6cboV630sNQHPV5QGrQdD8MW-sYzNFGQ@xxxxxxxxxxxxxx/ and I went on a hunt to figure out how the heck this happened. Turns out that if there is a fixup/squash chain where the *last* command fails with merge conflicts, and we either --skip ahead or resolve the conflict to a clean tree and then --continue, our code does not do a final cleanup. Contrary to my initial gut feeling, this bug was not introduced by my rewrite in C of the core parts of rebase -i, but it looks to me as if that bug was with us for a very long time (at least the --skip part). The developer (read: user of rebase -i) in me says that we would want to fast-track this, but the author of rebase -i in me says that we should be cautious and cook this in `next` for a while. Johannes Schindelin (3): rebase -i: demonstrate bug with fixup!/squash! commit messages sequencer: leave a tell-tale when a fixup/squash failed rebase --skip: clean up commit message after a failed fixup/squash sequencer.c | 57 ++++++++++++++++++++++++++++++++------ t/t3418-rebase-continue.sh | 21 ++++++++++++++ 2 files changed, 69 insertions(+), 9 deletions(-) base-commit: fe0a9eaf31dd0c349ae4308498c33a5c3794b293 Published-As: https://github.com/dscho/git/releases/tag/clean-msg-after-fixup-continue-v1 Fetch-It-Via: git fetch https://github.com/dscho/git clean-msg-after-fixup-continue-v1 -- 2.17.0.windows.1.15.gaa56ade3205