Re: [PATCH 2/3] Teach 'git remote' that the config var branch.*.rebase can be 'interactive'
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jan 13, 2016, 13:26 UTC
- Message-ID
- <alpine.DEB.2.20.1601131422260.2964@virtualbox>
- In-Reply-To
- <vpqziw9oefy.fsf@anie.imag.fr>
Hi Matthieu,
On Wed, 13 Jan 2016, Matthieu Moy wrote:
Show 23 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes: > > > On Wed, 13 Jan 2016, Matthieu Moy wrote: > > > >> Johannes Schindelin <johannes.schindelin@gmx.de> writes: > >> > >> What happens if one has branch.*.rebase=interactive, and wants to > >> make an exception? Does > >> > >> git pull --rebase=true > >> > >> cancel the 'interactive' part? > > > > It is the same situation as before (just substitute a > > branch.*.rebase=preserve setting): yes, the config is parsed first, > > then the command line, so the command line wins. > > > >> I guess it is, but if so I think it should be tested and documented. > > > > Is this really necessary, given that the behavior has not changed from > > before? > > Well, before your patch, branch.*.rebase=interactive was not possible.
But branch.*.rebase=preserve was. And it is still different from branch.*.rebase=true. And as per v2.7.0, those config settings can be overridden via the command line.
Seeing as I did not change that behavior, I would find it a bit odd to document that the command line can override the config setting.
Show 6 quoted lines
> It is not immediately clear to me that --rebase=true can mean "do the > pull with rebasing, but without going interactive", as "do pull with > rebase" and "rebase interactively" could be two independant things. > Reading the current doc does not help much: "When true, rebase the > current branch on top of the upstream branch after fetching" => it does > not say that "true" also specifies which kind of rebase is performed.
Again, I did not change that behavior, and the same confusion could arise with the "preserve" setting.
But I do not really see the confusion, as `git rebase` (without -p and without -i) means: "perform a rebase", and everybody assumes that it is a non-interactive, non-merge-preserving rebase. Hence I would assume that users know that a rebase without any further adjective refers to the plain, non-interactive, non-merge-preserving one.
Ciao, Dscho