summaryrefslogtreecommitdiff
path: root/upload-pack.c
AgeCommit message (Collapse)AuthorFilesLines
2005-10-05upload-pack: Do not choke on too many heads request.Libravatar Junio C Hamano1-16/+34
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>
2005-08-23Replace unsetenv() and setenv() with older putenv().Libravatar Jason Riedy1-1/+1
Solaris 8 doesn't have the newer unsetenv() and setenv() functions, so replace them with putenv(). The one use of unsetenv() in fsck-cache.c now sets GIT_ALTERNATE_OBJECT_ DIRECTORIES to the empty string. Every place that var is used, NULLs are also replaced with empty strings, so it's ok. Signed-off-by: Jason Riedy <ejr@cs.berkeley.edu>
2005-07-08Make "upload-pack" match git-fetch-pack usageLibravatar Linus Torvalds1-2/+6
Do the default "try xyz.git xyz fails" thing for the directory we get passed in.
2005-07-05Increase the number of possible heads requested from git-upload-packLibravatar Linus Torvalds1-1/+1
Now that git-clone-pack exists, we actually have somebody requesting more than just a single head in a pack. So allow the Jeff's of this world to clone things with tens of heads.
2005-07-05Add "git_path()" and "head_ref()" helper functions.Libravatar Linus Torvalds1-0/+1
"git_path()" returns a static pathname pointer into the git directory using a printf-like format specifier. "head_ref()" works like "for_each_ref()", except for just the HEAD.
2005-07-04Make git-fetch-pack actually do all the unpacking etc.Libravatar Linus Torvalds1-11/+52
It returns the result SHA1 on stdout, so you can do remote=$(git-fetch-pack host:dir branchname) and it will unpack the objects and "remote" will be the SHA1 name of the branch on the other side. You can then save that off, or merge it, or whatever.
2005-07-04Make git-fetch-pack and git-upload-pack negotiate needs/haves fullyLibravatar Linus Torvalds1-1/+54
Now the only piece missing is actually generating the pack-file.
2005-07-04Commit first cut at "git-fetch-pack"Libravatar Linus Torvalds1-0/+86
It's meant to be used by "git fetch" for the local and ssh case. It doesn't actually do the fetching now, but it does discover the common commit point.