From: Felipe Contreras <felipe.contreras@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
Ramkumar Ramachandra <artagnon@gmail.com>,
Jonathan Nieder <jrnieder@gmail.com>,
Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>,
Felipe Contreras <felipe.contreras@gmail.com>
Subject: [PATCH v5 20/36] cherry-pick: copy notes and run hooks
Date: Sun, 9 Jun 2013 14:24:34 -0500 [thread overview]
Message-ID: <1370805890-3453-21-git-send-email-felipe.contreras@gmail.com> (raw)
In-Reply-To: <1370805890-3453-1-git-send-email-felipe.contreras@gmail.com>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
Documentation/config.txt | 9 ++++-----
Documentation/githooks.txt | 8 ++++----
builtin/rewrite.c | 1 +
builtin/sequencer.c | 18 +++++++++++++++++-
4 files changed, 26 insertions(+), 10 deletions(-)
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/rewrite.c b/builtin/rewrite.c
index 02e0ea9..acbad44 100644
--- a/builtin/rewrite.c
+++ b/builtin/rewrite.c
@@ -1,6 +1,7 @@
#include "cache.h"
#include "rewrite.h"
#include "run-command.h"
+#include "builtin.h"
void add_rewritten(struct rewritten *list, unsigned char *from, unsigned char *to)
{
diff --git a/builtin/sequencer.c b/builtin/sequencer.c
index d40fda9..c87008e 100644
--- a/builtin/sequencer.c
+++ b/builtin/sequencer.c
@@ -21,6 +21,15 @@
static struct rewritten rewritten;
+static void finish(struct replay_opts *opts)
+{
+ if (opts->action != REPLAY_PICK)
+ return;
+
+ copy_rewrite_notes(&rewritten, "cherry-pick");
+ run_rewrite_hook(&rewritten, "cherry-pick");
+}
+
static void remove_sequencer_state(void)
{
struct strbuf seq_dir = STRBUF_INIT;
@@ -935,6 +944,8 @@ static int pick_commits(struct commit_list *todo_list, struct replay_opts *opts)
}
}
+ finish(opts);
+
/*
* Sequence of picks finished successfully; cleanup by
* removing the .git/sequencer directory
@@ -1006,8 +1017,13 @@ static int sequencer_skip(struct replay_opts *opts)
static int single_pick(struct commit *cmit, struct replay_opts *opts)
{
+ int ret;
setenv(GIT_REFLOG_ACTION, action_name(opts), 0);
- return do_pick_commit(cmit, opts);
+ ret = do_pick_commit(cmit, opts);
+ if (ret)
+ return ret;
+ finish(opts);
+ return 0;
}
int sequencer_pick_revisions(struct replay_opts *opts)
--
1.8.3.698.g079b096
next prev parent reply other threads:[~2013-06-09 19:27 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-09 19:24 [PATCH v5 00/36] Massive improvents to rebase and cherry-pick Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 01/36] build: generate and clean test scripts Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 02/36] build: do not install git-remote-testgit Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 03/36] build: trivial cleanup Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 04/36] build: add builtin lib Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 05/36] log-tree: remove dependency from sequencer Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 06/36] Move sequencer to builtin Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 07/36] unpack-trees: plug a memory leak Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 08/36] read-cache: plug a few leaks Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 09/36] sequencer: remove useless indentation Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 10/36] sequencer: trivial fix Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 11/36] cherry-pick: don't barf when there's nothing to do Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 12/36] cherry-pick: add --skip-empty option Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 13/36] revert/cherry-pick: add --quiet option Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 14/36] revert/cherry-pick: add --skip option Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 15/36] builtin: add rewrite helper Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 16/36] cherry-pick: store rewritten commits Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 17/36] cherry-pick: don't store skipped commit Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 18/36] builtin: move run_rewrite_hook() to rewrite.c Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 19/36] builtin: add copy_rewrite_notes() Felipe Contreras
2013-06-09 19:24 ` Felipe Contreras [this message]
2013-06-09 19:24 ` [PATCH v5 21/36] cherry-pick: add --action-name option Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 22/36] cherry-pick: remember rerere-autoupdate Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 23/36] rebase: split the cherry-pick stuff Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 24/36] rebase: cherry-pick: fix mode storage Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 25/36] rebase: cherry-pick: fix sequence continuation Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 26/36] rebase: cherry-pick: fix abort of cherry mode Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 27/36] rebase: cherry-pick: fix command invocations Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 28/36] rebase: cherry-pick: fix status messages Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 29/36] rebase: cherry-pick: automatically commit stage Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 30/36] rebase: cherry-pick: set correct action-name Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 31/36] rebase: trivial cleanup Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 32/36] rebase: use 'cherrypick' mode instead of 'am' Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 33/36] rebase: cherry-pick: fix for shell prompt Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 34/36] rebase: cherry-pick: add merge options Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 35/36] rebase: remove merge mode Felipe Contreras
2013-06-09 19:24 ` [PATCH v5 36/36] rebase: cherry-pick: add copyright Felipe Contreras
2013-06-09 19:37 ` [PATCH v5 00/36] Massive improvents to rebase and cherry-pick Felipe Contreras
2013-06-10 22:55 ` Phil Hord
2013-06-10 23:43 ` Felipe Contreras
2013-06-11 1:09 ` Phil Hord
2013-06-11 3:52 ` Felipe Contreras
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1370805890-3453-21-git-send-email-felipe.contreras@gmail.com \
--to=felipe.contreras@gmail.com \
--cc=artagnon@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
--cc=martin.von.zweigbergk@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).