Felipe Contreras <felipe.contreras@xxxxxxxxx> writes: > We already rely on cherry-pick for the 'am' mode, but only when using the > --keep-empty option, and when in such mode the behavior of 'git rebase' changes > completely; more specifically; it's completely broken. Manually enabling > --keep-empty to be the default and running the test-suite shows a huge lot of > failures. > > After fixing the --keep-empty option by creating a new cherry-pick mode, this > patch series uses this new mode instead of the 'am' mode, and everything works. This may be a stupid question, but does --keep-empty only fail with the "am" mode? More specifically, how well does "rebase -i --keep-empty" work? If the answer is "very well", then it might make sense not to introduce yet another cherry-pick mode, but do exactly the same thing as what -p mode does, namely, to internally delegate the processing to "rebase -i" codepath. After all, multi-pick mode of cherry-pick uses the same sequencer machinery as rebase -i uses, so if we are already producing a correct "rebase todo" sequencer insn list for "rebase -i" anyway, it should be the matter of not launching the editor to edit the initial insn sheet to make it non-interactive, isn't it? > > There's only two tests that fail, one because the output of the shell prompt > changes a bit, and the other I have not yet investigated. > > This brings us one step closer to replace scripts with C code. > > Felipe Contreras (8): > rebase: split the cherry-pick stuff > rebase: cherry-pick: fix mode storage > rebase: cherry-pick: fix sequence continuation > rebase: cherry-pick: fix abort of cherry mode > rebase: cherry-pick: fix command invocations > rebase: cherry-pick: fix status messages > rebase: cherry-pick: automatically commit stage > rebase: use 'cherrypick' mode instead of 'am' > > .gitignore | 1 + > Makefile | 1 + > contrib/completion/git-prompt.sh | 2 ++ > git-rebase--am.sh | 12 ++----- > git-rebase--cherrypick.sh | 64 ++++++++++++++++++++++++++++++++++ > git-rebase.sh | 11 ++++-- > t/t3407-rebase-abort.sh | 2 +- > t/t5520-pull.sh | 2 +- > t/t9106-git-svn-commit-diff-clobber.sh | 2 +- > 9 files changed, 82 insertions(+), 15 deletions(-) > create mode 100644 git-rebase--cherrypick.sh -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html