Martin Hauner wrote:
> I think this all about easier tag handling, not if it is broken.
Absolutely. Well said, Martin!
Many users go a long way before they encounter any situation where such things
as mixed-rev tags are useful. They have a real concern:
Subversion's tagging concept is far more powerful than we
need or want in most projects, and the "svn" command-line
interface to it is far too cumbersome for our simple needs.
We developers have to stop saying:
Subversion's tagging concept and interface provides the power
that some people need. We won't replace it with a simpler one,
and we don't want two separate concepts, so just use it!
Think about it this way: if we were designing an independent command-line
client, with this powerful "tagging" as a feature, what interface would we
choose? Surely not exactly what "svn" provides.
It is our job as developers to reconcile the needs of many users for a simple
interface with the needs of some users for more power and flexibility, in an
elegant way.
Make the simple tasks easy, and the complex tasks possible!
We CAN do that; we just need to work out how. What we need to do:
1) Analyse the ways in which users want to use tags: both the operations they
want to achieve and the command-line syntax they are accustomed to using (in
CVS for example). Move away from discussing it again each time someone asks
about it. Instead, document the current position and the requirements that
have been expressed and get each new person to read and then update that
document after asking any questions that are not already addressed. (Do we
have a Wiki where we could put that?)
2) Write some advice (maybe in a FAQ entry) on how to most conveniently do
those simple things using svn. This might, for example, recommend setting up
environment variables, command aliases, etc. It should also give a link to a
detailed explanation of how Subversion's tagging concept compares with CVS's
tagging concept.
3) Write and distribute a helper tool that provides most of the simple tag
operations that users want (as determined in (1)). It probably won't be able
to do everything that we could make "svn" support natively, but that doesn't
matter initially.
4) Design an enhancement to "svn" (and the libraries if necessary) to provide a
simple interface for using simple tags while keeping the flexibility that we
have now.
Finally, in this discussion, whenever we say something like "you can't do that
with tags", take care to be clear what tagging concept we are talking about.
At pretty much opposite ends of the spectrum are "tags as copies" (Subversion's
tagging concept) and "tags as revision aliases", and there are possibilities in
between. We want to provide an interface that supports both or a range of
concepts, while being built on an implementation that uses the "tags as copies"
concept.
- Julian
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Jul 1 18:30:32 2006