From: Junio C Hamano <junkio@cox.net>
To: git@vger.kernel.org
Subject: Re: clone: I'm only doing a max of 256 requests
Date: Wed, 05 Oct 2005 14:16:04 -0700 [thread overview]
Message-ID: <7vhdbvk6ln.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: 7virwbu4wz.fsf@assigned-by-dhcp.cox.net
Junio C Hamano <junkio@cox.net> writes:
> Andy Isaacson <adi@hexapodia.org> writes:
>
>> ... (And how should I be starting to
>> debug this? The git programs don't seem to have a useful --verbose
>> option. It would be nice if "git -v clone" would tell me what it is
>> doing.)
>
> $ git grep -n 'max of .* requests'
> upload-pack.c:141: die("I'm only doing a max of %d requests", MAX_NEEDS);
>
> I suspect that the repository you are cloning has too many
> branch heads and tags under .git/refs/.
We can do three things, the first two being short term, the last
one a bit longer term.
1. As a stop gap measure, so that your Linux kernel work can
continue, please bump MAX_NEEDS definition in upload-pack.c
from 256 to a bit higher. That controls the number of
40-letter SHA1 given to underlying rev-list via execvp(), so
it cannot be _too_ big like 1M, lest it exceeds the exec
argument buffer limit.
2. We can add '--all' flag to git-rev-list, and have upload-pack
use it instead, when it sees more than MAX_NEEDS refs. I
have a patch to do this that I am currently testing.
3. In addition, upload-pack should probably be taught to detect
"I do not have anything. Please give me objects reachable
from all your refs" requests, and cache the resulting pack
somewhere (invalidate whenever any ref changes), so that next
'clone' request can just send it out instead of rerunning
rev-list and pack-objects.
next prev parent reply other threads:[~2005-10-05 21:16 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-05 19:13 clone: I'm only doing a max of 256 requests Andy Isaacson
2005-10-05 19:42 ` Junio C Hamano
2005-10-05 21:16 ` Junio C Hamano [this message]
2005-10-05 21:38 ` Junio C Hamano
2005-10-05 22:27 ` Vincent Hanquez
2005-10-05 22:48 ` Linus Torvalds
2005-10-05 21:51 ` [PATCH] upload-pack: Do not choke on too many heads request Junio C Hamano
2005-10-05 22:45 ` clone: I'm only doing a max of 256 requests Linus Torvalds
2005-10-05 23:45 ` Junio C Hamano
2005-10-06 13:41 ` Alex Riesen
2005-10-06 14:39 ` Linus Torvalds
2005-10-06 20:16 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vhdbvk6ln.fsf@assigned-by-dhcp.cox.net \
--to=junkio@cox.net \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).