1592 steps forward, 1 step back

While I really like the revision numbering system in Subversion and the way branches are set up, I really hate that tags are full copies of the tree, identical in every way to branches except for a user-enforced convention of never committing to them. I can’t believe I’m saying this, but I would much prefer tags work in the CVS manner: as symbolic names for a specific revision.

One thing that I commonly do when I find a bug is see in what version the bug was introduced. This is pretty easy to do with cvs log:

symbolic names:
        BEAGLE_0_2_14: 1.279
        BEAGLE_0_2_13: 1.270
        BEAGLE_0_2_12: 1.270

Here, it’s pretty clear that the bug was introduced in 0.2.14, and i can look at the 9 revisions between the two versions to see what’s changed.

With Subversion, you can still do this, but it’s not quite as easy. To list the tags sorted by revision order, run:

svn ls -v svn+ssh://svn.gnome.org/svn/beagle/tags | sort

This will give you the same info:

   2963  ?                    Nov 01 15:12 BEAGLE_0_2_12/
   3015  ?                    Nov 20 15:29 BEAGLE_0_2_13/
   3124  ?                    Dec 14 13:36 BEAGLE_0_2_14/

And you can diff between the tags, but you can’t easily diff the individual changes. That is something I am going to miss.

Comments are now closed.