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

[RFC PATCH 00/11] rebase -i run without forking rebase--interactive

From
PWPhillip Wood <phillip.wood123@gmail.com>
Date
Mar 19, 2019, 19:03 UTC
Message-ID
<20190319190317.6632-1-phillip.wood123@gmail.com>
From: Phillip Wood <phillip.wood@dunelm.org.uk>

When the builtin rebase starts an interactive rebase it parses the options and then repackages them and forks `rebase--interactive`. This series refactors rebase--interactive so that interactive rebases can be started by the builtin rebase without forking. My motivation was to make it easier to debug the sequencer but this should help future maintainability.

This series involves some code movement so viewing the diffs with --color-moved is recommended.

These patches are based on a merge of master [e902e9bcae ("The second batch", 2019-03-11)] and ag/sequencer-reduce-rewriting-todo ed35d18841 ("rebase--interactive: move transform_todo_file()", 2019-03-05). They can be fetched from the tag rebase-i-no-fork/rfc at https://github.com/phillipwood/git.git

Phillip Wood (11):
  sequencer: always discard index after checkout
  rebase: rename write_basic_state()
  rebase: use OPT_RERERE_AUTOUPDATE()
  rebase -i: combine rebase--interactive.c with rebase.c
  rebase -i: remove duplication
  rebase -i: use struct commit when parsing options
  rebase -i: use struct object_id for squash_onto
  rebase -i: use struct rebase_options to parse args
  rebase -i: use struct rebase_options in do_interactive_rebase()
  rebase: use a common action enum
  rebase -i: run without forking rebase--interactive
 Makefile                      |   1 -
 builtin/rebase--interactive.c | 377 --------------------
 builtin/rebase.c              | 625 ++++++++++++++++++++++++++--------
 parse-options-cb.c            |  34 ++
 parse-options.h               |   4 +
 sequencer.c                   |  42 ++-
 sequencer.h                   |   7 +-
 7 files changed, 556 insertions(+), 534 deletions(-)
 delete mode 100644 builtin/rebase--interactive.c
-- 
2.21.0
Next: Phillip Wood
Message 1 of 40 in “rebase -i run without forking rebase--interactive”
  1. 00/11 rebase -i run without forking rebase--interactivePhillip Wood, Mar 19, 2019
  2. 02/11 rebase: rename write_basic_state()Phillip Wood, Mar 19, 2019
  3. 01/11 sequencer: always discard index after checkoutPhillip Wood, Mar 19, 2019
  4. Duy NguyenMar 20, 2019
  5. Phillip WoodMar 21, 2019
  6. 03/11 rebase: use OPT_RERERE_AUTOUPDATE()Phillip Wood, Mar 19, 2019
  7. 05/11 rebase -i: remove duplicationPhillip Wood, Mar 19, 2019
  8. 06/11 rebase -i: use struct commit when parsing optionsPhillip Wood, Mar 19, 2019
  9. 04/11 rebase -i: combine rebase--interactive.c with rebase.cPhillip Wood, Mar 19, 2019
  10. 07/11 rebase -i: use struct object_id for squash_ontoPhillip Wood, Mar 19, 2019
  11. 08/11 rebase -i: use struct rebase_options to parse argsPhillip Wood, Mar 19, 2019
  12. Junio C HamanoMar 21, 2019
  13. Phillip WoodMar 21, 2019
  14. Junio C HamanoMar 22, 2019
  15. Alban GruinMar 21, 2019
  16. Phillip WoodApr 10, 2019
  17. 10/11 rebase: use a common action enumPhillip Wood, Mar 19, 2019
  18. Ævar Arnfjörð BjarmasonMar 19, 2019
  19. Phillip WoodMar 21, 2019
  20. 09/11 rebase -i: use struct rebase_options in do_interactive_rebase()Phillip Wood, Mar 19, 2019
  21. 11/11 rebase -i: run without forking rebase--interactivePhillip Wood, Mar 19, 2019
  22. Josh SteadmonMar 20, 2019
  23. Ævar Arnfjörð BjarmasonMar 20, 2019
  24. Phillip WoodMar 21, 2019
  25. Junio C HamanoMar 21, 2019
  26. 00/12 Run rebase -i without forking rebase--interactivePhillip Wood, Apr 17, 2019
  27. 01/12 sequencer: always discard index after checkoutPhillip Wood, Apr 17, 2019
  28. 03/12 rebase: rename write_basic_state()Phillip Wood, Apr 17, 2019
  29. 04/12 rebase: use OPT_RERERE_AUTOUPDATE()Phillip Wood, Apr 17, 2019
  30. 02/12 rebase: don't translate trace stringsPhillip Wood, Apr 17, 2019
  31. Junio C HamanoApr 19, 2019
  32. Phillip WoodApr 25, 2019
  33. 05/12 rebase -i: combine rebase--interactive.c with rebase.cPhillip Wood, Apr 17, 2019
  34. 06/12 rebase -i: remove duplicationPhillip Wood, Apr 17, 2019
  35. 08/12 rebase -i: use struct object_id for squash_ontoPhillip Wood, Apr 17, 2019
  36. 07/12 rebase -i: use struct commit when parsing optionsPhillip Wood, Apr 17, 2019
  37. 09/12 rebase -i: use struct rebase_options to parse argsPhillip Wood, Apr 17, 2019
  38. 10/12 rebase -i: use struct rebase_options in do_interactive_rebase()Phillip Wood, Apr 17, 2019
  39. 12/12 rebase -i: run without forking rebase--interactivePhillip Wood, Apr 17, 2019
  40. 11/12 rebase: use a common action enumPhillip Wood, Apr 17, 2019

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.