remote rm: delete remote configuration as the last
When removing a remote, delete the remote-tracking branches before deleting the remote configuration. This way, if the operation fails or is aborted while deleting the remote-tracking branches, the command can be rerun to complete the operation. Signed-off-by: Jens Lindström <jl@opera.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
4a28f169ad
commit
b07bdd3472
|
|
@ -789,10 +789,6 @@ static int rm(int argc, const char **argv)
|
||||||
known_remotes.to_delete = remote;
|
known_remotes.to_delete = remote;
|
||||||
for_each_remote(add_known_remote, &known_remotes);
|
for_each_remote(add_known_remote, &known_remotes);
|
||||||
|
|
||||||
strbuf_addf(&buf, "remote.%s", remote->name);
|
|
||||||
if (git_config_rename_section(buf.buf, NULL) < 1)
|
|
||||||
return error(_("Could not remove config section '%s'"), buf.buf);
|
|
||||||
|
|
||||||
read_branches();
|
read_branches();
|
||||||
for (i = 0; i < branch_list.nr; i++) {
|
for (i = 0; i < branch_list.nr; i++) {
|
||||||
struct string_list_item *item = branch_list.items + i;
|
struct string_list_item *item = branch_list.items + i;
|
||||||
|
|
@ -837,6 +833,12 @@ static int rm(int argc, const char **argv)
|
||||||
}
|
}
|
||||||
string_list_clear(&skipped, 0);
|
string_list_clear(&skipped, 0);
|
||||||
|
|
||||||
|
if (!result) {
|
||||||
|
strbuf_addf(&buf, "remote.%s", remote->name);
|
||||||
|
if (git_config_rename_section(buf.buf, NULL) < 1)
|
||||||
|
return error(_("Could not remove config section '%s'"), buf.buf);
|
||||||
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue