remote: die on config error when setting URL
When invoking `git-remote --set-url` we do not check the return value when writing the actual new URL to the configuration file, pretending to the user that the configuration has been set while it was in fact not persisted. Fix this problem by dying early when setting the config fails. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
15b92fc052
commit
45ebdcc99a
@ -1579,11 +1579,12 @@ static int set_url(int argc, const char **argv)
|
||||
/* Special cases that add new entry. */
|
||||
if ((!oldurl && !delete_mode) || add_mode) {
|
||||
if (add_mode)
|
||||
git_config_set_multivar(name_buf.buf, newurl,
|
||||
"^$", 0);
|
||||
git_config_set_multivar_or_die(name_buf.buf, newurl,
|
||||
"^$", 0);
|
||||
else
|
||||
git_config_set(name_buf.buf, newurl);
|
||||
git_config_set_or_die(name_buf.buf, newurl);
|
||||
strbuf_release(&name_buf);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1604,9 +1605,9 @@ static int set_url(int argc, const char **argv)
|
||||
regfree(&old_regex);
|
||||
|
||||
if (!delete_mode)
|
||||
git_config_set_multivar(name_buf.buf, newurl, oldurl, 0);
|
||||
git_config_set_multivar_or_die(name_buf.buf, newurl, oldurl, 0);
|
||||
else
|
||||
git_config_set_multivar(name_buf.buf, NULL, oldurl, 1);
|
||||
git_config_set_multivar_or_die(name_buf.buf, NULL, oldurl, 1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user