]> git.ipfire.org Git - thirdparty/git.git/commitdiff
sequencer: pass todo_item to do_pick_commit()
authorCharvi Mendiratta <charvi077@gmail.com>
Fri, 29 Jan 2021 18:20:45 +0000 (23:50 +0530)
committerJunio C Hamano <gitster@pobox.com>
Fri, 29 Jan 2021 23:21:56 +0000 (15:21 -0800)
As an additional member of the structure todo_item will be required in
future commits pass the complete structure.

Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Mentored-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Charvi Mendiratta <charvi077@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sequencer.c

index 034149f24da9b89df9d9cb9ec42eae58a82fbdb4..09cbb17f87c832375df4f382489add34e267d945 100644 (file)
@@ -1877,8 +1877,7 @@ static void record_in_rewritten(struct object_id *oid,
 }
 
 static int do_pick_commit(struct repository *r,
-                         enum todo_command command,
-                         struct commit *commit,
+                         struct todo_item *item,
                          struct replay_opts *opts,
                          int final_fixup, int *check_todo)
 {
@@ -1891,6 +1890,8 @@ static int do_pick_commit(struct repository *r,
        struct commit_message msg = { NULL, NULL, NULL, NULL };
        struct strbuf msgbuf = STRBUF_INIT;
        int res, unborn = 0, reword = 0, allow, drop_commit;
+       enum todo_command command = item->command;
+       struct commit *commit = item->commit;
 
        if (opts->no_commit) {
                /*
@@ -4140,8 +4141,8 @@ static int pick_commits(struct repository *r,
                                setenv(GIT_REFLOG_ACTION, reflog_message(opts,
                                        command_to_string(item->command), NULL),
                                        1);
-                       res = do_pick_commit(r, item->command, item->commit,
-                                            opts, is_final_fixup(todo_list),
+                       res = do_pick_commit(r, item, opts,
+                                            is_final_fixup(todo_list),
                                             &check_todo);
                        if (is_rebase_i(opts))
                                setenv(GIT_REFLOG_ACTION, prev_reflog_action, 1);
@@ -4603,11 +4604,14 @@ static int single_pick(struct repository *r,
                       struct replay_opts *opts)
 {
        int check_todo;
+       struct todo_item item;
+
+       item.command = opts->action == REPLAY_PICK ?
+                       TODO_PICK : TODO_REVERT;
+       item.commit = cmit;
 
        setenv(GIT_REFLOG_ACTION, action_name(opts), 0);
-       return do_pick_commit(r, opts->action == REPLAY_PICK ?
-                             TODO_PICK : TODO_REVERT, cmit, opts, 0,
-                             &check_todo);
+       return do_pick_commit(r, &item, opts, 0, &check_todo);
 }
 
 int sequencer_pick_revisions(struct repository *r,