From: Ivan Todoroski Date: Mon, 19 Mar 2012 01:05:22 GMT Subject: Re: Clone fails on a repo with too many heads/tags Message-ID: <4F668652.5090705@gmx.net> In-Reply-To: <20120318190659.GA24829@sigill.intra.peff.net> On 18.03.2012 20:07, Jeff King wrote: > Nor would you want to have multiple invocations of fetch-pack, since > that would mean multiple http requests and multiple pack responses > (which could not delta between themselves). Sure, but if fetch-pack is called with so many refs that it overflows the command line, it's looking at a lot of work ahead of it anyway, it's not going to be a fast operation. So the overhead of multiple HTTP requests and lack of delta compression between huge batches of refs wouldn't be all that significant in practice. That said, I really like your temp file idea below. It's the best solution so far. Simple, efficient, non-intrusive. > I think the only sane solution is to write the values to a temporary > file, and do something like: > > git fetch-pack --stateless-rpc --refs-from=$tmpfile > > Even if you put the tmpfile in $GIT_DIR, I don't think this should > run afoul of any read-only repositories, since by definition you are > fetching into the repository (but you could also just put it in > /tmp). OK, if nobody beats me to it I will try to code this next weekend. Maybe sooner, but I don't usually have much free time over the week (day job, family, etc.).