Subject: Re: git clone / svn checkout

From: Jakub Narebski <[email-masked]>
Date: Sat, 13 Nov 2010 09:34:13 -0800 (PST)

Bruno De Bondt <[email-masked]> writes:

> Just started using Git, coming from SVN.
> 
> Something I regularly do in SVN, is checking out part of a repository,
> instead of the complete repository.

On the other hand in SVN you have multiple projects in a single
repository (under single repository hierarchy / svnroot).

> Consider the following: I have a local repository for
> development. On my testing server, I only (SVN) check out part of
> this repository, eg. the document root of a website (and not all the
> project management documents, which are in the same SVN repository,
> but not needed on the testing server).
> 
> How would I do this in Git, ie. only get a specific part of a
> repository? I feel that this is very much against the whole idea of Git
> (where, as far as I understand Git now, you work with complete clones of
> repositories), but is there a way to do this? Or should I just clone
> complete repositories on my testing server as well?

In this case it would be possible, I think, to put project management
documents and website itself in different git repositories, and toe
them together using submodules (see git-submodule manpage, and
documentation on Git Wiki and elsewhere).

There is support in git nowadays (acquired quire recently) to
*checkout* only part of repository (so called "sparse checkout"), but
you still need to clone whole repository.

There was some proof-of-concept work on *partial clone* support; see
git mailing list archives.  This is nevertheless quote hard problem
to solve correctly.
-- 
Jakub Narebski
Poland
ShadeHawk on #git