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.

One Trackback/Pingback
[...] Shaun: I also dislike SVN’s tagging behavior. Last month I posted how to figure out what version was included in a tag (with the svn client). [...]