{"thread":{"id":"25727","subject":"git clone / svn checkout","startedAt":"2010-11-12T17:01:12Z","lastAt":"2010-11-13T17:34:13Z","messageCount":2,"participants":["Bruno De Bondt","Jakub Narebski"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"155790","messageId":"4CDD72D8.9010205@dewereldmorgen.be","threadId":"25727","inReplyTo":null,"subject":"git clone / svn checkout","fromName":"Bruno De Bondt","fromEmail":"bruno@dewereldmorgen.be","sentAt":"2010-11-12T17:01:12Z","receivedAt":"2010-11-12T17:01:12Z","isPatch":false,"sender":{"key":"bruno@dewereldmorgen.be","avatar":null},"body":"Hello,\n\nJust started using Git, coming from SVN.\n\nSomething I regularly do in SVN, is checking out part of a repository,\ninstead of the complete repository. Consider the following: I have a\nlocal repository for development. On my testing server, I only (SVN)\ncheck out part of this repository, eg. the document root of a website\n(and not all the project management documents, which are in the same SVN\nrepository, but not needed on the testing server).\n\nHow would I do this in Git, ie. only get a specific part of a\nrepository? I feel that this is very much against the whole idea of Git\n(where, as far as I understand Git now, you work with complete clones of\nrepositories), but is there a way to do this? Or should I just clone\ncomplete repositories on my testing server as well?\n\nThanks,\nBruno\n"},{"id":"155828","messageId":"m362w1f7rt.fsf@localhost.localdomain","threadId":"25727","inReplyTo":"4CDD72D8.9010205@dewereldmorgen.be","subject":"Re: git clone / svn checkout","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2010-11-13T17:34:13Z","receivedAt":"2010-11-13T17:34:13Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Bruno De Bondt <bruno@dewereldmorgen.be> writes:\n\n> Just started using Git, coming from SVN.\n> \n> Something I regularly do in SVN, is checking out part of a repository,\n> instead of the complete repository.\n\nOn the other hand in SVN you have multiple projects in a single\nrepository (under single repository hierarchy / svnroot).\n\n> Consider the following: I have a local repository for\n> development. On my testing server, I only (SVN) check out part of\n> this repository, eg. the document root of a website (and not all the\n> project management documents, which are in the same SVN repository,\n> but not needed on the testing server).\n> \n> How would I do this in Git, ie. only get a specific part of a\n> repository? I feel that this is very much against the whole idea of Git\n> (where, as far as I understand Git now, you work with complete clones of\n> repositories), but is there a way to do this? Or should I just clone\n> complete repositories on my testing server as well?\n\nIn this case it would be possible, I think, to put project management\ndocuments and website itself in different git repositories, and toe\nthem together using submodules (see git-submodule manpage, and\ndocumentation on Git Wiki and elsewhere).\n\nThere is support in git nowadays (acquired quire recently) to\n*checkout* only part of repository (so called \"sparse checkout\"), but\nyou still need to clone whole repository.\n\nThere was some proof-of-concept work on *partial clone* support; see\ngit mailing list archives.  This is nevertheless quote hard problem\nto solve correctly.\n-- \nJakub Narebski\nPoland\nShadeHawk on #git\n"}]}