Re: What's cooking in git.git (Sep 2016, #05; Mon, 19)
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Sep 21, 2016, 18:22 UTC
- Message-ID
- <alpine.DEB.2.20.1609211937360.129229@virtualbox>
- In-Reply-To
- <xmqq8tulclcu.fsf@gitster.mtv.corp.google.com>
Hi Junio,
On Wed, 21 Sep 2016, Junio C Hamano wrote:
Show 21 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes: > > >> * jk/rebase-i-drop-ident-check (2016-07-29) 1 commit > >> (merged to 'next' on 2016-08-14 at 6891bcd) > >> + rebase-interactive: drop early check for valid ident > >> > >> Even when "git pull --rebase=preserve" (and the underlying "git > >> rebase --preserve") can complete without creating any new commit > >> (i.e. fast-forwards), it still insisted on having a usable ident > >> information (read: user.email is set correctly), which was less > >> than nice. As the underlying commands used inside "git rebase" > >> would fail with a more meaningful error message and advice text > >> when the bogus ident matters, this extra check was removed. > >> > >> Will hold to see if people scream. > >> cf. <20160729224944.GA23242@sigill.intra.peff.net> > > > > Let's do this. > > We have already been doing it (i.e. "hold to see if people scream") > for some time.
I meant: let's merge this to `master`.
> Does it conflict with your effort to reimplement "rebase -i" in C
I do not think so.
Show 5 quoted lines
> to keep this in 'next'? Do you want it to move to 'master'? I was > under the impression that it would not make a difference to have or not > have this patch once your reimplementation gets merged (meaning: the > removal of the three lines will be done by wholesale removal of > git-rebase--interactive.sh done the endgame of your series), so...
Oh, I failed to make clear that my patch series do *not* remove git-rebase--interactive.sh. I just barely started to work to that end. While the speed improvements are quite noticable, the rebase--helper command still only implements the performance-critical code paths in C.
There is quite a bit of work left to do before git-rebase--interactive.sh can be retired:
- --root is not handled via the sequencer yet,
- --preserve-merges is not handled either [*1*],
- the shell script still sets up the state directory,
- option parsing is still all-shell,
- probably more tasks I forgot.
The good news is that these parts can be converted independently from each other, and even by independent developers (hint, hint ;-)).
Ciao, Dscho
Footnote *1*: I am not sure that I want to port -p to C: in my view, this is a failed experiment, to be replaced with a design based on my Git garden shears. I tend to think that that part should be moved to a new shell script ("git-rebase--preserve-merges.sh"?) unless some developer other than me feels strongly enough to put their money where their mouth is and teach the sequencer about it.