From: Junio C Hamano Date: Mon, 9 Nov 2020 22:06:26 +0000 (-0800) Subject: Merge branch 'ab/git-remote-exit-code' X-Git-Tag: v2.30.0-rc0~108 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ecf95d938b390e1ee7c1df78b9ebe3a59ffd44c9;p=thirdparty%2Fgit.git Merge branch 'ab/git-remote-exit-code' Exit codes from "git remote add" etc. were not usable by scripted callers. * ab/git-remote-exit-code: remote: add meaningful exit code on missing/existing --- ecf95d938b390e1ee7c1df78b9ebe3a59ffd44c9 diff --cc builtin/remote.c index 63f2b46c3d,c1828ca7d2..c1b211b272 --- a/builtin/remote.c +++ b/builtin/remote.c @@@ -191,10 -191,13 +191,12 @@@ static int add(int argc, const char **a url = argv[1]; remote = remote_get(name); - if (remote_is_configured(remote, 1)) - die(_("remote %s already exists."), name); + if (remote_is_configured(remote, 1)) { + error(_("remote %s already exists."), name); + exit(3); + } - strbuf_addf(&buf2, "refs/heads/test:refs/remotes/%s/test", name); - if (!valid_fetch_refspec(buf2.buf)) + if (!valid_remote_name(name)) die(_("'%s' is not a valid remote name"), name); strbuf_addf(&buf, "remote.%s.url", name); @@@ -692,12 -697,16 +696,14 @@@ static int mv(int argc, const char **ar return migrate_file(oldremote); newremote = remote_get(rename.new_name); - if (remote_is_configured(newremote, 1)) - die(_("remote %s already exists."), rename.new_name); + if (remote_is_configured(newremote, 1)) { + error(_("remote %s already exists."), rename.new_name); + exit(3); + } - strbuf_addf(&buf, "refs/heads/test:refs/remotes/%s/test", rename.new_name); - if (!valid_fetch_refspec(buf.buf)) + if (!valid_remote_name(rename.new_name)) die(_("'%s' is not a valid remote name"), rename.new_name); - strbuf_reset(&buf); strbuf_addf(&buf, "remote.%s", rename.old_name); strbuf_addf(&buf2, "remote.%s", rename.new_name); if (git_config_rename_section(buf.buf, buf2.buf) < 1) diff --cc t/t5505-remote.sh index 4b0de6cb83,c99659d39e..eaa6e90220 --- a/t/t5505-remote.sh +++ b/t/t5505-remote.sh @@@ -179,17 -179,10 +179,17 @@@ test_expect_success 'rename errors out ) ' +test_expect_success 'rename errors out early when when new name is invalid' ' + test_config remote.foo.vcs bar && + echo "fatal: '\''invalid...name'\'' is not a valid remote name" >expect && + test_must_fail git remote rename foo invalid...name 2>actual && + test_i18ncmp expect actual +' + test_expect_success 'add existing foreign_vcs remote' ' test_config remote.foo.vcs bar && - echo "fatal: remote foo already exists." >expect && - test_must_fail git remote add foo bar 2>actual && + echo "error: remote foo already exists." >expect && + test_expect_code 3 git remote add foo bar 2>actual && test_i18ncmp expect actual '