sequencer: remove overzealous assumption in rebase -i mode
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>
Johannes Schindelin committed
Oct 21, 2016 at 14:26 UTC
2eeaf1b36becceef56dbe44a2de6b108c3e072ff
1 file changed
+4
-3
sequencer.c
+4
-3
@@ -962,7 +962,10 @@ static int read_populate_todo(struct todo_list *todo_list,
962
close(fd);
963
964
res = parse_insn_buffer(todo_list->buf.buf, todo_list);
965
- if (!res) {
965
+ if (res)
966
+ return error(_("Unusable instruction sheet: %s"), todo_file);
967
+
968
+ if (!is_rebase_i(opts)) {
969
enum todo_command valid =
970
opts->action == REPLAY_PICK ? TODO_PICK : TODO_REVERT;
971
int i;
@@ -976,8 +979,6 @@ static int read_populate_todo(struct todo_list *todo_list,
979
return error(_("Cannot revert during a cherry-pick."));
980
}
981
979
- if (res)
980
- return error(_("Unusable instruction sheet: %s"), todo_file);
982
return 0;
983
}
984