upload-pack: Do not choke on too many heads request.
authorJunio C Hamano <junkio@cox.net>
Wed, 5 Oct 2005 21:49:54 +0000 (14:49 -0700)
committerJunio C Hamano <junkio@cox.net>
Wed, 5 Oct 2005 21:49:54 +0000 (14:49 -0700)
commite091eb93258f05a58bc5d1c60f058f5f57dd92b6
tree721f2ffe2e2fccfc6bf10be1e7db644a1907659f
parentdf34297af1fe5da786e41bd2fee58e10dd810cc4
upload-pack: Do not choke on too many heads request.

Cloning from a repository with more than 256 refs (heads and tags
included) will choke, because upload-pack has a built-in limit of
feeding not more than MAX_NEEDS (currently 256) heads to underlying
git-rev-list.  This is a problem when cloning a repository with many
tags, like http://www.linux-mips.org/pub/scm/linux.git, which has 290+
tags.

This commit introduces a new flag, --all, to git-rev-list, to include
all refs in the repository.  Updated upload-pack detects requests that
ask more than MAX_NEEDS refs, and sends everything back instead.

We may probably want to tweak the definitions of MAX_NEEDS and
MAX_HAS, but that is a separate topic.

Signed-off-by: Junio C Hamano <junkio@cox.net>
rev-list.c
rev-parse.c
upload-pack.c