Re: [PATCH v1 08/19] rebase -i: root commits are replayed with an unnecessary option
From: Jeff King <hidden>
Date: 2016-06-15 23:02:07
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. -Peff