Re: [PATCH] Fix "git clone" for git:// protocol
- From
Daniel Barkalow <barkalow@iabervon.org>
- Date
- Feb 9, 2008, 17:16 UTC
- Message-ID
- <alpine.LNX.1.00.0802091205530.13593@iabervon.org>
- In-Reply-To
- <alpine.LSU.1.00.0802091657000.11591@racer.site>
On Sat, 9 Feb 2008, Johannes Schindelin wrote:
Show 8 quoted lines
> In the commit "Reduce the number of connects when fetching", we checked > the return value of git_connect() to see if the connection was successful. > > However, for the git:// protocol, there is no need to have another > process, so the return value is NULL. > > The thing is: git_connect() does not return at all if it fails, so we need > not check the return value of git_connect().
Huh. Sure enough. Actually, there's a similar problem in transport.c, where it assumes that the return value of git_connect is non-zero, which makes it not reuse the connection (not that you can really tell). It might be good to roll in a fix for that. Or maybe git_connect should return a pointer to a static struct child_process if it doesn't need a subprocess, just to distinguish "we're doing it ourselves" from "it's not being done"? If not, maybe the variables that store the return from git_connect should be renamed to "subproc" or something that doesn't suggest they can't be NULL if you're actually connected.
-Daniel *This .sig left intentionally blank*