1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-28 04:36:10 +02:00

sequencer (rebase -i): skip some revert/cherry-pick specific code path

When a cherry-pick continues without a "todo script", the intention is
simply to pick a single commit.

However, when an interactive rebase is continued without a "todo
script", it means that the last command has been completed and that we
now need to clean up.

This commit guards the revert/cherry-pick specific steps so that they
are not executed in rebase -i mode.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Schindelin 2017-01-02 16:27:30 +01:00 committed by Junio C Hamano
parent 5263220967
commit 4258a6da90

View File

@ -1878,26 +1878,28 @@ int sequencer_continue(struct replay_opts *opts)
if (is_rebase_i(opts)) {
if (commit_staged_changes(opts))
return -1;
}
if (!file_exists(get_todo_path(opts)))
} else if (!file_exists(get_todo_path(opts)))
return continue_single_pick();
if (read_populate_opts(opts))
return -1;
if ((res = read_populate_todo(&todo_list, opts)))
goto release_todo_list;
/* Verify that the conflict has been resolved */
if (file_exists(git_path_cherry_pick_head()) ||
file_exists(git_path_revert_head())) {
res = continue_single_pick();
if (res)
if (!is_rebase_i(opts)) {
/* Verify that the conflict has been resolved */
if (file_exists(git_path_cherry_pick_head()) ||
file_exists(git_path_revert_head())) {
res = continue_single_pick();
if (res)
goto release_todo_list;
}
if (index_differs_from("HEAD", 0, 0)) {
res = error_dirty_index(opts);
goto release_todo_list;
}
todo_list.current++;
}
if (index_differs_from("HEAD", 0, 0)) {
res = error_dirty_index(opts);
goto release_todo_list;
}
todo_list.current++;
res = pick_commits(&todo_list, opts);
release_todo_list:
todo_list_release(&todo_list);