[PATCH] remote.c - Make remote definition require a url
Some options may be configured globally for a remote (e.g, tagopt). The presence of such options in a global config should not cause git remote or get fetch to believe that remote is configured for every repository. Change to require definition of remote..url for the remote to be included in "git fetch --all" or "git remote update." Signed-off-by: Mark Levedahl --- remote.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/remote.c b/remote.c index ce785f8..1b08924 100644 --- a/remote.c +++ b/remote.c @@ -761,7 +761,7 @@ int for_each_remote(each_remote_fn fn, void *priv) read_config(); for (i = 0; i < remotes_nr && !result; i++) { struct remote *r = remotes[i]; - if (!r) + if (!r || !r->url) continue; if (!r->fetch) r->fetch = parse_fetch_refspec(r->fetch_refspec_nr, -- 2.1.2.2.0.14 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] remote.c - Make remote definition require a url
Mark Levedahl writes: > Some options may be configured globally for a remote (e.g, tagopt). Or some remotes may have only pushurl and not url. "git remote" output for me has a few such remotes but wouldn't this patch break it? If a caller that walks the list of remotes misbehaves only because it assumes that r->url always is always valid, isn't that assumption what needs to be fixed? for_each_remote() should be kept as a way to enumerate all the [remote "foo"], I would think. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] remote.c - Make remote definition require a url
On 10/13/2014 01:19 PM, Junio C Hamano wrote: Mark Levedahl writes: Some options may be configured globally for a remote (e.g, tagopt). Or some remotes may have only pushurl and not url. "git remote" output for me has a few such remotes but wouldn't this patch break it? If a caller that walks the list of remotes misbehaves only because it assumes that r->url always is always valid, isn't that assumption what needs to be fixed? for_each_remote() should be kept as a way to enumerate all the [remote "foo"], I would think. As long as the rule is that for_each_remote will enumerate every remote that has anything defined at all, even if only in the global config outside of a user's control, I'm not really sure how to tell whether the missing url / pushurl / whatever is intentional, or a misconfiguration, so having the code complain that it didn't find what it wanted (the current condition) is probably no worse than the alternatives. Patch withdrawn. Mark -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html