Merge branch 'tg/git-remote'

The internal API to interact with "remote.*" configuration
variables has been streamlined.

* tg/git-remote:
  remote: use remote_is_configured() for add and rename
  remote: actually check if remote exits
  remote: simplify remote_is_configured()
  remote: use parse_config_key
This commit is contained in:
Junio C Hamano
2016-02-26 13:37:09 -08:00
5 changed files with 81 additions and 65 deletions

View File

@ -1022,10 +1022,9 @@ static int add_remote_or_group(const char *name, struct string_list *list)
git_config(get_remote_group, &g);
if (list->nr == prev_nr) {
struct remote *remote;
if (!remote_is_configured(name))
struct remote *remote = remote_get(name);
if (!remote_is_configured(remote))
return 0;
remote = remote_get(name);
string_list_append(list, remote->name);
}
return 1;

View File

@ -186,10 +186,7 @@ static int add(int argc, const char **argv)
url = argv[1];
remote = remote_get(name);
if (remote && (remote->url_nr > 1 ||
(strcmp(name, remote->url[0]) &&
strcmp(url, remote->url[0])) ||
remote->fetch_refspec_nr))
if (remote_is_configured(remote))
die(_("remote %s already exists."), name);
strbuf_addf(&buf2, "refs/heads/test:refs/remotes/%s/test", name);
@ -634,14 +631,14 @@ static int mv(int argc, const char **argv)
rename.remote_branches = &remote_branches;
oldremote = remote_get(rename.old);
if (!oldremote)
if (!remote_is_configured(oldremote))
die(_("No such remote: %s"), rename.old);
if (!strcmp(rename.old, rename.new) && oldremote->origin != REMOTE_CONFIG)
return migrate_file(oldremote);
newremote = remote_get(rename.new);
if (newremote && (newremote->url_nr > 1 || newremote->fetch_refspec_nr))
if (remote_is_configured(newremote))
die(_("remote %s already exists."), rename.new);
strbuf_addf(&buf, "refs/heads/test:refs/remotes/%s/test", rename.new);
@ -773,7 +770,7 @@ static int rm(int argc, const char **argv)
usage_with_options(builtin_remote_rm_usage, options);
remote = remote_get(argv[1]);
if (!remote)
if (!remote_is_configured(remote))
die(_("No such remote: %s"), argv[1]);
known_remotes.to_delete = remote;
@ -1441,9 +1438,9 @@ static int set_remote_branches(const char *remotename, const char **branches,
strbuf_addf(&key, "remote.%s.fetch", remotename);
if (!remote_is_configured(remotename))
die(_("No such remote '%s'"), remotename);
remote = remote_get(remotename);
if (!remote_is_configured(remote))
die(_("No such remote '%s'"), remotename);
if (!add_mode && remove_all_fetch_refspecs(remotename, key.buf)) {
strbuf_release(&key);
@ -1498,9 +1495,9 @@ static int get_url(int argc, const char **argv)
remotename = argv[0];
if (!remote_is_configured(remotename))
die(_("No such remote '%s'"), remotename);
remote = remote_get(remotename);
if (!remote_is_configured(remote))
die(_("No such remote '%s'"), remotename);
url_nr = 0;
if (push_mode) {
@ -1566,9 +1563,9 @@ static int set_url(int argc, const char **argv)
if (delete_mode)
oldurl = newurl;
if (!remote_is_configured(remotename))
die(_("No such remote '%s'"), remotename);
remote = remote_get(remotename);
if (!remote_is_configured(remote))
die(_("No such remote '%s'"), remotename);
if (push_mode) {
strbuf_addf(&name_buf, "remote.%s.pushurl", remotename);