Re: [PATCH v1 08/19] rebase -i: root commits are replayed with an unnecessary option
- From
Jeff King <peff@peff.net>
- Date
- Aug 2, 2014, 00:13 UTC
- Message-ID
- <20140802001322.GC20040@peff.net>
- In-Reply-To
- <7ed1b44ae05860a556d86c8b90ac6fff0906128d.1406589435.git.bafain@gmail.com>
On Tue, Jul 29, 2014 at 01:18:08AM +0200, Fabian Ruch wrote:
Show 9 quoted lines
> 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