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

Re: [GSoC 2011 v2] Git Sequencer

From
Christian Couder <christian.couder@gmail.com>
Date
Apr 6, 2011, 08:11 UTC
Message-ID
<BANLkTim5B1PGHr+TKGFaekywUh9r6K_Htg@mail.gmail.com>
In-Reply-To
<20110405200008.GC25644@kytes>
Hi,

On Tue, Apr 5, 2011 at 10:00 PM, Ramkumar Ramachandra <artagnon@gmail.com> wrote:

Show 11 quoted lines
>
> 2. Build a sequencer so that just has cherry-picking functionality.
> This mostly involves moving code written in (1) around, and crafting a
> general API for handling conflicts.
>
> 2.1. Factor out the 'cherry-pick' code from 'revert.c' into a new
> 'builtin/sequencer.c'.
>
> 2.2. Write an API for handling conflicts, so that the sequencer is
> ultimate entry/ exit point for all user intervention in a multi-step
> process [4].

This one may be more difficult than we can guess right now, and it is linked with 2.4 that is optional too. And I wouldn't like you to spend too much time on it if it appears to be quite difficult. So I'd suggest that you switch 2.2 and 2.3 and make the new 2.3 optional.

Show 8 quoted lines
> 2.3. Implement a fresh 'cherry-pick.c' on top of the sequencer.  Make
> sure that all the existing tests pass.
>
> 2.4 [Optional] Patch 'builtin/merge.c' to use the conflict handler in
> the sequencer.
>
> 3. Extend the sequencer to accomodate the functionality provided by
> 'rebase -i'.
s/accomodate/accommodate/
> 3.1. Parse commands like 'execute', 'reword', 'squash', and 'fixup'
> that are specific to interactive rebasing.  Carefully implement the
> functionality for each of these keywords in a step-wise manner.
I think that here you could add something like:

3.2. Make 'rebase -i' use the sequencer when '--preserve-merges' option is not used.

> 3.2. [Optional] Port the '--preserve-merges' option of 'rebase' to the
> sequencer.  Port relevant tests from 't3409'.
> 4. [Optional] Lib'ify the sequncer.
s/sequncer/sequencer/
Show 6 quoted lines
> Modify the API to
> include rebase-related functionality.  Write 'rebase.c' as a bunch of
> API calls to the sequencer.  Make sure that the existing tests pass.
>
> 5. [Optional] Re-implement 'git-am.sh' as a thin wrapper over the
> sequncer: 'am.c'.
s/sequncer/sequencer/
> Bulk of this should be mbox parsing code.  Make sure
> that all existing tests pass.
>
> [Optional] should be read as "If time permits"
Otherwise I like it very much.

Thanks, Christian.

Previous: Ramkumar RamachandraNext: Ramkumar Ramachandra
Message 19 of 20 in “[GSoC 2011] Git Sequencer”
  1. Ramkumar RamachandraApr 3, 2011
  2. Sverre RabbelierApr 3, 2011
  3. Stephan BeyerApr 3, 2011
  4. Ramkumar RamachandraApr 3, 2011
  5. Jonathan NiederApr 3, 2011
  6. Daniel BarkalowApr 3, 2011
  7. Ramkumar RamachandraApr 4, 2011
  8. Ramkumar RamachandraApr 4, 2011
  9. Daniel BarkalowApr 4, 2011
  10. Ramkumar RamachandraApr 5, 2011
  11. Daniel BarkalowApr 5, 2011
  12. Ramkumar RamachandraApr 5, 2011
  13. Christian CouderApr 4, 2011
  14. Junio C HamanoApr 4, 2011
  15. Christian CouderApr 5, 2011
  16. Ramkumar RamachandraApr 5, 2011
  17. Ramkumar RamachandraApr 4, 2011
  18. [GSoC 2011 v2] Git SequencerRamkumar Ramachandra, Apr 5, 2011
  19. Christian CouderApr 6, 2011
  20. Ramkumar RamachandraApr 6, 2011

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.