diff options
author | Patrick Steinhardt <ps@pks.im> | 2016-02-22 12:23:28 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-02-22 10:23:52 -0800 |
commit | 45ebdcc99a8d8e7c671eb1db1212d90f5f2db341 (patch) | |
tree | 4ef31953f9eb62f517d24bd40f4af045b4911539 /builtin | |
parent | submodule--helper: die on config error when cloning module (diff) | |
download | tgif-45ebdcc99a8d8e7c671eb1db1212d90f5f2db341.tar.xz |
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>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/remote.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/builtin/remote.c b/builtin/remote.c index 6694cf20ef..0771e42519 100644 --- a/builtin/remote.c +++ b/builtin/remote.c @@ -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; } |