You seem to have basically the right idea, but your terminology is a bit wrong. This really confuses SVN people as you use words that have specific meanings in the SVN context. To expand on what David said:
2) create your repository by doing something like svnadmin create /usr/local/svn .
3) create your folders. You do not need (or do not need) parts of your list that are not lower than projects/ . These other directories are what SVN uses to track changes; they are not actually in the repository. If you create a directory hierarchy somewhere on your system that contains the project_name/ subtree, you can run svn import on it as many times as you want, once for each project (each time specifying a different name for the destination). This will create your directory structure.
4) Instead of “checkout”, I think you mean either “import” or “checkin” (usually called “commit” in SVN, but “checkin” will be understood). Import will add the provider files to the repository. Checkout means "create a local copy of this version directory for me to work with," called a working copy. Each developer of your team must have their own working copy. After the developer makes changes to his working copy, they then svn commit changes to the repository by svn commit . Other developers on the team will run svn update to get these changes from the repository into their own working copies.
5) I have not read the SVN book recently, but I think that it instructs you to copy the version of the provider branch into the trunk, and not export it. Exporting in SVN terms means a non-version of the directory tree, which is clearly not what you want.
You can find something easier if you follow steps 6 and 7 right after step 2, since after that you can use the svn:// protocol to access your repository for the remaining steps instead of file:// , as suggested by Davide that only works on the local machine.
source share