branching/tagging in svn
March 28th, 2004 by HenSlowly my mind is unlearning the cvs concepts and learning the svn concepts. Must remember to say that at work at some point, keep ‘em afraid.
Anyway. While the looseness of svn’s branching/tagging makes me nervous, it also starts me thinking about setting up the type of system I want in CVS.
Top level is the repo. Under that is trunk, dead-fork, fork, bugfix, dead-bugfix and releases. Robert [osjava.org SVN admin] has set us up with trunk, branches, tags and releases; which should be fine there but won’t be organised enough for work.
I’ve noticed that we only branch for one of two reasons. The first is a bugfix. This is when an existing tag is branched for a short series of fixes to be made. It may not be short, but often is. The other is a fork. This is usually due to a physical difference [we have european and usa versions of the software, which are often developed in stagger] but might be due to a temporary idea [rewriting a mound of code to use hibernate when near a deadline]. In both cases, but especially in the fork case where the active lifetime is a lot longer, I want to record which forks are still open, and which are dead.
Now, I can remove the branch when it’s not active anymore, but this seems a bit dangerous. From reading the SVN book, it seems tricky to look for deleted information [no Attic with its fortunate side-effect], so removing old forks seems worrisome.
Possibly the biggest thing I like about SVN tagging etc, is that as it’s a copy operation, it will be commentable. Now the only problem is that there’s no easy way to ask for a report of all tag comments, because it’s just a copy. Curses.
Anyway, I think I’m starting to see a light. Shame the one place it would pay off is the last place I’ll be able to apply SVN. I’m pencilling in a 6-12 month migration aim.
