Re: [PATCH 2/2] rebase: remember fixup -c after skipping fixup/squash

Phillip Wood <[email protected]>
Newsgroups org.kernel.vger.git
Message-ID <[email protected]>
Hi Junio

On 24/07/2026 22:18, Junio C Hamano wrote:
> Phillip Wood <[email protected]> writes:
> 
>>   	return starts_with(ctx->current_fixups.buf, "squash") ||
>>   		strstr(ctx->current_fixups.buf, "\nsquash");
>> +}
>> +
>> +/* Does the current fixup chain contain a "fixup -c" command? */
>> +static int seen_fixup_edit_msg(struct replay_ctx *ctx)
>> +{
>> +	return starts_with(ctx->current_fixups.buf, "fixup -c") ||
>> +		strstr(ctx->current_fixups.buf, "\nfixup -c");
>>   }
> 
> It is a bit annoying that "git diff" decided to consider the "}" at
> the end of the otherwise unmodified function to be the one that was
> added X-<.  But thanks to it, we can see this mirrors the previous
> function to check if we have "squash" anywhere.  I wonder what
> diff-algorithm was used to produce this result, but it is an
> unrelated tangent.

Patience diff without the diff slider. When I was reviewing some of 
Ezekiel's patches I noticed that the diff slider was munging some diffs 
generated by patience in a way I didn't like so I tried turning it off 
to see what happened. It seems I haven't rebuilt my local git in a while ...

>> @@ -5391,8 +5403,8 @@ static int commit_staged_changes(struct repository *r,
>>   				 * message, no need to bother the user with
>>   				 * opening the commit message in the editor.
>>   				 */
>> -				if (!starts_with(p, "squash ") &&
>> -				    !strstr(p, "\nsquash "))
>> +				if (!seen_squash(ctx) &&
>> +				    !seen_fixup_edit_msg(ctx))
>>   					flags = (flags & ~EDIT_MSG) | CLEANUP_MSG;
> 
> If 'fixup -c' is anywhere in the chain, we would need to offer the
> user a chance to edit (similar to having 'squash').
> 
> It is a bit surprising that the 'squash' detection, for which we
> already had a helper function, was open-coded here.  I also notice
> that the helpers (including the new 'fixup -c' one) do not insist on
> having a space immediately after the verb 'squash'.  Should we add
> one above?

I'm not sure the space thing makes much difference as this isn't the 
todo file that the user edits. We're reading a file that we've written 
and the lines can only start with "fixup" or "squash"

> Other than these minor nits, this looks good.
> 
> It is a bit disappointing that, with so many users who crucially
> depend on the proper operation of 'rebase -i', we have received no
> review comments on these two patches so far.  Perhaps summer is a
> truly quiet and slow season ;-)

Oswald mentioned in another thread that he'd read these and they seemed 
to make sense. In general I find it hard to attract reviewers for 
rebase/sequencer patches - it is one of those features that everyone 
uses but not many people on the list seem to be familiar with the code.

> I will wait for a few more days and then mark the topic for 'next'.

Thanks for your review, I've sent a re-roll fixing the newline detection 
in the previous patch.

Thanks

Phillip
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.