]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'ab/git-remote-exit-code'
authorJunio C Hamano <gitster@pobox.com>
Mon, 9 Nov 2020 22:06:26 +0000 (14:06 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 9 Nov 2020 22:06:26 +0000 (14:06 -0800)
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

1  2 
builtin/remote.c
t/t5505-remote.sh

index 63f2b46c3d4ea3930f63c2ec8ebcef6c21c2f3f6,c1828ca7d23c1a64e5e09d8884d6cd1d6a7d4169..c1b211b2721c93375b0cc8232bd96db3cdd6ed64
@@@ -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)
index 4b0de6cb83f1966a4e7f59913b138662ea69af78,c99659d39ee75e6a4ac32d2f0fe92a9f62ee5085..eaa6e9022048ade20043abdbecc40ba78f51b5bf
@@@ -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
  '