in reply to How to structure your svn/svk repository

Repos Proj1 trunk lib t tags branches Proj2 trunk lib t tags branches ...

This is how I structure my CPAN stuff, what OpenJSAN has migrated to (at my request), and how my employer structures both our OSS and work repositories. It's simply the easiest layout to work with, imho. Even if you never branch in most projects, you'll branch in one and you'll be happy for the consistent layout. Tagging should be done early and often, especially as tagging is O(1) in SVN. I generally tag every 4-10 commits in my CPAN projects. Anything more than that and you are probably looking at a complete rewrite, not a point release.

As for migration - that's a non-issue. SVN can migrate to and from nearly every major SCM out there. Plus, how often are you really migrating from one SCM to another - isn't this just a straw man?


My criteria for good software:
  1. Does it work?
  2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

Replies are listed 'Best First'.
Re^2: How to structure your svn/svk repository
by adrianh (Chancellor) on Oct 10, 2005 at 17:29 UTC
    Tagging should be done early and often, especially as tagging is O(1) in SVN. I generally tag every 4-10 commits in my CPAN projects

    I'm curious what the point of a tag is if you're tagging this often? Or is it just a marker for "all tests pass"?

    Actually - I guess this depends on how often you commit... I tend to commit many times per-hour (pretty much every time I go from a test failing to all tests passing).

      Lots of reasons. Once a feature has been added or a bug fixed, I'd like to tag that. Also, my point releases tend to be small, which means I shouldn't be having to add a lot of tests, which means 4-10 commits may very well be the 4-10 new tests I added and made pass.

      My criteria for good software:
      1. Does it work?
      2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?