]> git.ipfire.org Git - thirdparty/git.git/commitdiff
sequencer: remove overzealous assumption in rebase -i mode
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Fri, 21 Oct 2016 12:26:13 +0000 (14:26 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 21 Oct 2016 16:32:35 +0000 (09:32 -0700)
The sequencer was introduced to make the cherry-pick and revert
functionality available as library function, with the original idea
being to extend the sequencer to also implement the rebase -i
functionality.

The test to ensure that all of the commands in the script are identical
to the overall operation does not mesh well with that.

Therefore let's disable the test in rebase -i mode.

While at it, error out early if the "instruction sheet" (i.e. the todo
script) could not be parsed.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sequencer.c

index 000ce3e5418d51e19cdf381639b896a80902fc56..bd11db427378e75d03751f5c72b14ece5ef3faff 100644 (file)
@@ -962,7 +962,10 @@ static int read_populate_todo(struct todo_list *todo_list,
        close(fd);
 
        res = parse_insn_buffer(todo_list->buf.buf, todo_list);
-       if (!res) {
+       if (res)
+               return error(_("Unusable instruction sheet: %s"), todo_file);
+
+       if (!is_rebase_i(opts)) {
                enum todo_command valid =
                        opts->action == REPLAY_PICK ? TODO_PICK : TODO_REVERT;
                int i;
@@ -976,8 +979,6 @@ static int read_populate_todo(struct todo_list *todo_list,
                                return error(_("Cannot revert during a cherry-pick."));
        }
 
-       if (res)
-               return error(_("Unusable instruction sheet: %s"), todo_file);
        return 0;
 }