rebase -i: move unlink() calls
At the start of each iteration the loop that picks commits removes the state files from the previous pick. However some of these files are only written if there are conflicts in which case we exit the loop before the end of the loop body. Therefore they only need to be removed when the rebase continues, not at the start of each iteration. Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
9c6990cca2
commit
36ac861a30
@ -4639,6 +4639,10 @@ static int pick_commits(struct repository *r,
|
|||||||
if (read_and_refresh_cache(r, opts))
|
if (read_and_refresh_cache(r, opts))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
unlink(rebase_path_message());
|
||||||
|
unlink(rebase_path_stopped_sha());
|
||||||
|
unlink(rebase_path_amend());
|
||||||
|
|
||||||
while (todo_list->current < todo_list->nr) {
|
while (todo_list->current < todo_list->nr) {
|
||||||
struct todo_item *item = todo_list->items + todo_list->current;
|
struct todo_item *item = todo_list->items + todo_list->current;
|
||||||
const char *arg = todo_item_get_arg(todo_list, item);
|
const char *arg = todo_item_get_arg(todo_list, item);
|
||||||
@ -4662,10 +4666,7 @@ static int pick_commits(struct repository *r,
|
|||||||
todo_list->total_nr,
|
todo_list->total_nr,
|
||||||
opts->verbose ? "\n" : "\r");
|
opts->verbose ? "\n" : "\r");
|
||||||
}
|
}
|
||||||
unlink(rebase_path_message());
|
|
||||||
unlink(rebase_path_author_script());
|
unlink(rebase_path_author_script());
|
||||||
unlink(rebase_path_stopped_sha());
|
|
||||||
unlink(rebase_path_amend());
|
|
||||||
unlink(git_path_merge_head(r));
|
unlink(git_path_merge_head(r));
|
||||||
unlink(git_path_auto_merge(r));
|
unlink(git_path_auto_merge(r));
|
||||||
delete_ref(NULL, "REBASE_HEAD", NULL, REF_NO_DEREF);
|
delete_ref(NULL, "REBASE_HEAD", NULL, REF_NO_DEREF);
|
||||||
|
Reference in New Issue
Block a user