Re: efficient cloning
- From
James Cloos <cloos@jhcloos.com>
- Date
- Mar 20, 2006, 00:32 UTC
- Message-ID
- <m3wteqj6qx.fsf@lugabout.cloos.reno.nv.us>
- In-Reply-To
- <7vu09um3ae.fsf@assigned-by-dhcp.cox.net>
>>>>> "Junio" == Junio C Hamano <junkio@cox.net> writes:
Junio> "The same repo as this script" is a very poor way to define what Junio> you really want.
I don't think so. Getting the same values in files like FETCH_HEAD, ORIG_HEAD, branches/*, remotes/*, info/* et al is not obvious. Especially, eg, all of the same Push/Pull lines.
Junio> What is "git-repack -a -d -s"?
A typo. I of course meant -a -d -l.
Junio> It might be worth adding a --reference flag to git-clone like Junio> this patch does.
That is essentially what I tried (except only the name of the flag; I prefer your choice). I didn't include the reference-tmp logic, but otherwise it looks about the same.
Junio> However, this patch alone does not reduce the transferred data Junio> during cloning any smaller if you are using the "$1" repository Junio> over git native transport (including a local repository), Junio> because the current clone-pack does not look at existing refs
Exactly the wall I ran into. And I really only need it for git://.
Junio> Maybe it would be a good idea to deprecate Junio> clone-pack altogether, use fetch-pack -k, and implement the Junio> "copy upstream refs to our refs" logic in git-clone.sh. We need Junio> to do something like that if/when we are switching to use Junio> $GIT_DIR/refs/remotes/ to store tracking branches outside Junio> refs/heads anyway.
And it looks like you've shown me the door in that wall.
I'll have to read up on fetch-pack as opposed to clone-pack.
-JimC
-- James H. Cloos, Jr. <cloos@jhcloos.com>