Subject: Re: [PATCH v1 08/19] rebase -i: root commits are replayed with an unnecessary option

From: Fabian Ruch <[email-masked]>
Date: Mon, 04 Aug 2014 23:31:51 +0200

Hi Jeff,

Jeff King writes:
> On Tue, Jul 29, 2014 at 01:18:08AM +0200, Fabian Ruch wrote:
>> The command line used to recreate root commits specifies the
>> effectless option `-C`. It makes git-commit reuse commit message and
>> authorship of the named commit. However, the commit being amended
>> here, which is the sentinel commit, already carries the authorship
>> and log message of the commit being replayed. Remove the option.
>>
>> Since `-C` (in contrast to `-c`) does not invoke the editor and the
>> `--amend` option invokes it by default, disable editor invocation
>> again by specifying `--no-edit`.
> 
> I found this description a little backwards. The "-C" does have an
> effect, as you noticed in the second paragraph.
> 
> I think the reasoning is more like:
> 
>   The command line used to recreate root commits uses "-C" to
>   suppress the commit editor. This is unnecessarily confusing,
>   though, because that suppression is a secondary effect of the
>   option. The main purpose of "-C" is to pull the metadata from
>   another commit, but here we know that this is a noop, since we
>   are amending a commit just created from the same data.
> 
>   At the time, commit did not yet know "--no-edit", and this was a
>   reasonable way to get the desired behavior. We can switch it to
>   use "--no-edit" to make the intended effect more obvious.

Thanks again, I shamelessly copied your formulation but squeezed in an
"undocumented" because --no-edit had just been implemented (commit
ca1ba2010), though was then still missing from the git-commit manpage.

    Fabian