Subversion is subzero

As I am in the progress of learning the ropes of subversion, and becoming appalled by the support for subversion in Eclipse when compared to the CVS support, I am learning to like subversion.

A little gem while releasing Wicket 1.2-beta2 struck my mind. My previous, CVS era, modus of operandi was to select all my projects in the workspace and tag them at once as “WICKET_1_2_BETA2″, so the projects current state would be traceable when a bug emerged.

To my amazement, this feature doesn’t work in Subversive, probably the best subversion integration currently available for Eclipse. You can’t select multiple projects, and tag them as a version. “Ah, well” I thought, “Then I’ll do them by hand one at a time”. Can you imagine the following scenario, tagging all the projects in my workspace? Here is a list of the projects that need to be tagged:

  1. wicket
  2. wicket-extensions
  3. wicket-examples
  4. wicket-quickstart
  5. wicket-spring
  6. wicket-spring-examples
  7. wicket-spring-annot
  8. wicket-spring-annot-examples
  9. wicket-spring-cattr
  10. wicket-spring-cattr-examples
  11. wicket-auth-roles
  12. wicket-auth-roles-examples

That is quite some work when you have to do each project on its own. Especially with the GUI speed of Eclipse including Subversive on OSX. So I tried versioning the Wicket core project and Subversive or sourceforge presented me with “502 bad gateway”. So that’s a clear no go on the Subversive versioning.

At this moment I decided to go to my bookshelve and pull out the ‘Pragmatic Version Control using Subversion” from the Pragmatic Programmers. And then it struck me: Why didn’t I just do a serverside copy of the trunk to a tag. We’re working with Subversion now. So I downloaded the OS-X subversion client from Metissian, and installed the package.

One note: don’t forget to add /usr/local/bin to your path variable, otherwise you’ll keep staring at a command prompt that says: svn: command not found.

From there on it was plain and simple:

$ svn --username dashorst -m "Releasing Wicket 1.2-beta2"
       copy https://svn.sourceforge.net/svnroot/wicket/trunk
           https://svn.sourceforge.net/svnroot/wicket/tags/WICKET_1_2_BETA2

That was it! Now we are the proud owner of a new tag in subversion, with the name WICKET_1_2_BETA2, and the whole repository state has been reflected in this tag. Now that is something to write about.

Subversion: though the Eclipse support sucks, it is subzero -> cooler than cool.

2 Responses to “Subversion is subzero”

  1. kramer Says:

    You don’t need a tag at all. You just need the change number of the repository and you can completely recreate the source code at that time.

  2. Martijn Dashorst Says:

    Yeah, but that is the same as remembering all revision numbers in CVS. A copy in subversion is much better: it communicates intent, it shows where you can get the sources for a particular release and it is not too much work.

    How should I remember that the build I created for the Wicket 1.2 is 53223? Having a copy with label “WICKET_1_2″ gives me a way to retrieve it.

Leave a Reply