From: Johannes Schindelin <johannes.schindelin@gmx.de>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>
Subject: [PATCH 14/22] sequencer: prepare for rebase -i's commit functionality
Date: Mon, 29 Aug 2016 10:06:01 +0200 (CEST) [thread overview]
Message-ID: <1d83fa095c03eac9abfd1038ff7791bae8ace984.1472457609.git.johannes.schindelin@gmx.de> (raw)
In-Reply-To: <cover.1472457609.git.johannes.schindelin@gmx.de>
In interactive rebases, we commit a little bit differently than the
sequencer did so far: we heed the "author-script", the "message" and
the "amend" files in the .git/rebase-merge/ subdirectory.
Likewise, we may want to edit the commit message *even* when providing
a file containing the suggested commit message. Therefore we change the
code to not even provide a default message when we do not want any, and
to call the editor explicitly.
As interactive rebase's GPG settings are configured differently from
how cherry-pick (and therefore sequencer) handles them, we will leave
support for that to the next commit.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
sequencer.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++--------
sequencer.h | 3 ++
2 files changed, 83 insertions(+), 12 deletions(-)
diff --git a/sequencer.c b/sequencer.c
index 3398774..b124980 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -27,6 +27,16 @@ static GIT_PATH_FUNC(git_path_todo_file, "sequencer/todo")
static GIT_PATH_FUNC(git_path_opts_file, "sequencer/opts")
static GIT_PATH_FUNC(git_path_head_file, "sequencer/head")
+/*
+ * A script to set the GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, and
+ * GIT_AUTHOR_DATE that will be used for the commit that is currently
+ * being rebased.
+ */
+static GIT_PATH_FUNC(rebase_path_author_script, "rebase-merge/author-script")
+
+/* We will introduce the 'interactive rebase' mode later */
+#define IS_REBASE_I() 0
+
static const char *get_dir(const struct replay_opts *opts)
{
return git_path_seq_dir();
@@ -377,20 +387,72 @@ static int is_index_unchanged(void)
return !hashcmp(active_cache_tree->sha1, head_commit->tree->object.oid.hash);
}
+static char **read_author_script(void)
+{
+ struct strbuf script = STRBUF_INIT;
+ int i, count = 0;
+ char *p, *p2, **env;
+ size_t env_size;
+
+ if (strbuf_read_file(&script, rebase_path_author_script(), 256) <= 0)
+ return NULL;
+
+ for (p = script.buf; *p; p++)
+ if (skip_prefix(p, "'\\\\''", (const char **)&p2))
+ strbuf_splice(&script, p - script.buf, p2 - p, "'", 1);
+ else if (*p == '\'')
+ strbuf_splice(&script, p-- - script.buf, 1, "", 0);
+ else if (*p == '\n') {
+ *p = '\0';
+ count++;
+ }
+
+ env_size = (count + 1) * sizeof(*env);
+ strbuf_grow(&script, env_size);
+ memmove(script.buf + env_size, script.buf, script.len);
+ p = script.buf + env_size;
+ env = (char **)strbuf_detach(&script, NULL);
+
+ for (i = 0; i < count; i++) {
+ env[i] = p;
+ p += strlen(p) + 1;
+ }
+ env[count] = NULL;
+
+ return env;
+}
+
/*
* If we are cherry-pick, and if the merge did not result in
* hand-editing, we will hit this commit and inherit the original
* author date and name.
* If we are revert, or if our cherry-pick results in a hand merge,
- * we had better say that the current user is responsible for that.
+ * we had better say that the current user is responsible for that
+ * (except, of course, while running an interactive rebase).
*/
-static int run_git_commit(const char *defmsg, struct replay_opts *opts,
+int sequencer_commit(const char *defmsg, struct replay_opts *opts,
int allow_empty)
{
+ char **env = NULL;
struct argv_array array;
int rc;
const char *value;
+ if (IS_REBASE_I()) {
+ env = read_author_script();
+ if (!env)
+ return error("You have staged changes in your working "
+ "tree. If these changes are meant to be\n"
+ "squashed into the previous commit, run:\n\n"
+ " git commit --amend $gpg_sign_opt_quoted\n\n"
+ "If they are meant to go into a new commit, "
+ "run:\n\n"
+ " git commit $gpg_sign_opt_quoted\n\n"
+ "In both case, once you're done, continue "
+ "with:\n\n"
+ " git rebase --continue\n");
+ }
+
argv_array_init(&array);
argv_array_push(&array, "commit");
argv_array_push(&array, "-n");
@@ -399,14 +461,13 @@ static int run_git_commit(const char *defmsg, struct replay_opts *opts,
argv_array_pushf(&array, "-S%s", opts->gpg_sign);
if (opts->signoff)
argv_array_push(&array, "-s");
- if (!opts->edit) {
- argv_array_push(&array, "-F");
- argv_array_push(&array, defmsg);
- if (!opts->signoff &&
- !opts->record_origin &&
- git_config_get_value("commit.cleanup", &value))
- argv_array_push(&array, "--cleanup=verbatim");
- }
+ if (defmsg)
+ argv_array_pushl(&array, "-F", defmsg, NULL);
+ if (opts->edit)
+ argv_array_push(&array, "-e");
+ else if (!opts->signoff && !opts->record_origin &&
+ git_config_get_value("commit.cleanup", &value))
+ argv_array_push(&array, "--cleanup=verbatim");
if (allow_empty)
argv_array_push(&array, "--allow-empty");
@@ -414,8 +475,11 @@ static int run_git_commit(const char *defmsg, struct replay_opts *opts,
if (opts->allow_empty_message)
argv_array_push(&array, "--allow-empty-message");
- rc = run_command_v_opt(array.argv, RUN_GIT_CMD);
+ rc = run_command_v_opt_cd_env(array.argv, RUN_GIT_CMD, NULL,
+ (const char *const *)env);
argv_array_clear(&array);
+ free(env);
+
return rc;
}
@@ -664,7 +728,8 @@ static int do_pick_commit(enum todo_command command, struct commit *commit,
goto leave;
}
if (!opts->no_commit)
- res = run_git_commit(git_path_merge_msg(), opts, allow);
+ res = sequencer_commit(opts->edit ? NULL : git_path_merge_msg(),
+ opts, allow);
leave:
free_message(commit, &msg);
@@ -859,6 +924,9 @@ static int populate_opts_cb(const char *key, const char *value, void *data)
static int read_populate_opts(struct replay_opts *opts)
{
+ if (IS_REBASE_I())
+ return 0;
+
if (!file_exists(git_path_opts_file()))
return 0;
if (git_config_from_file(populate_opts_cb, git_path_opts_file(), opts) < 0)
diff --git a/sequencer.h b/sequencer.h
index 674f11e..9f63c31 100644
--- a/sequencer.h
+++ b/sequencer.h
@@ -49,6 +49,9 @@ int sequencer_continue(struct replay_opts *opts);
int sequencer_rollback(struct replay_opts *opts);
int sequencer_remove_state(struct replay_opts *opts);
+int sequencer_commit(const char *defmsg, struct replay_opts *opts,
+ int allow_empty);
+
extern const char sign_off_header[];
void append_signoff(struct strbuf *msgbuf, int ignore_footer, unsigned flag);
--
2.10.0.rc1.114.g2bd6b38
next prev parent reply other threads:[~2016-08-29 8:06 UTC|newest]
Thread overview: 352+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-29 8:03 [PATCH 00/22] Prepare the sequencer for the upcoming rebase -i patches Johannes Schindelin
2016-08-29 8:03 ` [PATCH 01/22] sequencer: use static initializers for replay_opts Johannes Schindelin
2016-08-29 9:19 ` Dennis Kaarsemaker
2016-08-29 10:54 ` Johannes Schindelin
2016-08-29 17:41 ` Jakub Narębski
2016-08-29 17:06 ` Johannes Schindelin
2016-08-29 8:04 ` [PATCH 02/22] sequencer: use memoized sequencer directory path Johannes Schindelin
2016-08-29 19:54 ` Jakub Narębski
2016-08-29 17:10 ` Johannes Schindelin
2016-08-29 8:04 ` [PATCH 03/22] sequencer: avoid unnecessary indirection Johannes Schindelin
2016-08-29 20:22 ` Jakub Narębski
2016-08-29 17:15 ` Johannes Schindelin
2016-08-29 8:04 ` [PATCH 04/22] sequencer: future-proof remove_sequencer_state() Johannes Schindelin
2016-08-29 9:24 ` Dennis Kaarsemaker
2016-08-29 10:58 ` Johannes Schindelin
2016-08-29 11:19 ` Johannes Schindelin
2016-08-29 8:04 ` [PATCH 05/22] sequencer: allow the sequencer to take custody of malloc()ed data Johannes Schindelin
2016-08-29 21:59 ` Jakub Narębski
2016-08-30 5:33 ` Johannes Sixt
2016-08-30 7:30 ` Johannes Schindelin
2016-08-30 7:29 ` Johannes Schindelin
2016-08-30 11:08 ` Jakub Narębski
2016-08-30 18:25 ` Junio C Hamano
2016-08-31 8:20 ` Johannes Schindelin
2016-08-29 8:04 ` [PATCH 06/22] sequencer: release memory that was allocated when reading options Johannes Schindelin
2016-08-30 14:54 ` Jakub Narębski
2016-08-30 17:52 ` Johannes Schindelin
2016-08-30 20:46 ` Johannes Sixt
2016-08-30 22:07 ` Junio C Hamano
2016-08-30 22:00 ` Jakub Narębski
2016-08-30 18:30 ` Junio C Hamano
2016-08-31 8:07 ` Johannes Schindelin
2016-08-29 8:04 ` [PATCH 07/22] sequencer: future-proof read_populate_todo() Johannes Schindelin
2016-08-30 16:07 ` Jakub Narębski
2016-08-30 16:48 ` Johannes Schindelin
2016-08-29 8:04 ` [PATCH 08/22] sequencer: remove overzealous assumption Johannes Schindelin
2016-08-31 13:41 ` Jakub Narębski
2016-08-31 18:36 ` Johannes Schindelin
2016-08-31 18:46 ` Jakub Narębski
2016-09-01 8:01 ` Johannes Schindelin
2016-09-01 20:00 ` Jakub Narębski
2016-08-31 19:01 ` Junio C Hamano
2016-09-01 8:02 ` Johannes Schindelin
2016-08-29 8:05 ` [PATCH 09/22] sequencer: completely revamp the "todo" script parsing Johannes Schindelin
2016-08-31 17:29 ` Jakub Narębski
2016-08-31 23:03 ` Stefan Beller
2016-09-01 6:35 ` Johannes Schindelin
2016-09-01 18:37 ` Junio C Hamano
2016-09-01 7:49 ` Johannes Schindelin
2016-09-01 22:05 ` Jakub Narębski
2016-09-09 14:12 ` Johannes Schindelin
2016-08-29 8:05 ` [PATCH 10/22] sequencer: avoid completely different messages for different actions Johannes Schindelin
2016-08-31 17:58 ` Jakub Narębski
2016-09-01 7:52 ` Johannes Schindelin
2016-09-01 22:33 ` Jakub Narębski
2016-09-09 14:23 ` Johannes Schindelin
2016-08-29 8:05 ` [PATCH 11/22] sequencer: get rid of the subcommand field Johannes Schindelin
2016-08-31 18:24 ` Jakub Narębski
2016-09-01 7:55 ` Johannes Schindelin
2016-08-29 8:05 ` [PATCH 12/22] sequencer: refactor the code to obtain a short commit name Johannes Schindelin
2016-08-29 9:39 ` Dennis Kaarsemaker
2016-08-29 11:04 ` Johannes Schindelin
2016-08-29 8:05 ` [PATCH 13/22] sequencer: remember the onelines when parsing the todo file Johannes Schindelin
2016-08-31 18:37 ` Jakub Narębski
2016-08-31 19:10 ` Junio C Hamano
2016-08-31 19:24 ` Jakub Narębski
2016-08-31 19:42 ` Junio C Hamano
2016-09-01 13:14 ` Johannes Schindelin
2016-09-01 13:12 ` Johannes Schindelin
2016-09-01 22:52 ` Jakub Narębski
2016-09-01 9:37 ` Johannes Schindelin
2016-09-01 18:47 ` Junio C Hamano
2016-09-09 15:12 ` Johannes Schindelin
2016-09-09 19:06 ` Jakub Narębski
2016-09-11 8:33 ` Git garden shears, was " Johannes Schindelin
2016-09-21 13:17 ` Jakub Narębski
2016-09-25 18:16 ` Johannes Schindelin
2016-09-01 22:46 ` Jakub Narębski
2016-09-01 22:59 ` Junio C Hamano
2016-09-09 14:27 ` Johannes Schindelin
2016-09-01 8:45 ` Johannes Schindelin
2016-08-29 8:06 ` Johannes Schindelin [this message]
2016-08-29 21:32 ` [PATCH 14/22] sequencer: prepare for rebase -i's commit functionality Junio C Hamano
2016-08-30 6:53 ` Johannes Schindelin
2016-08-30 17:32 ` Junio C Hamano
2016-08-30 18:18 ` Johannes Schindelin
2016-08-30 22:35 ` Junio C Hamano
2016-08-31 8:19 ` Johannes Schindelin
2016-08-29 8:06 ` [PATCH 15/22] sequencer: introduce a helper to read files written by scripts Johannes Schindelin
2016-08-29 9:47 ` Dennis Kaarsemaker
2016-08-29 11:08 ` Johannes Schindelin
2016-08-29 8:06 ` [PATCH 16/22] sequencer: prepare for rebase -i's GPG settings Johannes Schindelin
2016-08-31 20:10 ` Jakub Narębski
2016-08-31 20:12 ` Junio C Hamano
2016-08-31 20:29 ` Jakub Narębski
2016-08-31 20:33 ` Junio C Hamano
2016-09-01 13:35 ` Johannes Schindelin
2016-09-01 13:33 ` Johannes Schindelin
2016-09-01 13:33 ` Johannes Schindelin
2016-09-01 23:21 ` Jakub Narębski
2016-08-29 8:06 ` [PATCH 17/22] sequencer: allow editing the commit message on a case-by-case basis Johannes Schindelin
2016-08-31 20:56 ` Jakub Narębski
2016-09-01 13:40 ` Johannes Schindelin
2016-08-29 8:06 ` [PATCH 18/22] sequencer: support amending commits Johannes Schindelin
2016-08-31 21:08 ` Jakub Narębski
2016-09-01 13:42 ` Johannes Schindelin
2016-08-29 8:06 ` [PATCH 19/22] sequencer: support cleaning up commit messages Johannes Schindelin
2016-09-01 10:31 ` Jakub Narębski
2016-09-01 13:56 ` Johannes Schindelin
2016-09-01 23:31 ` Jakub Narębski
2016-08-29 8:06 ` [PATCH 20/22] sequencer: remember do_recursive_merge()'s return value Johannes Schindelin
2016-08-29 9:51 ` Dennis Kaarsemaker
2016-08-29 11:09 ` Johannes Schindelin
2016-08-29 20:32 ` Jakub Narębski
2016-08-29 21:13 ` Junio C Hamano
2016-08-29 8:06 ` [PATCH 21/22] sequencer: left-trim the lines read from the script Johannes Schindelin
2016-09-01 10:50 ` Jakub Narębski
2016-09-01 14:13 ` Johannes Schindelin
2016-09-01 17:58 ` Junio C Hamano
2016-09-09 15:08 ` Johannes Schindelin
2016-09-01 23:33 ` Jakub Narębski
2016-09-09 14:31 ` Johannes Schindelin
2016-08-29 8:06 ` [PATCH 22/22] sequencer: refactor write_message() Johannes Schindelin
2016-09-01 11:10 ` Jakub Narębski
2016-09-01 14:20 ` Johannes Schindelin
2016-09-01 23:35 ` Jakub Narębski
2016-09-09 14:40 ` Johannes Schindelin
2016-09-09 19:11 ` Jakub Narębski
2016-09-11 8:26 ` Johannes Schindelin
2016-08-29 9:56 ` [PATCH 00/22] Prepare the sequencer for the upcoming rebase -i patches Dennis Kaarsemaker
2016-08-29 11:10 ` Johannes Schindelin
2016-09-02 11:41 ` Jakub Narębski
2016-09-02 13:56 ` Johannes Schindelin
2016-09-11 10:52 ` [PATCH v2 00/25] " Johannes Schindelin
2016-09-11 10:52 ` [PATCH v2 01/25] sequencer: use static initializers for replay_opts Johannes Schindelin
2016-09-12 19:46 ` Junio C Hamano
2016-09-11 10:52 ` [PATCH v2 02/25] sequencer: use memoized sequencer directory path Johannes Schindelin
2016-09-12 19:48 ` Junio C Hamano
2016-09-11 10:52 ` [PATCH v2 03/25] sequencer: avoid unnecessary indirection Johannes Schindelin
2016-09-12 19:49 ` Junio C Hamano
2016-09-11 10:53 ` [PATCH v2 04/25] sequencer: future-proof remove_sequencer_state() Johannes Schindelin
2016-09-12 19:53 ` Junio C Hamano
2016-10-05 11:46 ` Johannes Schindelin
2016-10-05 17:41 ` Junio C Hamano
2016-09-11 10:53 ` [PATCH v2 05/25] sequencer: allow the sequencer to take custody of malloc()ed data Johannes Schindelin
2016-09-12 19:46 ` Junio C Hamano
2016-10-05 11:41 ` Johannes Schindelin
2016-10-06 19:23 ` Junio C Hamano
2016-10-06 22:40 ` Jakub Narębski
2016-10-06 22:53 ` Junio C Hamano
2016-10-08 9:11 ` Johannes Schindelin
2016-09-11 10:53 ` [PATCH v2 06/25] sequencer: release memory that was allocated when reading options Johannes Schindelin
2016-09-11 10:53 ` [PATCH v2 07/25] sequencer: future-proof read_populate_todo() Johannes Schindelin
2016-09-11 10:53 ` [PATCH v2 08/25] sequencer: completely revamp the "todo" script parsing Johannes Schindelin
2016-09-11 10:53 ` [PATCH v2 09/25] sequencer: avoid completely different messages for different actions Johannes Schindelin
2016-09-11 10:53 ` [PATCH v2 10/25] sequencer: get rid of the subcommand field Johannes Schindelin
2016-09-15 19:15 ` Junio C Hamano
2016-09-11 10:54 ` [PATCH v2 11/25] sequencer: refactor the code to obtain a short commit name Johannes Schindelin
2016-09-11 10:54 ` [PATCH v2 12/25] sequencer: remember the onelines when parsing the todo file Johannes Schindelin
2016-09-11 10:54 ` [PATCH v2 13/25] sequencer: prepare for rebase -i's commit functionality Johannes Schindelin
2016-09-11 10:54 ` [PATCH v2 14/25] sequencer: introduce a helper to read files written by scripts Johannes Schindelin
2016-09-11 10:54 ` [PATCH v2 15/25] sequencer: prepare for rebase -i's GPG settings Johannes Schindelin
2016-09-11 10:54 ` [PATCH v2 16/25] sequencer: allow editing the commit message on a case-by-case basis Johannes Schindelin
2016-09-11 10:55 ` [PATCH v2 17/25] sequencer: support amending commits Johannes Schindelin
2016-09-12 21:36 ` Junio C Hamano
2016-10-05 12:41 ` Johannes Schindelin
2016-09-11 10:55 ` [PATCH v2 18/25] sequencer: support cleaning up commit messages Johannes Schindelin
2016-09-12 21:33 ` Junio C Hamano
2016-09-11 10:55 ` [PATCH v2 19/25] sequencer: remember do_recursive_merge()'s return value Johannes Schindelin
2016-09-12 21:23 ` Junio C Hamano
2016-10-05 12:35 ` Johannes Schindelin
2016-10-05 17:43 ` Junio C Hamano
2016-09-11 10:55 ` [PATCH v2 20/25] sequencer: left-trim lines read from the script Johannes Schindelin
2016-09-11 23:39 ` Junio C Hamano
2016-09-12 8:23 ` Johannes Schindelin
2016-09-12 15:42 ` Junio C Hamano
2016-10-06 13:08 ` Johannes Schindelin
2016-10-06 16:23 ` Johannes Sixt
2016-10-06 18:41 ` Junio C Hamano
2016-10-09 8:57 ` Johannes Schindelin
2016-10-09 10:45 ` Johannes Sixt
2016-09-11 10:55 ` [PATCH v2 21/25] sequencer: refactor write_message() Johannes Schindelin
2016-09-11 23:38 ` Junio C Hamano
2016-09-12 8:35 ` Johannes Sixt
2016-09-15 19:21 ` Junio C Hamano
2016-10-05 13:08 ` Johannes Schindelin
2016-09-11 10:55 ` [PATCH v2 22/25] sequencer: remove overzealous assumption in rebase -i mode Johannes Schindelin
2016-09-11 23:35 ` Junio C Hamano
2016-09-11 10:55 ` [PATCH v2 23/25] sequencer: mark action_name() for translation Johannes Schindelin
2016-09-11 10:55 ` [PATCH v2 24/25] sequencer: quote filenames in error messages Johannes Schindelin
2016-09-11 23:33 ` Junio C Hamano
2016-10-06 13:41 ` Johannes Schindelin
2016-09-11 10:56 ` [PATCH v2 25/25] sequencer: remove bogus hint for translators Johannes Schindelin
2016-09-11 23:30 ` Junio C Hamano
2016-10-06 14:18 ` Johannes Schindelin
2016-10-10 17:24 ` [PATCH v3 00/25] Prepare the sequencer for the upcoming rebase -i patches Johannes Schindelin
2016-10-10 17:24 ` [PATCH v3 01/25] sequencer: use static initializers for replay_opts Johannes Schindelin
2016-10-10 22:14 ` Junio C Hamano
2016-10-10 17:24 ` [PATCH v3 02/25] sequencer: use memoized sequencer directory path Johannes Schindelin
2016-10-10 17:24 ` [PATCH v3 03/25] sequencer: avoid unnecessary indirection Johannes Schindelin
2016-10-10 22:14 ` Junio C Hamano
2016-10-10 17:24 ` [PATCH v3 04/25] sequencer: future-proof remove_sequencer_state() Johannes Schindelin
2016-10-10 17:24 ` [PATCH v3 05/25] sequencer: eventually release memory allocated for the option values Johannes Schindelin
2016-10-10 22:18 ` Junio C Hamano
2016-10-11 10:07 ` Johannes Schindelin
2016-10-11 16:30 ` Junio C Hamano
2016-10-12 12:06 ` Johannes Schindelin
2016-10-12 18:20 ` Re* " Junio C Hamano
2016-10-13 10:51 ` Johannes Schindelin
2016-10-10 17:24 ` [PATCH v3 06/25] sequencer: future-proof read_populate_todo() Johannes Schindelin
2016-10-10 17:25 ` [PATCH v3 07/25] sequencer: completely revamp the "todo" script parsing Johannes Schindelin
2016-10-10 22:13 ` Junio C Hamano
2016-10-11 10:20 ` Johannes Schindelin
2016-10-11 10:22 ` Johannes Schindelin
2016-10-11 10:55 ` Johannes Schindelin
2016-10-11 16:58 ` Junio C Hamano
2016-10-11 16:54 ` Junio C Hamano
2016-10-15 17:03 ` Torsten Bögershausen
2016-10-15 17:19 ` Jeff King
2016-10-15 17:40 ` Torsten Bögershausen
2016-10-15 17:46 ` Jeff King
2016-10-16 8:09 ` Johannes Schindelin
2016-10-16 19:42 ` Jeff King
2016-10-17 8:37 ` Johannes Schindelin
2016-10-17 9:36 ` Jeff King
2016-10-10 17:25 ` [PATCH v3 08/25] sequencer: strip CR from the todo script Johannes Schindelin
2016-10-11 18:54 ` Junio C Hamano
2016-10-12 11:46 ` Johannes Schindelin
2016-10-10 17:25 ` [PATCH v3 09/25] sequencer: avoid completely different messages for different actions Johannes Schindelin
2016-10-10 17:25 ` [PATCH v3 10/25] sequencer: get rid of the subcommand field Johannes Schindelin
2016-10-10 17:25 ` [PATCH v3 11/25] sequencer: refactor the code to obtain a short commit name Johannes Schindelin
2016-10-10 17:25 ` [PATCH v3 12/25] sequencer: remember the onelines when parsing the todo file Johannes Schindelin
2016-10-11 19:07 ` Junio C Hamano
2016-10-12 11:49 ` Johannes Schindelin
2016-10-12 16:24 ` Junio C Hamano
2016-10-13 10:41 ` Johannes Schindelin
2016-10-10 17:25 ` [PATCH v3 13/25] sequencer: prepare for rebase -i's commit functionality Johannes Schindelin
2016-10-11 19:17 ` Junio C Hamano
2016-10-12 12:00 ` Johannes Schindelin
2016-10-12 16:55 ` Junio C Hamano
2016-10-13 10:50 ` Johannes Schindelin
2016-10-14 16:41 ` Junio C Hamano
2016-10-10 17:25 ` [PATCH v3 14/25] sequencer: introduce a helper to read files written by scripts Johannes Schindelin
2016-10-17 17:17 ` Junio C Hamano
2016-10-18 11:42 ` Johannes Schindelin
2016-10-18 15:54 ` Junio C Hamano
2016-10-20 12:07 ` Johannes Schindelin
2016-10-10 17:25 ` [PATCH v3 15/25] sequencer: allow editing the commit message on a case-by-case basis Johannes Schindelin
2016-10-17 17:18 ` Junio C Hamano
2016-10-10 17:25 ` [PATCH v3 16/25] sequencer: support amending commits Johannes Schindelin
2016-10-17 17:22 ` Junio C Hamano
2016-10-18 11:53 ` Johannes Schindelin
2016-10-18 15:56 ` Junio C Hamano
2016-10-10 17:26 ` [PATCH v3 17/25] sequencer: support cleaning up commit messages Johannes Schindelin
2016-10-10 17:26 ` [PATCH v3 18/25] sequencer: do not try to commit when there were merge conflicts Johannes Schindelin
2016-10-10 17:26 ` [PATCH v3 19/25] sequencer: left-trim lines read from the script Johannes Schindelin
2016-10-10 17:26 ` [PATCH v3 20/25] sequencer: refactor write_message() Johannes Schindelin
2016-10-10 17:26 ` [PATCH v3 21/25] sequencer: remove overzealous assumption in rebase -i mode Johannes Schindelin
2016-10-10 17:26 ` [PATCH v3 22/25] sequencer: mark action_name() for translation Johannes Schindelin
2016-10-10 17:26 ` [PATCH v3 23/25] sequencer: quote filenames in error messages Johannes Schindelin
2016-10-10 17:26 ` [PATCH v3 24/25] sequencer: start error messages consistently with lower case Johannes Schindelin
2016-10-10 17:26 ` [PATCH v3 25/25] sequencer: mark all error messages for translation Johannes Schindelin
2016-10-12 20:46 ` Johannes Sixt
2016-10-12 21:24 ` Junio C Hamano
2016-10-13 14:56 ` Johannes Schindelin
2016-10-13 20:35 ` Johannes Sixt
2016-10-14 13:15 ` [PATCH v4 00/25] Prepare the sequencer for the upcoming rebase -i patches Johannes Schindelin
2016-10-14 13:15 ` [PATCH v4 01/25] sequencer: use static initializers for replay_opts Johannes Schindelin
2016-10-14 13:17 ` [PATCH v4 02/25] sequencer: use memoized sequencer directory path Johannes Schindelin
2016-10-14 13:17 ` [PATCH v4 03/25] sequencer: avoid unnecessary indirection Johannes Schindelin
2016-10-14 13:17 ` [PATCH v4 04/25] sequencer: future-proof remove_sequencer_state() Johannes Schindelin
2016-10-14 13:17 ` [PATCH v4 05/25] sequencer: eventually release memory allocated for the option values Johannes Schindelin
2016-10-17 19:06 ` Junio C Hamano
2016-10-18 12:03 ` Johannes Schindelin
2016-10-19 1:12 ` Junio C Hamano
2016-10-20 12:16 ` Johannes Schindelin
2016-10-14 13:17 ` [PATCH v4 06/25] sequencer: future-proof read_populate_todo() Johannes Schindelin
2016-10-14 13:17 ` [PATCH v4 07/25] sequencer: refactor the code to obtain a short commit name Johannes Schindelin
2016-10-14 13:17 ` [PATCH v4 08/25] sequencer: completely revamp the "todo" script parsing Johannes Schindelin
2016-10-17 22:33 ` Junio C Hamano
2016-10-18 12:25 ` Johannes Schindelin
2016-10-14 13:17 ` [PATCH v4 09/25] sequencer: strip CR from the todo script Johannes Schindelin
2016-10-14 13:17 ` [PATCH v4 10/25] sequencer: avoid completely different messages for different actions Johannes Schindelin
2016-10-14 13:18 ` [PATCH v4 11/25] sequencer: get rid of the subcommand field Johannes Schindelin
2016-10-14 13:18 ` [PATCH v4 12/25] sequencer: remember the onelines when parsing the todo file Johannes Schindelin
2016-10-14 13:18 ` [PATCH v4 13/25] sequencer: prepare for rebase -i's commit functionality Johannes Schindelin
2016-10-14 13:18 ` [PATCH v4 14/25] sequencer: introduce a helper to read files written by scripts Johannes Schindelin
2016-10-14 13:18 ` [PATCH v4 15/25] sequencer: allow editing the commit message on a case-by-case basis Johannes Schindelin
2016-10-14 13:18 ` [PATCH v4 16/25] sequencer: support amending commits Johannes Schindelin
2016-10-14 13:18 ` [PATCH v4 17/25] sequencer: support cleaning up commit messages Johannes Schindelin
2016-10-20 20:06 ` Junio C Hamano
2016-10-14 13:18 ` [PATCH v4 18/25] sequencer: do not try to commit when there were merge conflicts Johannes Schindelin
2016-10-20 20:11 ` Junio C Hamano
2016-10-21 11:10 ` Johannes Schindelin
2016-10-14 13:18 ` [PATCH v4 19/25] sequencer: left-trim lines read from the script Johannes Schindelin
2016-10-14 13:18 ` [PATCH v4 20/25] sequencer: refactor write_message() Johannes Schindelin
2016-10-20 20:22 ` Junio C Hamano
2016-10-20 20:26 ` Junio C Hamano
2016-10-21 11:43 ` Johannes Schindelin
2016-10-21 15:40 ` Junio C Hamano
2016-10-23 9:29 ` Johannes Schindelin
2016-10-14 13:18 ` [PATCH v4 21/25] sequencer: remove overzealous assumption in rebase -i mode Johannes Schindelin
2016-10-14 13:19 ` [PATCH v4 22/25] sequencer: mark action_name() for translation Johannes Schindelin
2016-10-14 13:19 ` [PATCH v4 23/25] sequencer: quote filenames in error messages Johannes Schindelin
2016-10-20 20:27 ` Junio C Hamano
2016-10-20 20:28 ` Junio C Hamano
2016-10-14 13:19 ` [PATCH v4 24/25] sequencer: start error messages consistently with lower case Johannes Schindelin
2016-10-14 13:19 ` [PATCH v4 25/25] sequencer: mark all error messages for translation Johannes Schindelin
2016-10-17 19:08 ` [PATCH v4 00/25] Prepare the sequencer for the upcoming rebase -i patches Junio C Hamano
2016-10-21 12:23 ` [PATCH v5 00/27] " Johannes Schindelin
2016-10-21 12:23 ` [PATCH v5 01/27] sequencer: use static initializers for replay_opts Johannes Schindelin
2016-10-21 12:23 ` [PATCH v5 02/27] sequencer: use memoized sequencer directory path Johannes Schindelin
2016-10-21 12:24 ` [PATCH v5 03/27] sequencer: avoid unnecessary indirection Johannes Schindelin
2016-10-21 12:24 ` [PATCH v5 04/27] sequencer: future-proof remove_sequencer_state() Johannes Schindelin
2016-10-21 12:24 ` [PATCH v5 05/27] sequencer: plug memory leaks for the option values Johannes Schindelin
2016-10-21 12:24 ` [PATCH v5 06/27] sequencer: future-proof read_populate_todo() Johannes Schindelin
2016-10-21 12:24 ` [PATCH v5 07/27] sequencer: refactor the code to obtain a short commit name Johannes Schindelin
2016-10-21 12:24 ` [PATCH v5 08/27] sequencer: completely revamp the "todo" script parsing Johannes Schindelin
2016-11-06 14:05 ` Lars Schneider
2016-10-21 12:24 ` [PATCH v5 09/27] sequencer: strip CR from the todo script Johannes Schindelin
2016-10-21 12:24 ` [PATCH v5 10/27] sequencer: avoid completely different messages for different actions Johannes Schindelin
2016-10-21 12:24 ` [PATCH v5 11/27] sequencer: get rid of the subcommand field Johannes Schindelin
2016-10-21 12:25 ` [PATCH v5 12/27] sequencer: remember the onelines when parsing the todo file Johannes Schindelin
2016-10-21 12:25 ` [PATCH v5 13/27] sequencer: prepare for rebase -i's commit functionality Johannes Schindelin
2016-10-21 12:25 ` [PATCH v5 14/27] sequencer: introduce a helper to read files written by scripts Johannes Schindelin
2016-10-21 12:25 ` [PATCH v5 15/27] sequencer: allow editing the commit message on a case-by-case basis Johannes Schindelin
2016-10-21 12:25 ` [PATCH v5 16/27] sequencer: support amending commits Johannes Schindelin
2016-10-21 12:25 ` [PATCH v5 17/27] sequencer: support cleaning up commit messages Johannes Schindelin
2016-10-21 12:25 ` [PATCH v5 18/27] sequencer: left-trim lines read from the script Johannes Schindelin
2016-10-21 12:25 ` [PATCH v5 19/27] sequencer: stop releasing the strbuf in write_message() Johannes Schindelin
2016-10-21 18:30 ` Junio C Hamano
2016-10-21 12:26 ` [PATCH v5 20/27] sequencer: roll back lock file if write_message() failed Johannes Schindelin
2016-10-21 12:26 ` [PATCH v5 21/27] sequencer: refactor write_message() to take a pointer/length Johannes Schindelin
2016-10-21 12:26 ` [PATCH v5 22/27] sequencer: teach write_message() to append an optional LF Johannes Schindelin
2016-10-21 18:32 ` Junio C Hamano
2016-10-23 9:34 ` Johannes Schindelin
2016-10-21 12:26 ` [PATCH v5 23/27] sequencer: remove overzealous assumption in rebase -i mode Johannes Schindelin
2016-10-21 12:26 ` [PATCH v5 24/27] sequencer: mark action_name() for translation Johannes Schindelin
2016-10-21 12:26 ` [PATCH v5 25/27] sequencer: quote filenames in error messages Johannes Schindelin
2016-10-21 12:26 ` [PATCH v5 26/27] sequencer: start error messages consistently with lower case Johannes Schindelin
2016-10-21 12:26 ` [PATCH v5 27/27] sequencer: mark all error messages for translation Johannes Schindelin
2016-10-21 18:40 ` [PATCH v5 00/27] Prepare the sequencer for the upcoming rebase -i patches Junio C Hamano
2016-10-23 9:50 ` Johannes Schindelin
2016-10-24 20:00 ` Junio C Hamano
2016-10-22 17:11 ` Junio C Hamano
2016-10-23 9:54 ` Johannes Schindelin
2016-10-23 9:58 ` Johannes Schindelin
2016-10-24 12:24 ` Max Horn
2016-10-24 14:02 ` Johannes Schindelin
2016-10-24 20:03 ` Junio C Hamano
2016-10-24 19:36 ` Stefan Beller
2016-10-24 20:16 ` Junio C Hamano
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1d83fa095c03eac9abfd1038ff7791bae8ace984.1472457609.git.johannes.schindelin@gmx.de \
--to=johannes.schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).