Remove total confusion from git-fetch and git-push
The config file is not the only place remotes are defined, and without consulting .git/remotes and .git/branches, you won't know if "origin" is configured by the user. Don't give up too early and insult the user with a wisecrack "Where do you want to fetch from today?" The only thing the previous patch seems to want to prevent from happening is a lazy "git fetch/push" that does not say where-from/to to produce an error message 'origin not found', and we can do that by not letting add_url_alias() to turn a nickname "origin" literally into a pathname "origin" without changing the rest of the logic. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
fa685bdf45
commit
9326d49412
21
remote.c
21
remote.c
@ -105,16 +105,6 @@ static void add_url_alias(struct remote *remote, const char *url)
|
||||
add_url(remote, alias_url(url));
|
||||
}
|
||||
|
||||
static struct remote *get_remote_by_name(const char *name)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < remotes_nr; i++) {
|
||||
if (!strcmp(name, remotes[i]->name))
|
||||
return remotes[i];
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static struct remote *make_remote(const char *name, int len)
|
||||
{
|
||||
struct remote *ret;
|
||||
@ -665,20 +655,15 @@ struct remote *remote_get(const char *name)
|
||||
name = default_remote_name;
|
||||
name_given = explicit_default_remote_name;
|
||||
}
|
||||
if (name_given)
|
||||
ret = make_remote(name, 0);
|
||||
else {
|
||||
ret = get_remote_by_name(name);
|
||||
if (!ret)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ret = make_remote(name, 0);
|
||||
if (valid_remote_nick(name)) {
|
||||
if (!ret->url)
|
||||
read_remotes_file(ret);
|
||||
if (!ret->url)
|
||||
read_branches_file(ret);
|
||||
}
|
||||
if (!ret->url)
|
||||
if (name_given && !ret->url)
|
||||
add_url_alias(ret, name);
|
||||
if (!ret->url)
|
||||
return NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user