I'm an old SVN-hand (and before that CVS-hand) trying to understand Git. I'm trying to put some code under source control using Git, and I'm having difficulty deciding how to organize things. Please indulge me by answering the following question:
In SVN, a repository typically contains multiple projects. In the SVN manual, it says
So we first recommend that each project have a recognizable project root in the repository, a directory under which all of the versioned information for that project—and only that project—lives. (emphasis mine).
A repository is thus conceived as a place where multiple projects live. Although the possibility is mentioned that a repository might contain only a single project:
Of course, if a repository houses only a single project, the root of the repository can serve as the project root, too.
But this is not the main use case and I've never done it that way in my experience.
Repository creation is HARD, and is usually tied to a specific piece of hardware, i.e. a server.
In git, though, the "project" concept is not mentioned, and by "repository" Git intends something more like what I think of as a project. There are repositories all over the place, and one might be central, but the typical documentation seems to imagine that the average user will have multiple repositories all over his machine and these might be tied to multiple repositories on one or more servers. For example, the command "git init" converts a directory into a repository! Nothing could be easier - or more confusing!
I've been banging my head on this question all day, but I really would like to understand the philosophy here. I know this is not the kind of question Stack Overflow likes these days, but I'm not sure where else to take it.
What I'm looking for is a document that addresses this issue dispassionately.