I am getting ready to set up an SVN repository, and was wondering if anyone had a good example for a repo structure. I am currently thinking:
Development
.. Applications
.... App1
...... trunk
...... branches
...... tags
.. Database
.. Third Party
While this structure could probably hold everything we need, I would like to make it a bit more granulated. Any thoughts?
We started with a similar model, but found it to be a bit cumbersome. The main problem is that if you want to branch your codebase at a release, you have to go make branches for each component.
Instead, we've considered a scheme like the following:
trunk
app1
app2
lib1
lib2
branches
rc-2.0
app1, app2, lib1, lib2...
some-devs-branch
app1, lib2
tags
release-1.0
app1, app2, lib1, lib2...
I like having a separate repo entirely for 3rd-party stuff. Unless you plan to implement the full vendor-branching strategy from the red bean book, this will work well.
We've been strugling with this too.
We've found out that it doesn't take long until some shared libraries are part of multiple applications and you would want to have everything on the same version. Therefore we've decided to put everything we do in one single repostitory. We've been working this way for over 2 years now and find it very good to work with.
All configurations have pro's and con's but by having 1 full repository you can be (almost) sure that you have all files together at the right version. If you work with multiple trunk's there are tricks with virtual folders or links (I've forgotten the term) to make it link with each other, but getting back to the point where you were is very hard.
Just remember each config has pro's and con's, but for a not to large company I would suggest to put everything in a single repo with one parent folder.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With