"Harald Nordgren via GitGitGadget" [off-list ref] writes:
+ /*
+ * Allow "fixup! <hex object id>", but not "fixup! HEAD^" or
+ * "fixup! main". If the target is not being squshed check the subject
+ * to allow "fixup! abc123" and "fixup! <subject of abc123>" to be
+ * squashed together.
+ */
+ target = lookup_commit_reference_by_name(s);
+ if (target && istarts_with(oid_to_hex(&target->object.oid), s)) {
Why istarts_with()? "fixup! ABCdef" should not be accepted, should it?