aboutsummaryrefslogtreecommitdiff
path: root/upload-pack.c
Commit message (Collapse)AuthorAge
* upload-pack: Do not choke on too many heads request.Junio C Hamano2005-10-05
| | | | | | | | | | | | | | | | | | 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>
* Replace unsetenv() and setenv() with older putenv().Jason Riedy2005-08-23
| | | | | | | | | | | 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>
* Make "upload-pack" match git-fetch-pack usageLinus Torvalds2005-07-08
| | | | | Do the default "try xyz.git xyz fails" thing for the directory we get passed in.
* Increase the number of possible heads requested from git-upload-packLinus Torvalds2005-07-05
| | | | | | 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.
* Add "git_path()" and "head_ref()" helper functions.Linus Torvalds2005-07-05
| | | | | | | "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.
* Make git-fetch-pack actually do all the unpacking etc.Linus Torvalds2005-07-04
| | | | | | | | | | 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.
* Make git-fetch-pack and git-upload-pack negotiate needs/haves fullyLinus Torvalds2005-07-04
| | | | Now the only piece missing is actually generating the pack-file.
* Commit first cut at "git-fetch-pack"Linus Torvalds2005-07-04
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.