Let's try this again with the correct subject line...
Over on the Subversion User List, there has been quite a discussion on
the problems with "tags" and the need for a true object type called a
"label". This discussion can be found at:
After extensive debate, we felt it was time for the Subversion
developers to get involved in our discussion.
We agree that tags have several short comings:
Tags are not first class objects in Subversion -- just another
directory. It is up to the administrator to know that a particular
directory is a tag and not a branch. This type of knowledge is stored
in the implementation of the site and not in Subversion itself.
Once a tag is created, there is no real mechanism built into
Subversion that protects the sanctity of that tag. A user can checkout
the tag's directory, make modifications, then commit those changes.
This means an admin could create a REV1.0 tag directory, and have
users change it without the administrator's knowledge.
There is also no way a tag can be used in Subversion's "svn" sub
commands. For example, in order to compare the current version of
foo.c with foo.c in revision REV1.2, you have to either copy REV1.2's
version of foo elsewhere and use an external diff command, or find out
the revision number that was used to create REV1.2, then plug that
into the diff command. It would be much easier if you could do this:
$ svn diff -rREV1.2 foo.c
On the Subversion User's list, we've discussed several ways to
implement tags which I'm not going to go through here since that is
really up to the developers. We do agree that we'd like to see the
following features implemented:
1). There should be a fairly easy to use "svn mklabel" command that
creates the label.
2). Anyone should be able to create a label, but only the Subversion
administrator should be able to change it. This would include editing
the label, moving it, renaming it, and even deleting it.
3). You need to be able to list the various label names created.
4). Most importantly, all of the sub commands for svn and svnlook that
take the --revision parameter must understand the concept of labels.
That is, I should be able to specify a label rather than a revision
number, and Subversion automatically does the right thing
We also discussed several ways labels could be implemented: As a
special property on files, as an alias to a particular revision
number, and as a special instance of a "tag". However, we realize the
question of how labels should be implemented is really up to the
Any thoughts about labels vs. tags?
To unsubscribe, e-mail: firstname.lastname@example.org
For additional commands, e-mail: email@example.com
Received on Mon May 23 19:13:24 2005