Spiga

How to organize your version control repository for multiple companies and projects

by Gabi Solomon

First 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

Related Posts

blog comments powered by Disqus