How to organize your version control repository for multiple companies and projects
May 16, 09 by Gabi SolomonFirst of all, a little heads up, this is not a perfect solution, and there isnt one outhere.
There is only the best solution for you at this point in time.
This structure was thought by Victor Stanciu and me after a lot of debating and googling, and so far we are happy with it.
The debate on how a repo is structured is quite a big one, and you can see this by looking on the talks on the matter for example on stackoverflow.com
Considerations
The things we took into consideration is that we are working on mostly small projects ( all of them are web projects ), which are quickly developed and sent into production.
Also there were projects coming from an older client so we wanted a way to group projects from same companies.
Solution
So after we thought all of this through, we decided the best way to go is to have a repository setuped for each project.
The reason we wanted to do this, is because it could trac the revision number more easily and also we could setup the issue-tracker more better. We use TRAC witch only tracs one repo at a time at it would have been weird to have tickets or components from different projects.
The layout would be kind of like this :
/svn
-----/conf
-----/repos
----------/company1
--------------/project1
------------------/tags
------------------/branches
------------------/trunk
----------------------/web
----------/company2
--------------/project1
------------------/tags
------------------/branches
------------------/trunk
----------------------/web
The conf folder is where we keep the configuration files included by apache for serving the repo with mod_dav.
We create another folder web in trunk ad the main project is in there. This is because you might want to have something else in trunk also. Like specification documents.
This is all folks.
Cheers

