Re: Does cloning a shallow repo require special setting in the cloned one?
- From
Jeff King <peff@peff.net>
- Date
- Feb 26, 2009, 10:46 UTC
- Message-ID
- <20090226104657.GB4226@coredump.intra.peff.net>
- In-Reply-To
- <87tz6hn1tg.fsf@iki.fi>
On Thu, Feb 26, 2009 at 08:34:51AM +0200, Teemu Likonen wrote:
Show 11 quoted lines
> On 2009-02-25 19:49 (-0800), roylee17 wrote: > > > $ git clone --depth 1 git-full git-shallow2 > > 'git log' still gives a full history > > > > Why can't I clone a shallow repo from the git-full? > > Does it requires some settings in the git-full repo? > > I don't know the "why" part but using file:// URL should work: > > git clone --depth 1 file:///path/to/git-full git-shallow2
I don't think the behavior is intentional, but a side effect of the fact that git takes some shortcuts when cloning locally. In particular, it will try to copy or hardlink the object database rather than transmitting over the git protocol locally. Using file:// has always been the way to suppress that shortcut.
Perhaps to avoid surprise, that optimization should be turned off for options which cause it to behave differently (like --depth). But I have to wonder what the point of --depth is locally; if you are worried about space, hardlinks (the default) or alternates ("clone -s") are a better solution.
-Peff