author | Junio C Hamano <junkio@cox.net> | |
Wed, 5 Oct 2005 21:49:54 +0000 (14:49 -0700) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Wed, 5 Oct 2005 21:49:54 +0000 (14:49 -0700) | ||
commit | e091eb93258f05a58bc5d1c60f058f5f57dd92b6 | |
tree | 721f2ffe2e2fccfc6bf10be1e7db644a1907659f | tree | snapshot |
parent | df34297af1fe5da786e41bd2fee58e10dd810cc4 | commit | diff |
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>
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 | diff | blob | history | |
rev-parse.c | diff | blob | history | |
upload-pack.c | diff | blob | history |