Re: [PATCH v1 08/19] rebase -i: root commits are replayed with an unnecessary option
- From
Fabian Ruch <bafain@gmail.com>
- Date
- Aug 4, 2014, 21:31 UTC
- Message-ID
- <53DFFBC7.2070902@gmail.com>
- In-Reply-To
- <20140802001322.GC20040@peff.net>
Hi Jeff,
Jeff King writes:
Show 26 quoted lines
> 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