Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SVN Repository Structure

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?

like image 967
Nick Vaccaro Avatar asked Nov 19 '09 23:11

Nick Vaccaro


2 Answers

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.

like image 192
jheddings Avatar answered Oct 12 '22 21:10

jheddings


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.

like image 30
Gabriël Avatar answered Oct 12 '22 21:10

Gabriël