On 2015-08-06 09.50, Junio C Hamano wrote: > Junio C Hamano <gitster@xxxxxxxxx> writes: > >> Torsten Bögershausen <tboegi@xxxxxx> writes: >> >>> It looks as if >>> static char *get_repo_path(const char *repo, int *is_bundle) >>> in built/clone.c >>> checks if there is a local directory structure looking like a >>> .git directory. >>> This is wrong. >> >> It is as designed, though, to allow cloning from a local directory >> with any name. I see the point, but this is what I would expect as a user: git clone ssh://host/path # Always ssh, never local git clone ./ssh://host/path # Always local git clone host:path # scp syntax, border case: # if a git repo host:path exists on disc, # use it git clone ./host:path # local, not scp ('/' before ':') Beside that, git fetch, git fetch-pack all use the transport helper from transport.c: transport struct transport *transport_get(struct remote *remote, const char *url) to let the URL being parsed and to make the decision if an URL without a scheme is ssh or a local file. So I think that git clone can be slighty more consistant here. >> >>> There should be a check for the scheme first. >> >> That will be wrong. > > It matters mostly when dealing with scp-like syntax, word:path. > > I _think_ taking notice of "word://" (with doubled slashes) and > treating it specially will not introduce any new issue; while it is > still OK for users to have a local directory called "word:", if they > meant a subdirectory of it, they wouldn't have typed double-slashes > there. > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html