From: Jonathan Nieder Date: Sun, 21 Apr 2013 16:56:06 GMT Subject: Re: [BUG] Filenames with single colon being treated as remote repository Message-ID: <20130421165606.GA29687@elie.Belkin> In-Reply-To: <20130421124511.GA1933@sigill.intra.peff.net> Jeff King wrote: > I don't think that is enough. Something like /path/to/foo:bar would > trigger !is_url already, but then git_connect fails. Doh. Here's another try, still untested. diff --git i/connect.c w/connect.c index 49e56ba3..fe13942f 100644 --- i/connect.c +++ w/connect.c @@ -504,6 +504,7 @@ struct child_process *git_connect(int fd[2], const char *url_orig, int c; struct child_process *conn = &no_fork; enum protocol protocol = PROTO_LOCAL; + struct stat st; int free_path = 0; char *port = NULL; const char **arg; @@ -548,7 +549,8 @@ struct child_process *git_connect(int fd[2], const char *url_orig, end = host; path = strchr(end, c); - if (path && !has_dos_drive_prefix(end)) { + if (path && !has_dos_drive_prefix(end) && + (c != ':' || stat(path, &st))) { if (c == ':') { protocol = PROTO_SSH; *path++ = '\0';