From: Junio C Hamano Date: Tue, 31 Jan 2006 20:59:31 GMT Subject: Re: [RFC] shallow clone Message-ID: <7vr76oun9o.fsf@assigned-by-dhcp.cox.net> In-Reply-To: <7v8xsxa70o.fsf@assigned-by-dhcp.cox.net> This is whacky, but another completely different strategy is to introduce remote alternates. If you can allow objects/info/alternates to name a repository that is not on the local disk, we can set the original remote repository we "clone" from as one of the alternates, and teach read_sha1_file() to locally cache objects we read from remote alternates. After such a "shallow clone", the user may want to prime the cache by something like: $ git-rev-list --objects v2.6.14..master | git-pack-objects --stdout >/dev/null before going offline. Obviously you can keep the resulting pack instead of leaving things loose. I am not seriously advocating this yet -- adding calls to http and git transfer machinery in read_sha1_file(), which is as low level as you can go, is not something I have guts to do at the moment.