Subject: Re: [PATCH] rebase -i: fixup fixup! fixup!

From: Andrew Pimlott <[email-masked]>
Date: Tue, 25 Jun 2013 16:03:52 -0700

Excerpts from Junio C Hamano's message of Tue Jun 25 14:45:07 -0700 2013:
> After all, autosquash will give the user an opportunity to eyeball
> the result of automatic rearrangement.  If the user did this:
> 
>     git commit -m original
>         git commit --fixup original ;# obviously fixing the first one
>         git commit --fixup '!fixup original' ;# explicitly fixing the second
>     git commit --fixup original ;# may want to fix the first one
> 
> and then "git rebase --autosquash" gave him this:
> 
>     pick d78c915 original
>         fixup 0c6388e original
>         fixup d15b556 !fixup original
>         fixup 1e39bcd original

I assume you mean:

    pick d78c915 original
    fixup 0c6388e fixup! original
    fixup d15b556 fixup! fixup! original
    fixup 1e39bcd !fixup! original

The current master code tries to keep the original commit message
intact.  I assume you would preserve that behavior, so you would want to
see "fixup! fixup!"

> it may not be what the user originally intended, but I think it is
> OK.
> 
> As long as "!fixup original" message is kept in the buffer, the user
> can notice and rearrange, e.g.

Thomas's patch didn't do this: fixup! or squash! after the first is
simply discarded, so you see:

    pick d78c915 original
    fixup 0c6388e fixup! original
    fixup d15b556 fixup! original
    fixup 1e39bcd !fixup! original

But it will be a simple change to keep all the fixup!s and squash!s.  I
will do this (and try to make up for the carelessness of my previous
patch).

Andrew