Phillip Wood <phillip.wood123@xxxxxxxxx> writes: > From: Phillip Wood <phillip.wood@xxxxxxxxxxxxx> > > 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 Exciting. > > 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