]> git.ipfire.org Git - thirdparty/git.git/commitdiff
sequencer: simplify pick_one_commit()
authorPhillip Wood <phillip.wood@dunelm.org.uk>
Tue, 30 Jun 2026 15:28:58 +0000 (16:28 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 30 Jun 2026 19:03:14 +0000 (12:03 -0700)
Unless we're rebasing all we do in pick_one_commit() is call
do_pick_commit() and return its result. Simplify the code by returing
early if we're not rebasing so that we don't have to continually call
is_rebase_i() in the rest of the function. Note that there are a couple
of conditions that do not call is_rebase_i() but they check for either
an "edit" or a "fixup" command, both of which imply we're rebasing.

As the conditional blocks are all mutually exclusive (either the
conditions are mutually exclusive, or an earlier conditional block
that would match a later one contains a "return" statement) chain
them together with "else if" to make that clear.

Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sequencer.c

index ff28873d21c45efd46b7acd40c369b6990c4b159..416729f30a7c7aad9c3c34c3a83be91ed410719c 100644 (file)
@@ -4966,12 +4966,14 @@ static int pick_one_commit(struct repository *r,
 
        res = do_pick_commit(r, item, opts, is_final_fixup(todo_list),
                             check_todo);
-       if (is_rebase_i(opts) && res < 0) {
+       if (!is_rebase_i(opts))
+               return res;
+
+       if (res < 0) {
                /* Reschedule */
                *reschedule = 1;
                return -1;
-       }
-       if (item->command == TODO_EDIT) {
+       } else if (item->command == TODO_EDIT) {
                struct commit *commit = item->commit;
                if (!res) {
                        if (!opts->verbose)
@@ -4981,14 +4983,13 @@ static int pick_one_commit(struct repository *r,
                }
                return error_with_patch(r, commit,
                                        arg, item->arg_len, opts, res, !res);
-       }
-       if (is_rebase_i(opts) && !res)
+       } else if (!res) {
                record_in_rewritten(&item->commit->object.oid,
                                    peek_command(todo_list, 1));
-       if (res && is_fixup(item->command)) {
+       } else if (res && is_fixup(item->command)) {
                return error_failed_squash(r, item->commit, opts,
                                           item->arg_len, arg);
-       } else if (res && is_rebase_i(opts)) {
+       } else if (res) {
                int to_amend = 0;
                struct object_id oid;