From: Phillip Wood <[email protected]>
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