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 21/36] cherry-pick: add --action-name option
Date: Sun, 9 Jun 2013 14:24:35 -0500 [thread overview]
Message-ID: <1370805890-3453-22-git-send-email-felipe.contreras@gmail.com> (raw)
In-Reply-To: <1370805890-3453-1-git-send-email-felipe.contreras@gmail.com>
So it can be used by other tools (e.g. git rebase), and the right action
is passed to the hooks and notes rewrite stuff.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
builtin/revert.c | 2 ++
builtin/sequencer.c | 17 ++++++++++++++---
builtin/sequencer.h | 2 ++
git-rebase--interactive.sh | 4 ++--
4 files changed, 20 insertions(+), 5 deletions(-)
diff --git a/builtin/revert.c b/builtin/revert.c
index d3d5600..6066ad2 100644
--- a/builtin/revert.c
+++ b/builtin/revert.c
@@ -122,6 +122,7 @@ static void parse_args(int argc, const char **argv, struct replay_opts *opts)
OPT_END(),
OPT_END(),
OPT_END(),
+ OPT_END(),
};
if (opts->action == REPLAY_PICK) {
@@ -132,6 +133,7 @@ static void parse_args(int argc, const char **argv, struct replay_opts *opts)
OPT_BOOLEAN(0, "allow-empty-message", &opts->allow_empty_message, N_("allow commits with empty messages")),
OPT_BOOLEAN(0, "keep-redundant-commits", &opts->keep_redundant_commits, N_("keep redundant, empty commits")),
OPT_BOOLEAN(0, "skip-empty", &opts->skip_empty, N_("skip empty commits")),
+ OPT_STRING(0, "action-name", &opts->action_name, N_("name"), N_("action name")),
OPT_END(),
};
if (parse_options_concat(options, ARRAY_SIZE(options), cp_extra))
diff --git a/builtin/sequencer.c b/builtin/sequencer.c
index c87008e..3fec505 100644
--- a/builtin/sequencer.c
+++ b/builtin/sequencer.c
@@ -23,11 +23,18 @@ static struct rewritten rewritten;
static void finish(struct replay_opts *opts)
{
+ const char *name;
+
if (opts->action != REPLAY_PICK)
return;
- copy_rewrite_notes(&rewritten, "cherry-pick");
- run_rewrite_hook(&rewritten, "cherry-pick");
+ name = opts->action_name ? opts->action_name : "cherry-pick";
+
+ if (!*name)
+ return;
+
+ copy_rewrite_notes(&rewritten, name);
+ run_rewrite_hook(&rewritten, name);
}
static void remove_sequencer_state(void)
@@ -744,7 +751,9 @@ static int populate_opts_cb(const char *key, const char *value, void *data)
else if (!strcmp(key, "options.strategy-option")) {
ALLOC_GROW(opts->xopts, opts->xopts_nr + 1, opts->xopts_alloc);
opts->xopts[opts->xopts_nr++] = xstrdup(value);
- } else
+ } else if (!strcmp(key, "options.action-name"))
+ git_config_string(&opts->action_name, key, value);
+ else
return error(_("Invalid key: %s"), key);
if (!error_flag)
@@ -921,6 +930,8 @@ static void save_opts(struct replay_opts *opts)
"options.strategy-option",
opts->xopts[i], "^$", 0);
}
+ if (opts->action_name)
+ git_config_set_in_file(opts_file, "options.action-name", opts->action_name);
}
static int pick_commits(struct commit_list *todo_list, struct replay_opts *opts)
diff --git a/builtin/sequencer.h b/builtin/sequencer.h
index 63ba274..c69eeff 100644
--- a/builtin/sequencer.h
+++ b/builtin/sequencer.h
@@ -46,6 +46,8 @@ struct replay_opts {
/* Only used by REPLAY_NONE */
struct rev_info *revs;
+
+ const char *action_name;
};
int sequencer_pick_revisions(struct replay_opts *opts);
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index f953d8d..9f42a71 100644
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -239,7 +239,7 @@ pick_one () {
test -d "$rewritten" &&
pick_one_preserving_merges "$@" && return
- output git cherry-pick $empty_args $ff "$@"
+ output git cherry-pick --action-name '' $empty_args $ff "$@"
}
pick_one_preserving_merges () {
@@ -350,7 +350,7 @@ pick_one_preserving_merges () {
echo "$sha1 $(git rev-parse HEAD^0)" >> "$rewritten_list"
;;
*)
- output git cherry-pick "$@" ||
+ output git cherry-pick --action-name '' "$@" ||
die_with_patch $sha1 "Could not pick $sha1"
;;
esac
--
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 ` [PATCH v5 20/36] cherry-pick: copy notes and run hooks Felipe Contreras
2013-06-09 19:24 ` Felipe Contreras [this message]
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-22-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).