From: Alban Gruin <alban.gruin@gmail.com>
To: Git Mailing List <git@vger.kernel.org>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Phillip Wood <phillip.wood@dunelm.org.uk>,
Junio C Hamano <gitster@pobox.com>,
Alban Gruin <alban.gruin@gmail.com>
Subject: [PATCH v8 03/18] sequencer: remove the 'arg' field from todo_item
Date: Tue, 5 Mar 2019 20:17:50 +0100 [thread overview]
Message-ID: <20190305191805.13561-4-alban.gruin@gmail.com> (raw)
In-Reply-To: <20190305191805.13561-1-alban.gruin@gmail.com>
The 'arg' field of todo_item used to store the address of the first byte
of the parameter of a command in a todo list. It was associated with
the length of the parameter (the 'arg_len' field).
This replaces the 'arg' field by 'arg_offset'. This new field does not
store the address of the parameter, but the position of the first
character of the parameter in the buffer. todo_item_get_arg() is added
to return the address of the parameter of an item.
This will prevent todo_list_add_exec_commands() from having to do awful
pointer arithmetics when growing the todo list buffer.
Signed-off-by: Alban Gruin <alban.gruin@gmail.com>
---
No changes since v7.
sequencer.c | 67 ++++++++++++++++++++++++++++++-----------------------
sequencer.h | 6 +++--
2 files changed, 42 insertions(+), 31 deletions(-)
diff --git a/sequencer.c b/sequencer.c
index 25cc7a9a91..c844a9b7f3 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -1999,8 +1999,14 @@ static struct todo_item *append_new_todo(struct todo_list *todo_list)
return todo_list->items + todo_list->nr++;
}
+const char *todo_item_get_arg(struct todo_list *todo_list,
+ struct todo_item *item)
+{
+ return todo_list->buf.buf + item->arg_offset;
+}
+
static int parse_insn_line(struct repository *r, struct todo_item *item,
- const char *bol, char *eol)
+ const char *buf, const char *bol, char *eol)
{
struct object_id commit_oid;
char *end_of_object_name;
@@ -2014,7 +2020,7 @@ static int parse_insn_line(struct repository *r, struct todo_item *item,
if (bol == eol || *bol == '\r' || *bol == comment_line_char) {
item->command = TODO_COMMENT;
item->commit = NULL;
- item->arg = bol;
+ item->arg_offset = bol - buf;
item->arg_len = eol - bol;
return 0;
}
@@ -2041,7 +2047,7 @@ static int parse_insn_line(struct repository *r, struct todo_item *item,
return error(_("%s does not accept arguments: '%s'"),
command_to_string(item->command), bol);
item->commit = NULL;
- item->arg = bol;
+ item->arg_offset = bol - buf;
item->arg_len = eol - bol;
return 0;
}
@@ -2053,7 +2059,7 @@ static int parse_insn_line(struct repository *r, struct todo_item *item,
if (item->command == TODO_EXEC || item->command == TODO_LABEL ||
item->command == TODO_RESET) {
item->commit = NULL;
- item->arg = bol;
+ item->arg_offset = bol - buf;
item->arg_len = (int)(eol - bol);
return 0;
}
@@ -2067,7 +2073,7 @@ static int parse_insn_line(struct repository *r, struct todo_item *item,
} else {
item->flags |= TODO_EDIT_MERGE_MSG;
item->commit = NULL;
- item->arg = bol;
+ item->arg_offset = bol - buf;
item->arg_len = (int)(eol - bol);
return 0;
}
@@ -2079,8 +2085,9 @@ static int parse_insn_line(struct repository *r, struct todo_item *item,
status = get_oid(bol, &commit_oid);
*end_of_object_name = saved;
- item->arg = end_of_object_name + strspn(end_of_object_name, " \t");
- item->arg_len = (int)(eol - item->arg);
+ bol = end_of_object_name + strspn(end_of_object_name, " \t");
+ item->arg_offset = bol - buf;
+ item->arg_len = (int)(eol - bol);
if (status < 0)
return -1;
@@ -2108,11 +2115,11 @@ int todo_list_parse_insn_buffer(struct repository *r, char *buf,
item = append_new_todo(todo_list);
item->offset_in_buf = p - todo_list->buf.buf;
- if (parse_insn_line(r, item, p, eol)) {
+ if (parse_insn_line(r, item, buf, p, eol)) {
res = error(_("invalid line %d: %.*s"),
i, (int)(eol - p), p);
item->command = TODO_COMMENT + 1;
- item->arg = p;
+ item->arg_offset = p - buf;
item->arg_len = (int)(eol - p);
item->commit = NULL;
}
@@ -2452,7 +2459,7 @@ static int walk_revs_populate_todo(struct todo_list *todo_list,
item->command = command;
item->commit = commit;
- item->arg = NULL;
+ item->arg_offset = 0;
item->arg_len = 0;
item->offset_in_buf = todo_list->buf.len;
subject_len = find_commit_subject(commit_buffer, &subject);
@@ -3491,6 +3498,8 @@ static int pick_commits(struct repository *r,
while (todo_list->current < todo_list->nr) {
struct todo_item *item = todo_list->items + todo_list->current;
+ const char *arg = todo_item_get_arg(todo_list, item);
+
if (save_todo(todo_list, opts))
return -1;
if (is_rebase_i(opts)) {
@@ -3542,10 +3551,9 @@ static int pick_commits(struct repository *r,
fprintf(stderr,
_("Stopped at %s... %.*s\n"),
short_commit_name(commit),
- item->arg_len, item->arg);
+ item->arg_len, arg);
return error_with_patch(r, commit,
- item->arg, item->arg_len, opts, res,
- !res);
+ arg, item->arg_len, opts, res, !res);
}
if (is_rebase_i(opts) && !res)
record_in_rewritten(&item->commit->object.oid,
@@ -3554,7 +3562,7 @@ static int pick_commits(struct repository *r,
if (res == 1)
intend_to_amend();
return error_failed_squash(r, item->commit, opts,
- item->arg_len, item->arg);
+ item->arg_len, arg);
} else if (res && is_rebase_i(opts) && item->commit) {
int to_amend = 0;
struct object_id oid;
@@ -3573,16 +3581,16 @@ static int pick_commits(struct repository *r,
to_amend = 1;
return res | error_with_patch(r, item->commit,
- item->arg, item->arg_len, opts,
+ arg, item->arg_len, opts,
res, to_amend);
}
} else if (item->command == TODO_EXEC) {
- char *end_of_arg = (char *)(item->arg + item->arg_len);
+ char *end_of_arg = (char *)(arg + item->arg_len);
int saved = *end_of_arg;
struct stat st;
*end_of_arg = '\0';
- res = do_exec(r, item->arg);
+ res = do_exec(r, arg);
*end_of_arg = saved;
/* Reread the todo file if it has changed. */
@@ -3599,14 +3607,14 @@ static int pick_commits(struct repository *r,
todo_list->current = -1;
}
} else if (item->command == TODO_LABEL) {
- if ((res = do_label(r, item->arg, item->arg_len)))
+ if ((res = do_label(r, arg, item->arg_len)))
reschedule = 1;
} else if (item->command == TODO_RESET) {
- if ((res = do_reset(r, item->arg, item->arg_len, opts)))
+ if ((res = do_reset(r, arg, item->arg_len, opts)))
reschedule = 1;
} else if (item->command == TODO_MERGE) {
if ((res = do_merge(r, item->commit,
- item->arg, item->arg_len,
+ arg, item->arg_len,
item->flags, opts)) < 0)
reschedule = 1;
else if (item->commit)
@@ -3615,9 +3623,8 @@ static int pick_commits(struct repository *r,
if (res > 0)
/* failed with merge conflicts */
return error_with_patch(r, item->commit,
- item->arg,
- item->arg_len, opts,
- res, 0);
+ arg, item->arg_len,
+ opts, res, 0);
} else if (!is_noop(item->command))
return error(_("unknown command %d"), item->command);
@@ -3632,9 +3639,8 @@ static int pick_commits(struct repository *r,
if (item->commit)
return error_with_patch(r,
item->commit,
- item->arg,
- item->arg_len, opts,
- res, 0);
+ arg, item->arg_len,
+ opts, res, 0);
}
todo_list->current++;
@@ -4575,7 +4581,8 @@ int transform_todos(struct repository *r, unsigned flags)
for (item = todo_list.items, i = 0; i < todo_list.nr; i++, item++) {
/* if the item is not a command write it and continue */
if (item->command >= TODO_COMMENT) {
- strbuf_addf(&buf, "%.*s\n", item->arg_len, item->arg);
+ strbuf_addf(&buf, "%.*s\n", item->arg_len,
+ todo_item_get_arg(&todo_list, item));
continue;
}
@@ -4605,7 +4612,8 @@ int transform_todos(struct repository *r, unsigned flags)
if (!item->arg_len)
strbuf_addch(&buf, '\n');
else
- strbuf_addf(&buf, " %.*s\n", item->arg_len, item->arg);
+ strbuf_addf(&buf, " %.*s\n", item->arg_len,
+ todo_item_get_arg(&todo_list, item));
}
i = write_message(buf.buf, buf.len, todo_file, 0);
@@ -4681,7 +4689,8 @@ int check_todo_list(struct repository *r)
if (commit && !*commit_seen_at(&commit_seen, commit)) {
strbuf_addf(&missing, " - %s %.*s\n",
short_commit_name(commit),
- item->arg_len, item->arg);
+ item->arg_len,
+ todo_item_get_arg(&todo_list, item));
*commit_seen_at(&commit_seen, commit) = 1;
}
}
diff --git a/sequencer.h b/sequencer.h
index c6360bac66..50d552429c 100644
--- a/sequencer.h
+++ b/sequencer.h
@@ -104,9 +104,9 @@ struct todo_item {
enum todo_command command;
struct commit *commit;
unsigned int flags;
- const char *arg;
int arg_len;
- size_t offset_in_buf;
+ /* The offset of the command and its argument in the strbuf */
+ size_t offset_in_buf, arg_offset;
};
struct todo_list {
@@ -122,6 +122,8 @@ struct todo_list {
int todo_list_parse_insn_buffer(struct repository *r, char *buf,
struct todo_list *todo_list);
void todo_list_release(struct todo_list *todo_list);
+const char *todo_item_get_arg(struct todo_list *todo_list,
+ struct todo_item *item);
/* Call this to setup defaults before parsing command line options */
void sequencer_init_config(struct replay_opts *opts);
--
2.20.1
next prev parent reply other threads:[~2019-03-05 19:18 UTC|newest]
Thread overview: 190+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-07 19:54 [PATCH 00/15] sequencer: refactor functions working on a todo_list Alban Gruin
2018-10-07 19:54 ` [PATCH 01/15] sequencer: clear the number of items of a todo_list before parsing Alban Gruin
2018-10-07 19:54 ` [PATCH 02/15] sequencer: make the todo_list structure public Alban Gruin
2018-10-07 19:54 ` [PATCH 03/15] sequencer: refactor check_todo_list() to work on a todo_list Alban Gruin
2018-10-11 11:23 ` Phillip Wood
2018-10-07 19:54 ` [PATCH 04/15] sequencer: refactor sequencer_add_exec_commands() " Alban Gruin
2018-10-11 11:25 ` Phillip Wood
2018-10-11 16:57 ` Alban Gruin
2018-10-12 9:54 ` Phillip Wood
2018-10-12 12:23 ` Alban Gruin
2018-10-07 19:54 ` [PATCH 05/15] sequencer: refactor rearrange_squash() " Alban Gruin
2018-10-07 19:54 ` [PATCH 06/15] sequencer: refactor transform_todos() " Alban Gruin
2018-10-07 19:54 ` [PATCH 07/15] sequencer: make sequencer_make_script() write its script to a strbuf Alban Gruin
2018-10-12 10:01 ` SZEDER Gábor
2018-10-19 8:16 ` Junio C Hamano
2018-10-19 9:27 ` SZEDER Gábor
2018-10-07 19:54 ` [PATCH 08/15] sequencer: change complete_action() to use the refactored functions Alban Gruin
2018-10-11 13:51 ` Phillip Wood
2018-10-11 17:06 ` Alban Gruin
2018-10-07 19:54 ` [PATCH 09/15] sequencer: refactor skip_unnecessary_picks() to work on a todo_list Alban Gruin
2018-10-07 19:54 ` [PATCH 10/15] rebase-interactive: use todo_list_transform() in edit_todo_list() Alban Gruin
2018-10-11 15:16 ` Phillip Wood
2018-10-11 19:58 ` Alban Gruin
2018-10-07 19:54 ` [PATCH 11/15] rebase-interactive: append_todo_help() changes Alban Gruin
2018-10-07 19:54 ` [PATCH 12/15] rebase-interactive: rewrite edit_todo_list() to handle the initial edit Alban Gruin
2018-10-07 19:54 ` [PATCH 13/15] sequencer: use edit_todo_list() in complete_action() Alban Gruin
2018-10-07 19:54 ` [PATCH 14/15] sequencer: fix a call to error() in transform_todo_file() Alban Gruin
2018-10-07 19:54 ` [PATCH 15/15] rebase--interactive: move transform_todo_file() to rebase--interactive.c Alban Gruin
2018-10-07 20:51 ` [PATCH 00/15] sequencer: refactor functions working on a todo_list Alban Gruin
2018-10-27 21:29 ` [PATCH v2 00/16] " Alban Gruin
2018-10-27 21:29 ` [PATCH v2 01/16] sequencer: changes in parse_insn_buffer() Alban Gruin
2018-10-27 21:29 ` [PATCH v2 02/16] sequencer: make the todo_list structure public Alban Gruin
2018-10-27 21:29 ` [PATCH v2 03/16] sequencer: refactor transform_todos() to work on a todo_list Alban Gruin
2018-10-27 21:29 ` [PATCH v2 04/16] sequencer: introduce todo_list_write_to_file() Alban Gruin
2018-10-30 16:28 ` Phillip Wood
2018-11-01 23:31 ` Alban Gruin
2018-10-27 21:29 ` [PATCH v2 05/16] sequencer: refactor check_todo_list() to work on a todo_list Alban Gruin
2018-10-27 21:29 ` [PATCH v2 06/16] sequencer: refactor sequencer_add_exec_commands() " Alban Gruin
2018-10-30 16:47 ` Phillip Wood
2018-11-01 23:31 ` Alban Gruin
2018-11-02 10:09 ` Phillip Wood
2018-11-02 16:26 ` Alban Gruin
2018-11-02 17:09 ` Phillip Wood
2018-10-27 21:29 ` [PATCH v2 07/16] sequencer: refactor rearrange_squash() " Alban Gruin
2018-10-27 21:29 ` [PATCH v2 08/16] sequencer: make sequencer_make_script() write its script to a strbuf Alban Gruin
2018-10-27 21:29 ` [PATCH v2 09/16] sequencer: change complete_action() to use the refactored functions Alban Gruin
2018-10-27 21:29 ` [PATCH v2 10/16] sequencer: refactor skip_unnecessary_picks() to work on a todo_list Alban Gruin
2018-10-27 21:29 ` [PATCH v2 11/16] rebase-interactive: use todo_list_write_to_file() in edit_todo_list() Alban Gruin
2018-10-27 21:29 ` [PATCH v2 12/16] rebase-interactive: append_todo_help() changes Alban Gruin
2018-10-27 21:29 ` [PATCH v2 13/16] rebase-interactive: rewrite edit_todo_list() to handle the initial edit Alban Gruin
2018-10-27 21:29 ` [PATCH v2 14/16] sequencer: use edit_todo_list() in complete_action() Alban Gruin
2018-10-27 21:29 ` [PATCH v2 15/16] sequencer: fix a call to error() in transform_todo_file() Alban Gruin
2018-10-27 21:29 ` [PATCH v2 16/16] rebase--interactive: move transform_todo_file() to rebase--interactive.c Alban Gruin
2018-10-29 3:05 ` [PATCH v2 00/16] sequencer: refactor functions working on a todo_list Junio C Hamano
2018-10-29 15:34 ` Alban Gruin
2018-11-09 8:07 ` [PATCH v3 " Alban Gruin
2018-11-09 8:07 ` [PATCH v3 01/16] sequencer: changes in parse_insn_buffer() Alban Gruin
2018-11-09 8:07 ` [PATCH v3 02/16] sequencer: make the todo_list structure public Alban Gruin
2018-11-09 8:07 ` [PATCH v3 03/16] sequencer: refactor transform_todos() to work on a todo_list Alban Gruin
2018-11-09 8:07 ` [PATCH v3 04/16] sequencer: introduce todo_list_write_to_file() Alban Gruin
2018-11-09 8:07 ` [PATCH v3 05/16] sequencer: refactor check_todo_list() to work on a todo_list Alban Gruin
2018-11-09 8:07 ` [PATCH v3 06/16] sequencer: refactor sequencer_add_exec_commands() " Alban Gruin
2018-11-30 17:02 ` Phillip Wood
2018-11-30 19:06 ` Johannes Schindelin
2018-12-10 14:33 ` Phillip Wood
2018-12-28 19:42 ` Alban Gruin
2018-11-09 8:07 ` [PATCH v3 07/16] sequencer: refactor rearrange_squash() " Alban Gruin
2018-11-09 8:07 ` [PATCH v3 08/16] sequencer: make sequencer_make_script() write its script to a strbuf Alban Gruin
2018-11-09 8:07 ` [PATCH v3 09/16] sequencer: change complete_action() to use the refactored functions Alban Gruin
2018-11-09 8:07 ` [PATCH v3 10/16] sequencer: refactor skip_unnecessary_picks() to work on a todo_list Alban Gruin
2018-11-09 8:08 ` [PATCH v3 11/16] rebase-interactive: use todo_list_write_to_file() in edit_todo_list() Alban Gruin
2018-11-09 8:08 ` [PATCH v3 12/16] rebase-interactive: append_todo_help() changes Alban Gruin
2018-11-09 8:08 ` [PATCH v3 13/16] rebase-interactive: rewrite edit_todo_list() to handle the initial edit Alban Gruin
2018-11-09 8:08 ` [PATCH v3 14/16] sequencer: use edit_todo_list() in complete_action() Alban Gruin
2018-11-09 8:08 ` [PATCH v3 15/16] sequencer: fix a call to error() in transform_todo_file() Alban Gruin
2018-11-09 8:08 ` [PATCH v3 16/16] rebase--interactive: move transform_todo_file() to rebase--interactive.c Alban Gruin
2018-12-29 16:03 ` [PATCH v4 00/16] sequencer: refactor functions working on a todo_list Alban Gruin
2018-12-29 16:03 ` [PATCH v4 01/16] sequencer: changes in parse_insn_buffer() Alban Gruin
2018-12-29 16:03 ` [PATCH v4 02/16] sequencer: make the todo_list structure public Alban Gruin
2018-12-29 16:04 ` [PATCH v4 03/16] sequencer: remove the 'arg' field from todo_item Alban Gruin
2019-01-21 14:59 ` Phillip Wood
2019-01-22 15:27 ` Johannes Schindelin
2018-12-29 16:04 ` [PATCH v4 04/16] sequencer: refactor transform_todos() to work on a todo_list Alban Gruin
2018-12-29 16:04 ` [PATCH v4 05/16] sequencer: introduce todo_list_write_to_file() Alban Gruin
2018-12-29 16:04 ` [PATCH v4 06/16] sequencer: refactor check_todo_list() to work on a todo_list Alban Gruin
2018-12-29 16:04 ` [PATCH v4 07/16] sequencer: refactor sequencer_add_exec_commands() " Alban Gruin
2018-12-29 16:04 ` [PATCH v4 08/16] sequencer: refactor rearrange_squash() " Alban Gruin
2018-12-29 16:04 ` [PATCH v4 09/16] sequencer: make sequencer_make_script() write its script to a strbuf Alban Gruin
2018-12-29 16:04 ` [PATCH v4 10/16] sequencer: change complete_action() to use the refactored functions Alban Gruin
2018-12-29 16:04 ` [PATCH v4 11/16] sequencer: refactor skip_unnecessary_picks() to work on a todo_list Alban Gruin
2018-12-29 16:04 ` [PATCH v4 12/16] rebase-interactive: use todo_list_write_to_file() in edit_todo_list() Alban Gruin
2018-12-29 16:04 ` [PATCH v4 13/16] rebase-interactive: append_todo_help() changes Alban Gruin
2018-12-29 16:04 ` [PATCH v4 14/16] rebase-interactive: rewrite edit_todo_list() to handle the initial edit Alban Gruin
2018-12-29 16:04 ` [PATCH v4 15/16] sequencer: use edit_todo_list() in complete_action() Alban Gruin
2018-12-29 16:04 ` [PATCH v4 16/16] rebase--interactive: move transform_todo_file() to rebase--interactive.c Alban Gruin
2019-01-23 20:58 ` [PATCH v5 00/16] sequencer: refactor functions working on a todo_list Alban Gruin
2019-01-23 20:58 ` [PATCH v5 01/16] sequencer: changes in parse_insn_buffer() Alban Gruin
2019-01-23 20:58 ` [PATCH v5 02/16] sequencer: make the todo_list structure public Alban Gruin
2019-01-23 20:58 ` [PATCH v5 03/16] sequencer: remove the 'arg' field from todo_item Alban Gruin
2019-01-23 20:58 ` [PATCH v5 04/16] sequencer: refactor transform_todos() to work on a todo_list Alban Gruin
2019-01-23 20:58 ` [PATCH v5 05/16] sequencer: introduce todo_list_write_to_file() Alban Gruin
2019-01-23 20:58 ` [PATCH v5 06/16] sequencer: refactor check_todo_list() to work on a todo_list Alban Gruin
2019-01-23 20:58 ` [PATCH v5 07/16] sequencer: refactor sequencer_add_exec_commands() " Alban Gruin
2019-01-23 20:58 ` [PATCH v5 08/16] sequencer: refactor rearrange_squash() " Alban Gruin
2019-01-23 20:58 ` [PATCH v5 09/16] sequencer: make sequencer_make_script() write its script to a strbuf Alban Gruin
2019-01-23 20:58 ` [PATCH v5 10/16] sequencer: change complete_action() to use the refactored functions Alban Gruin
2019-01-23 20:58 ` [PATCH v5 11/16] sequencer: refactor skip_unnecessary_picks() to work on a todo_list Alban Gruin
2019-01-23 20:58 ` [PATCH v5 12/16] rebase-interactive: use todo_list_write_to_file() in edit_todo_list() Alban Gruin
2019-01-23 20:58 ` [PATCH v5 13/16] rebase-interactive: append_todo_help() changes Alban Gruin
2019-01-23 20:58 ` [PATCH v5 14/16] rebase-interactive: rewrite edit_todo_list() to handle the initial edit Alban Gruin
2019-01-23 20:58 ` [PATCH v5 15/16] sequencer: use edit_todo_list() in complete_action() Alban Gruin
2019-01-23 20:58 ` [PATCH v5 16/16] rebase--interactive: move transform_todo_file() to rebase--interactive.c Alban Gruin
2019-01-24 21:54 ` [PATCH v5 00/16] sequencer: refactor functions working on a todo_list Junio C Hamano
2019-01-24 22:43 ` Alban Gruin
2019-01-29 15:01 ` [PATCH v6 " Alban Gruin
2019-01-29 15:01 ` [PATCH v6 01/16] sequencer: changes in parse_insn_buffer() Alban Gruin
2019-01-29 15:01 ` [PATCH v6 02/16] sequencer: make the todo_list structure public Alban Gruin
2019-01-29 15:01 ` [PATCH v6 03/16] sequencer: remove the 'arg' field from todo_item Alban Gruin
2019-01-29 15:01 ` [PATCH v6 04/16] sequencer: refactor transform_todos() to work on a todo_list Alban Gruin
2019-01-29 15:01 ` [PATCH v6 05/16] sequencer: introduce todo_list_write_to_file() Alban Gruin
2019-01-29 15:01 ` [PATCH v6 06/16] sequencer: refactor check_todo_list() to work on a todo_list Alban Gruin
2019-01-29 15:01 ` [PATCH v6 07/16] sequencer: refactor sequencer_add_exec_commands() " Alban Gruin
2019-01-31 14:30 ` Phillip Wood
2019-01-31 20:37 ` Alban Gruin
2019-01-31 20:46 ` Phillip Wood
2019-02-01 14:51 ` Phillip Wood
2019-02-02 15:09 ` Alban Gruin
2019-02-07 11:09 ` Phillip Wood
2019-01-29 15:01 ` [PATCH v6 08/16] sequencer: refactor rearrange_squash() " Alban Gruin
2019-01-29 15:01 ` [PATCH v6 09/16] sequencer: make sequencer_make_script() write its script to a strbuf Alban Gruin
2019-01-29 15:01 ` [PATCH v6 10/16] sequencer: change complete_action() to use the refactored functions Alban Gruin
2019-01-29 20:14 ` Junio C Hamano
2019-01-29 20:33 ` Alban Gruin
2019-01-29 21:55 ` Junio C Hamano
2019-01-29 15:01 ` [PATCH v6 11/16] sequencer: refactor skip_unnecessary_picks() to work on a todo_list Alban Gruin
2019-02-07 11:06 ` Phillip Wood
2019-01-29 15:01 ` [PATCH v6 12/16] rebase-interactive: use todo_list_write_to_file() in edit_todo_list() Alban Gruin
2019-01-29 15:01 ` [PATCH v6 13/16] rebase-interactive: append_todo_help() changes Alban Gruin
2019-01-29 15:01 ` [PATCH v6 14/16] rebase-interactive: rewrite edit_todo_list() to handle the initial edit Alban Gruin
2019-02-01 11:03 ` Phillip Wood
2019-02-02 14:40 ` Alban Gruin
2019-02-06 21:11 ` Alban Gruin
2019-02-08 10:56 ` Phillip Wood
2019-01-29 15:01 ` [PATCH v6 15/16] sequencer: use edit_todo_list() in complete_action() Alban Gruin
2019-01-29 15:01 ` [PATCH v6 16/16] rebase--interactive: move transform_todo_file() to rebase--interactive.c Alban Gruin
2019-02-01 11:15 ` Phillip Wood
2019-02-02 15:05 ` Alban Gruin
2019-02-10 13:26 ` [PATCH v7 00/16] sequencer: refactor functions working on a todo_list Alban Gruin
2019-02-10 13:26 ` [PATCH v7 01/16] sequencer: changes in parse_insn_buffer() Alban Gruin
2019-02-10 13:26 ` [PATCH v7 02/16] sequencer: make the todo_list structure public Alban Gruin
2019-02-10 13:26 ` [PATCH v7 03/16] sequencer: remove the 'arg' field from todo_item Alban Gruin
2019-02-10 13:26 ` [PATCH v7 04/16] sequencer: refactor transform_todos() to work on a todo_list Alban Gruin
2019-02-10 13:26 ` [PATCH v7 05/16] sequencer: introduce todo_list_write_to_file() Alban Gruin
2019-02-10 13:26 ` [PATCH v7 06/16] sequencer: refactor check_todo_list() to work on a todo_list Alban Gruin
2019-02-10 13:26 ` [PATCH v7 07/16] sequencer: refactor sequencer_add_exec_commands() " Alban Gruin
2019-02-12 10:52 ` Phillip Wood
2019-02-12 15:21 ` Alban Gruin
2019-02-13 10:03 ` Phillip Wood
2019-02-10 13:26 ` [PATCH v7 08/16] sequencer: refactor rearrange_squash() " Alban Gruin
2019-02-10 13:26 ` [PATCH v7 09/16] sequencer: make sequencer_make_script() write its script to a strbuf Alban Gruin
2019-02-10 13:26 ` [PATCH v7 10/16] sequencer: change complete_action() to use the refactored functions Alban Gruin
2019-02-10 13:26 ` [PATCH v7 11/16] sequencer: refactor skip_unnecessary_picks() to work on a todo_list Alban Gruin
2019-02-13 10:05 ` Phillip Wood
2019-02-10 13:26 ` [PATCH v7 12/16] rebase-interactive: use todo_list_write_to_file() in edit_todo_list() Alban Gruin
2019-02-10 13:26 ` [PATCH v7 13/16] rebase-interactive: append_todo_help() changes Alban Gruin
2019-02-10 13:26 ` [PATCH v7 14/16] rebase-interactive: rewrite edit_todo_list() to handle the initial edit Alban Gruin
2019-02-13 10:10 ` Phillip Wood
2019-02-10 13:26 ` [PATCH v7 15/16] sequencer: use edit_todo_list() in complete_action() Alban Gruin
2019-02-10 13:26 ` [PATCH v7 16/16] rebase--interactive: move several functions to rebase--interactive.c Alban Gruin
2019-02-13 10:17 ` Phillip Wood
2019-03-05 19:17 ` [PATCH v8 00/18] sequencer: refactor functions working on a todo_list Alban Gruin
2019-03-05 19:17 ` [PATCH v8 01/18] sequencer: changes in parse_insn_buffer() Alban Gruin
2019-03-05 19:17 ` [PATCH v8 02/18] sequencer: make the todo_list structure public Alban Gruin
2019-03-05 19:17 ` Alban Gruin [this message]
2019-03-05 19:17 ` [PATCH v8 04/18] sequencer: refactor transform_todos() to work on a todo_list Alban Gruin
2019-03-05 19:17 ` [PATCH v8 05/18] sequencer: introduce todo_list_write_to_file() Alban Gruin
2019-03-05 19:17 ` [PATCH v8 06/18] sequencer: refactor check_todo_list() to work on a todo_list Alban Gruin
2019-03-05 19:17 ` [PATCH v8 07/18] sequencer: refactor sequencer_add_exec_commands() " Alban Gruin
2019-03-05 19:17 ` [PATCH v8 08/18] sequencer: refactor rearrange_squash() " Alban Gruin
2019-03-05 19:17 ` [PATCH v8 09/18] sequencer: make sequencer_make_script() write its script to a strbuf Alban Gruin
2019-03-05 19:17 ` [PATCH v8 10/18] sequencer: change complete_action() to use the refactored functions Alban Gruin
2019-03-05 19:17 ` [PATCH v8 11/18] rebase--interactive: move sequencer_add_exec_commands() Alban Gruin
2019-03-05 19:17 ` [PATCH v8 12/18] rebase--interactive: move rearrange_squash_in_todo_file() Alban Gruin
2019-03-05 19:18 ` [PATCH v8 13/18] sequencer: refactor skip_unnecessary_picks() to work on a todo_list Alban Gruin
2019-03-05 19:18 ` [PATCH v8 14/18] rebase-interactive: use todo_list_write_to_file() in edit_todo_list() Alban Gruin
2019-03-05 19:18 ` [PATCH v8 15/18] rebase-interactive: append_todo_help() changes Alban Gruin
2019-03-05 19:18 ` [PATCH v8 16/18] rebase-interactive: rewrite edit_todo_list() to handle the initial edit Alban Gruin
2019-03-05 19:18 ` [PATCH v8 17/18] sequencer: use edit_todo_list() in complete_action() Alban Gruin
2019-03-05 19:18 ` [PATCH v8 18/18] rebase--interactive: move transform_todo_file() Alban Gruin
2019-03-13 10:45 ` [PATCH v8 00/18] sequencer: refactor functions working on a todo_list Phillip Wood
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=20190305191805.13561-4-alban.gruin@gmail.com \
--to=alban.gruin@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=phillip.wood@dunelm.org.uk \
/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).