git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC][GSoC] Project proposal: convert interactive rebase to C

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Mar 21, 2018, 23:51 UTC
Message-ID
<nycvar.QRO.7.76.6.1803220043180.77@ZVAVAG-6OXH6DA.rhebcr.pbec.zvpebfbsg.pbz>
In-Reply-To
<46112353.MVnaADNoVi@andromeda>
Hi Alban,
On Wed, 21 Mar 2018, Alban Gruin wrote:
Show 11 quoted lines
> Le mardi 20 mars 2018 17:29:28 CET, vous avez écrit :
> 
> > Also, I have a hunch that there is actually almost nothing left to
> > rewrite after my sequencer improvements that made it into Git v2.13.0,
> > together with the upcoming changes (which are on top of the
> > --recreate-merges patch series, hence I did not send them to the
> > mailing list yet) in
> > https://github.com/dscho/git/commit/c261f17a4a3e
> 
> One year ago, you said[2] that converting this script "will fill up 3
> month, very easily". Is this not accurate anymore?
Let me read that mail ;-)
*goes and reads*

Well, I was talking about two different aspects to Ivan and to you. I should have been clearer. So let me try again:

To convert `git-rebase--interactive.sh`, I think the most important part is to factor out the preserve-merges code into its own script. After that, there is little I can think of (apart from support for --root, which a not-yet-contributed patch in my sequencer-shears branch on https://github.com/dscho/git addresses) that still needs to be converted. For somebody familiar with Git's source code, I would estimate one week (and therefore 3 weeks would be a realistic estimate :-)).

Come to think of it, a better approach might be to leave the preserve-merges stuff in, and teach `git-rebase.sh` to call the sequencer directly for --interactive without --preserve-merges, then rename the script to git-rebase--preserve.sh

The other aspect, the one I thought would take up to 3 months, easily, was to convert the entirety of rebase -i into C. That would entail also the option parsing, for which you would have to convert also git-rebase.sh (and if you do not convert git-rebase--am.sh and git-rebase--merge.sh first, you would then have to teach builtin/rebase.c to populate the environment variables expected by those shell scripts while spawning them).

I still think that the latter is too big a task for a single GSoC.
> I’ll send a new draft as soon as possible (hopefully this afternoon).
I look forward to reading it!

Ciao, Johannes

Previous: Alban GruinNext: Alban Gruin
Message 5 of 8 in “[RFC][GSoC] Project proposal: convert interactive rebase to C”
  1. Alban GruinMar 17, 2018
  2. Christian CouderMar 17, 2018
  3. Johannes SchindelinMar 20, 2018
  4. Alban GruinMar 21, 2018
  5. Johannes SchindelinMar 21, 2018
  6. Alban GruinMar 22, 2018
  7. Christian CouderMar 24, 2018
  8. Alban GruinMar 25, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.