Re: [QUESTION] Access to a huge GIT repository.
- From
Junio C Hamano <junkio@cox.net>
- Date
- Nov 16, 2005, 20:35 UTC
- Message-ID
- <7vwtj85o1y.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <46a038f90511161201h54c5fa73l20b5dcf3b5c19399@mail.gmail.com>
Martin Langhoff <martin.langhoff@gmail.com> writes:
Show 8 quoted lines
> On 11/17/05, Junio C Hamano <junkio@cox.net> wrote: >> The underlying network transfer program, 'git-clone-pack', can >> be told to clone only specified branches. If somebody is >> interested, updating the 'git-clone' wrapper to use it should >> not be too hard -- obviously this needs to be done for other >> transports as well, though. > > cg-clone already does this.
Yes, but it can be improved. It does fetch-pack for git native transports, which means the receiving end expands the pack. I think we would either need to teach cg-clone to tell cg-fetch that it is cloning and invoke git-clone-pack, or add an optional "do not expand" option to git-fetch-pack (git-clone-pack always keeps the downloaded pack unexpanded). Huge pack transfer spends long time on the downloader side unpacking the pack.
> If you just pull tagrefs and all the objects needed for them, chances > are you'll get the whole repo anyway ;-)
Yes, that's why we changed ls-remote to report the magic ^{} entries and it is used in cg-fetch::fetch_tags.