Description
When running an interactive rebase, it is possible that the target commit of a fixup!
commit could not be applied due to merge conflicts (or because it has been upstreamed). In this instance, going forward with a fixup
will amend the wrong commit.
Let's prevent that.
The specifics how to prevent that are not set in stone. The easiest solution would probably be to refuse to even start with the fixup
command, to complain loudly, and to re-issue the command for the user to edit.
The tricky part will be to detect that situation because the target commit might have failed to apply cleanly, requiring manual fixing up followed by git add -u && git rebase --continue
, but those manual fixups might have resulted in no more changes to be committed, either.