From: "Jakub Narębski" <jnareb@gmail.com>
To: Johannes Schindelin <johannes.schindelin@gmx.de>, git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH 16/22] sequencer: prepare for rebase -i's GPG settings
Date: Wed, 31 Aug 2016 22:10:38 +0200 [thread overview]
Message-ID: <104de15c-77e8-9474-9579-4934ca8a4323@gmail.com> (raw)
In-Reply-To: <c6a37af958f59390c00429a5b38b34d34c9a5b95.1472457609.git.johannes.schindelin@gmx.de>
Hello Johannes,
W dniu 29.08.2016 o 10:06, Johannes Schindelin pisze:
> The rebase command sports a `--gpg-sign` option that is heeded by the
> interactive rebase.
Should it be "sports" or "supports"?
>
> This patch teaches the sequencer that trick, as part of the bigger
> effort to make the sequencer the work horse of the interactive rebase.
>
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---
> sequencer.c | 48 +++++++++++++++++++++++++++++++++++++++++++-----
> 1 file changed, 43 insertions(+), 5 deletions(-)
>
> diff --git a/sequencer.c b/sequencer.c
> index 4204cc8..e094ac2 100644
> --- a/sequencer.c
> +++ b/sequencer.c
> @@ -15,6 +15,7 @@
> #include "merge-recursive.h"
> #include "refs.h"
> #include "argv-array.h"
> +#include "quote.h"
>
> #define GIT_REFLOG_ACTION "GIT_REFLOG_ACTION"
>
> @@ -33,6 +34,11 @@ static GIT_PATH_FUNC(git_path_head_file, "sequencer/head")
> * being rebased.
> */
> static GIT_PATH_FUNC(rebase_path_author_script, "rebase-merge/author-script")
> +/*
> + * The following files are written by git-rebase just after parsing the
> + * command-line (and are only consumed, not modified, by the sequencer).
> + */
It is good to have this comment here.
> +static GIT_PATH_FUNC(rebase_path_gpg_sign_opt, "rebase-merge/gpg_sign_opt")
I know it is not your fault, but I wonder why this file uses
snake_case_name, while all other use kebab-case-names. That is,
why it is gpg_sign_opt and not gpg-sign-opt.
>
> /* We will introduce the 'interactive rebase' mode later */
> #define IS_REBASE_I() 0
> @@ -129,6 +135,16 @@ static int has_conforming_footer(struct strbuf *sb, struct strbuf *sob,
> return 1;
> }
>
> +static const char *gpg_sign_opt_quoted(struct replay_opts *opts)
> +{
> + static struct strbuf buf = STRBUF_INIT;
> +
> + strbuf_reset(&buf);
> + if (opts->gpg_sign)
> + sq_quotef(&buf, "-S%s", opts->gpg_sign);
> + return buf.buf;
> +}
All right, this function is quite clear.
Sidenote: it's a pity api-quote.txt is just a placeholder for proper
documentation (including sq_quotef()). I also wonder why it is not
named sq_quotef_buf() or strbuf_addf_sq().
> +
> void *sequencer_entrust(struct replay_opts *opts, void *set_me_free_after_use)
> {
> ALLOC_GROW(opts->owned, opts->owned_nr + 1, opts->owned_alloc);
> @@ -471,17 +487,20 @@ int sequencer_commit(const char *defmsg, struct replay_opts *opts,
>
> if (IS_REBASE_I()) {
> env = read_author_script();
> - if (!env)
> + if (!env) {
> + const char *gpg_opt = gpg_sign_opt_quoted(opts);
> +
> 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"
How did this get expanded by error(), and why we want to replace
it if it works?
> + " git commit --amend %s\n\n"
> "If they are meant to go into a new commit, "
> "run:\n\n"
> - " git commit $gpg_sign_opt_quoted\n\n"
> + " git commit %s\n\n"
> "In both case, once you're done, continue "
> "with:\n\n"
> - " git rebase --continue\n");
> + " git rebase --continue\n", gpg_opt, gpg_opt);
Instead of passing option twice, why not make use of %1$s (arg reordering),
that is
+ " git commit --amend %1$s\n\n"
[...]
+ " git commit %1$s\n\n"
> + }
So shell quoting is required only for error output.
> }
>
> argv_array_init(&array);
> @@ -955,8 +974,27 @@ 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())
> + if (IS_REBASE_I()) {
> + struct strbuf buf = STRBUF_INIT;
> +
> + if (read_oneliner(&buf, rebase_path_gpg_sign_opt(), 1)) {
> + if (buf.len && buf.buf[buf.len - 1] == '\n') {
> + if (--buf.len &&
> + buf.buf[buf.len - 1] == '\r')
> + buf.len--;
> + buf.buf[buf.len] = '\0';
> + }
Isn't there some strbuf_chomp() / strbuf_strip_eof() function?
Though as strbuf_getline() uses something similar...
> +
> + if (!starts_with(buf.buf, "-S"))
> + strbuf_reset(&buf);
Should we signal that there was problem with a file contents?
> + else {
> + opts->gpg_sign = buf.buf + 2;
> + strbuf_detach(&buf, NULL);
Wouldn't we leak 2 characters that got skipped? Maybe xstrdup would
be better (if it is leaked, and not reattached)?
> + }
> + }
> +
> return 0;
> + }
>
> if (!file_exists(git_path_opts_file()))
> return 0;
>
--
Jakub Narębski
next prev parent reply other threads:[~2016-08-31 20:10 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 ` [PATCH 14/22] sequencer: prepare for rebase -i's commit functionality Johannes Schindelin
2016-08-29 21:32 ` 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 [this message]
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=104de15c-77e8-9474-9579-4934ca8a4323@gmail.com \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=johannes.schindelin@gmx.de \
/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).