# git clone / svn checkout

2 messages from 2010-11-12 to 2010-11-13. Participants: Bruno De Bondt, Jakub Narebski.
Thread: https://gitlist.dev/t/25727

## Bruno De Bondt, 2010-11-12 17:01

Subject: git clone / svn checkout
Message-ID: <4CDD72D8.9010205@dewereldmorgen.be>
URL: https://gitlist.dev/e/4CDD72D8.9010205%40dewereldmorgen.be

```
Hello,

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. 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?

Thanks,
Bruno

```

## Jakub Narebski, 2010-11-13 17:34

Subject: Re: git clone / svn checkout
Message-ID: <m362w1f7rt.fsf@localhost.localdomain>
URL: https://gitlist.dev/e/m362w1f7rt.fsf%40localhost.localdomain
In-Reply-To: <4CDD72D8.9010205@dewereldmorgen.be>

```
Bruno De Bondt <bruno@dewereldmorgen.be> 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

```
