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

Re: [RFC/PATCH v2 0/8] rebase: new cherry-pick mode

From
Junio C Hamano <gitster@pobox.com>
Date
May 29, 2013, 23:23 UTC
Message-ID
<7vehcpqsk4.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1369801000-3705-1-git-send-email-felipe.contreras@gmail.com>
Felipe Contreras <felipe.contreras@gmail.com> writes:
Show 8 quoted lines
> 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?

Show 27 quoted lines
>
> 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
Previous: Felipe ContrerasNext: Felipe Contreras
Message 20 of 21 in “rebase: new cherry-pick mode”
  1. 0/8 rebase: new cherry-pick modeFelipe Contreras, May 29, 2013
  2. 1/8 rebase: split the cherry-pick stuffFelipe Contreras, May 29, 2013
  3. 2/8 rebase: cherry-pick: fix mode storageFelipe Contreras, May 29, 2013
  4. Martin von ZweigbergkMay 29, 2013
  5. Felipe ContrerasMay 29, 2013
  6. 3/8 rebase: cherry-pick: fix sequence continuationFelipe Contreras, May 29, 2013
  7. Martin von ZweigbergkMay 29, 2013
  8. Felipe ContrerasMay 29, 2013
  9. Martin von ZweigbergkMay 29, 2013
  10. Felipe ContrerasMay 29, 2013
  11. Martin von ZweigbergkMay 29, 2013
  12. 4/8 rebase: cherry-pick: fix abort of cherry modeFelipe Contreras, May 29, 2013
  13. Martin von ZweigbergkMay 29, 2013
  14. Felipe ContrerasMay 29, 2013
  15. Stefano LattariniMay 29, 2013
  16. 5/8 rebase: cherry-pick: fix command invocationsFelipe Contreras, May 29, 2013
  17. 6/8 rebase: cherry-pick: fix status messagesFelipe Contreras, May 29, 2013
  18. 7/8 rebase: cherry-pick: automatically commit stageFelipe Contreras, May 29, 2013
  19. 8/8 rebase: use 'cherrypick' mode instead of 'am'Felipe Contreras, May 29, 2013
  20. Junio C HamanoMay 29, 2013
  21. Felipe ContrerasMay 30, 2013

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.