[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Tags: What is a tag? [was: Tags]

From: Danny van Heumen <danny.vanheumen_at_hccnet.nl>
Date: 2006-07-08 18:21:59 CEST

Because of different concepts of 'tags' I would like to come to a
general understanding. I've found these different views while browsing
through the mailing list archives.
(Mainly in the thread "Tags and branches are NOT the same" starting
here: http://svn.haxx.se/dev/archive-2006-03/0865.shtml)

Tag is:
1. An alias for a revision number.
 a) Single revision

2. An alias for multiple revision numbers.
 a) Multiple revisions.

3. An alias for a revision number for a specific location.
 a) Single revision
 b) Specific location

4. An alias for a collection of revisions for a specific location.
 a) Multiple revisions.
 b) Specific location.

5. An alias for a collection of revisions for a specific location with a
 possibility for adding non-versioned files (and folders etc.)
 a) Multiple revisions.
 b) Specific location.
 c) Versioned + non-versioned files.

If I understand correctly Subversion currently supports the fifth
concept, which is also the most extensive.

* Are there any other possibilities or am I missing some properties of
subversion's tag support?

* If everyone agrees on that we've summed up all possibilities, does
everyone agree that Subversion tags should support the fifth(and most
extensive) concept?

* If someone doesn't agree on the fact that subversion should support
the most extensive example, then a discussion would always fail, so I'd
like to know this now :P


A small scenario for each concept

1. A project has reached version 1.0 with it's software and would like
to mark this event. The marking is in the form of a tag, which is only
an alias for the current revision of the repository.

2. A company uses a RCS which version per file, instead of per change
set. Because of this there's no single revision to remember in order to
get back to this situation, a tag collects the revision for every file.
In order to get back to this specific situation, one can use the tag as
a revision. (Thus also an alias for revisions.)

3. A company is working on several projects simultaneously. They use one
repository to store all projects. Each projects has it's own
subdirectory. One project has reached version 1.0 and needs to be
marked. We tag this specific subdirectory (where the 1 project resides)
with the current revision.

4. A company is working on several projects simultaneously. They want a
snapshot of the whole repository with all projects in their current
release revision. Because not all projects are final at the same
revision, so each project (location) has to be switched to their last
release tag and then a new global tag must be made.
(This is an imaginative scenario so if someone has a better example
please tell.)

5. A company is working on a project. Of course they don't commit
binaries, because they can be generated. But they do have one exception.
They commit binaries in the tag for every new release version. So they
tag a revision but with the newly generated (and thus unversioned) binaries.
(I've got this example also from the thread "Tags and branches are NOT
the same".)

To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Jul 8 18:22:05 2006

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.