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

[PATCH v5 00/36] Massive improvents to rebase and cherry-pick

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Jun 9, 2013, 19:24 UTC
Message-ID
<1370805890-3453-1-git-send-email-felipe.contreras@gmail.com>
Same as before, but:
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 7fd4035..d72d2d2 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -1679,11 +1679,10 @@ GIT_NOTES_REF) is also implicitly added to the list of refs to be
 displayed.
 
 notes.rewrite.<command>::
-	When rewriting commits with <command> (currently `amend` or
-	`rebase`) and this variable is set to `true`, Git
-	automatically copies your notes from the original to the
-	rewritten commit.  Defaults to `true`, but see
-	"notes.rewriteRef" below.
+	When rewriting commits with <command> (currently `amend`, `rebase`, or
+	`cherry-pick`) and this variable is set to `true`, Git automatically
+	copies your notes from the original to the rewritten commit.  Defaults
+	to `true`, but see "notes.rewriteRef" below.
 
 notes.rewriteMode::
 	When copying notes during a rewrite (see the
diff --git a/Documentation/githooks.txt b/Documentation/githooks.txt
index d48bf4d..8cfa13b 100644
--- a/Documentation/githooks.txt
+++ b/Documentation/githooks.txt
@@ -352,10 +352,10 @@ post-rewrite
 ~~~~~~~~~~~~
 
 This hook is invoked by commands that rewrite commits (`git commit
---amend`, 'git-rebase'; currently 'git-filter-branch' does 'not' call
-it!).  Its first argument denotes the command it was invoked by:
-currently one of `amend` or `rebase`.  Further command-dependent
-arguments may be passed in the future.
+--amend`, `git rebase`, `git cherry-pick`; currently `git filter-branch` does
+'not' call it!).  Its first argument denotes the command it was invoked by
+(e.g. `rebase`).  Further command-dependent arguments may be passed in the
+future.
 
 The hook receives a list of the rewritten commits on stdin, in the
 format
diff --git a/builtin/sequencer.c b/builtin/sequencer.c
index ddd369f..f805883 100644
--- a/builtin/sequencer.c
+++ b/builtin/sequencer.c
@@ -33,8 +33,8 @@ static void finish(struct replay_opts *opts)
 	if (!*name)
 		return;
 
-	run_rewrite_hook(&rewritten, name);
 	copy_rewrite_notes(&rewritten, name);
+	run_rewrite_hook(&rewritten, name);
 }
 
 static void remove_sequencer_state(void)

Felipe Contreras (36):
  build: generate and clean test scripts
  build: do not install git-remote-testgit
  build: trivial cleanup
  build: add builtin lib
  log-tree: remove dependency from sequencer
  Move sequencer to builtin
  unpack-trees: plug a memory leak
  read-cache: plug a few leaks
  sequencer: remove useless indentation
  sequencer: trivial fix
  cherry-pick: don't barf when there's nothing to do
  cherry-pick: add --skip-empty option
  revert/cherry-pick: add --quiet option
  revert/cherry-pick: add --skip option
  builtin: add rewrite helper
  cherry-pick: store rewritten commits
  cherry-pick: don't store skipped commit
  builtin: move run_rewrite_hook() to rewrite.c
  builtin: add copy_rewrite_notes()
  cherry-pick: copy notes and run hooks
  cherry-pick: add --action-name option
  cherry-pick: remember rerere-autoupdate
  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: cherry-pick: set correct action-name
  rebase: trivial cleanup
  rebase: use 'cherrypick' mode instead of 'am'
  rebase: cherry-pick: fix for shell prompt
  rebase: cherry-pick: add merge options
  rebase: remove merge mode
  rebase: cherry-pick: add copyright

 .gitignore                             |   1 +
 Documentation/config.txt               |   9 +-
 Documentation/git-cherry-pick.txt      |  10 +-
 Documentation/git-revert.txt           |   7 +-
 Documentation/githooks.txt             |   8 +-
 Documentation/sequencer.txt            |   3 +
 Makefile                               |  31 ++--
 builtin/commit.c                       |  46 +-----
 builtin/revert.c                       |  17 +++
 builtin/rewrite.c                      | 124 ++++++++++++++++
 builtin/rewrite.h                      |  20 +++
 sequencer.c => builtin/sequencer.c     | 263 +++++++++++++--------------------
 sequencer.h => builtin/sequencer.h     |  12 +-
 contrib/completion/git-prompt.sh       |   4 +-
 git-rebase--am.sh                      |  12 +-
 git-rebase--cherrypick.sh              |  72 +++++++++
 git-rebase--interactive.sh             |   4 +-
 git-rebase--merge.sh                   | 151 -------------------
 git-rebase.sh                          |  16 +-
 log-tree.c                             | 161 +++++++++++++++++++-
 log-tree.h                             |   3 +
 read-cache.c                           |   4 +
 t/t3406-rebase-message.sh              |  15 --
 t/t3407-rebase-abort.sh                |   2 +-
 t/t3420-rebase-autostash.sh            |   2 +-
 t/t3508-cherry-pick-many-commits.sh    |  13 ++
 t/t3510-cherry-pick-sequence.sh        |  14 +-
 t/t5520-pull.sh                        |   2 +-
 t/t9106-git-svn-commit-diff-clobber.sh |   2 +-
 t/t9903-bash-prompt.sh                 |   2 +-
 unpack-trees.c                         |   4 +-
 31 files changed, 608 insertions(+), 426 deletions(-)
 create mode 100644 builtin/rewrite.c
 create mode 100644 builtin/rewrite.h
 rename sequencer.c => builtin/sequencer.c (86%)
 rename sequencer.h => builtin/sequencer.h (86%)
 create mode 100644 git-rebase--cherrypick.sh
 delete mode 100644 git-rebase--merge.sh
-- 
1.8.3.698.g079b096
Next: Felipe Contreras
Message 1 of 42 in “Massive improvents to rebase and cherry-pick”
  1. 00/36 Massive improvents to rebase and cherry-pickFelipe Contreras, Jun 9, 2013
  2. 01/36 build: generate and clean test scriptsFelipe Contreras, Jun 9, 2013
  3. 02/36 build: do not install git-remote-testgitFelipe Contreras, Jun 9, 2013
  4. 03/36 build: trivial cleanupFelipe Contreras, Jun 9, 2013
  5. 04/36 build: add builtin libFelipe Contreras, Jun 9, 2013
  6. 05/36 log-tree: remove dependency from sequencerFelipe Contreras, Jun 9, 2013
  7. 06/36 Move sequencer to builtinFelipe Contreras, Jun 9, 2013
  8. 07/36 unpack-trees: plug a memory leakFelipe Contreras, Jun 9, 2013
  9. 08/36 read-cache: plug a few leaksFelipe Contreras, Jun 9, 2013
  10. 09/36 sequencer: remove useless indentationFelipe Contreras, Jun 9, 2013
  11. 10/36 sequencer: trivial fixFelipe Contreras, Jun 9, 2013
  12. 11/36 cherry-pick: don't barf when there's nothing to doFelipe Contreras, Jun 9, 2013
  13. 12/36 cherry-pick: add --skip-empty optionFelipe Contreras, Jun 9, 2013
  14. 13/36 revert/cherry-pick: add --quiet optionFelipe Contreras, Jun 9, 2013
  15. 14/36 revert/cherry-pick: add --skip optionFelipe Contreras, Jun 9, 2013
  16. 15/36 builtin: add rewrite helperFelipe Contreras, Jun 9, 2013
  17. 16/36 cherry-pick: store rewritten commitsFelipe Contreras, Jun 9, 2013
  18. 17/36 cherry-pick: don't store skipped commitFelipe Contreras, Jun 9, 2013
  19. 18/36 builtin: move run_rewrite_hook() to rewrite.cFelipe Contreras, Jun 9, 2013
  20. 19/36 builtin: add copy_rewrite_notes()Felipe Contreras, Jun 9, 2013
  21. 20/36 cherry-pick: copy notes and run hooksFelipe Contreras, Jun 9, 2013
  22. 21/36 cherry-pick: add --action-name optionFelipe Contreras, Jun 9, 2013
  23. 22/36 cherry-pick: remember rerere-autoupdateFelipe Contreras, Jun 9, 2013
  24. 23/36 rebase: split the cherry-pick stuffFelipe Contreras, Jun 9, 2013
  25. 24/36 rebase: cherry-pick: fix mode storageFelipe Contreras, Jun 9, 2013
  26. 25/36 rebase: cherry-pick: fix sequence continuationFelipe Contreras, Jun 9, 2013
  27. 26/36 rebase: cherry-pick: fix abort of cherry modeFelipe Contreras, Jun 9, 2013
  28. 27/36 rebase: cherry-pick: fix command invocationsFelipe Contreras, Jun 9, 2013
  29. 28/36 rebase: cherry-pick: fix status messagesFelipe Contreras, Jun 9, 2013
  30. 29/36 rebase: cherry-pick: automatically commit stageFelipe Contreras, Jun 9, 2013
  31. 30/36 rebase: cherry-pick: set correct action-nameFelipe Contreras, Jun 9, 2013
  32. 31/36 rebase: trivial cleanupFelipe Contreras, Jun 9, 2013
  33. 32/36 rebase: use 'cherrypick' mode instead of 'am'Felipe Contreras, Jun 9, 2013
  34. 33/36 rebase: cherry-pick: fix for shell promptFelipe Contreras, Jun 9, 2013
  35. 34/36 rebase: cherry-pick: add merge optionsFelipe Contreras, Jun 9, 2013
  36. 35/36 rebase: remove merge modeFelipe Contreras, Jun 9, 2013
  37. 36/36 rebase: cherry-pick: add copyrightFelipe Contreras, Jun 9, 2013
  38. Felipe ContrerasJun 9, 2013
  39. Phil HordJun 10, 2013
  40. Felipe ContrerasJun 10, 2013
  41. Phil HordJun 11, 2013
  42. Felipe ContrerasJun 11, 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.