path: root/remote.c
diff options
authorJunio C Hamano <>2009-03-16 07:35:09 (GMT)
committerJunio C Hamano <>2009-03-16 07:35:09 (GMT)
commit9326d49412c8c154b43cb7eba2a8692e9703b0f4 (patch)
treedf13cfc93be2f22b4b58f613c778b83a7d6bf4cc /remote.c
parentfa685bdf45cbaa997255cc78a23494b995e9769a (diff)
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 <>
Diffstat (limited to 'remote.c')
1 files changed, 3 insertions, 18 deletions
diff --git a/remote.c b/remote.c
index 199830e..c7a8c2b 100644
--- a/remote.c
+++ b/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)
if (!ret->url)
- if (!ret->url)
+ if (name_given && !ret->url)
add_url_alias(ret, name);
if (!ret->url)
return NULL;