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

Re: RE: Re: I miss tags

From: Christopher Ness <chris_at_nesser.org>
Date: 2004-09-29 19:20:59 CEST

On Wed, 2004-09-29 at 11:54, Archie Cobbs wrote:
> Labanca, Rick wrote:
> > > How about simply checking in a file called "revision-alias"
> > > that contains
> > > the revision number of the last merge? Every time you want to "slide"
> > > your tag, edit the file and recommit. Or, store this info in
> > > a property.
> >
> > A hack but possible. But to me, it makes sense to provide a way to
> > symbolically name a numeric value such as this revision number. Then
> > anywhere I can stick the rev number, I can use an easier to read, harder
> > to transpose, redefinable label.
>
> Not a crazy idea.. this could be implemented purely in the 'svn'
> client using unversioned properties on the repository, e.g.,
> "svn:tag:RELASE_1_0" -> "1432".
>
> But that has the disadvantage that all tags are "global" to the
> repository.. maybe then per-subdirectory tags (using similar versioned
> properties) would make more sense... ?

The user needs to identify the files that are to be tagged in their tag
command. It seems quite a simple thing to store the files they tagged
also, but in a tuple form.

The user should not be able to call the tag command more than once for
the same "human readable" form of the tag (multiple tags with different
names of the same revision should be allowed). I would argue that tags
should not be deletable, but would settle with the fact that the tags
should be static and never be modified.

From above example: I have no idea how this could be integrated into
the modular data storage, but if it is only stored as a "file" in SVN
it's garbage, svn [log|checkout] and other commands would need to
understand it as well for it to be powerful.

"svn:tag:RELASE_1_0" -> "1432" ( /trunk/project/* )
"svn:tag:FIX_1_0_1" -> "2001" ("/trunk/project/" "/branch/ness/fix.c")

The command to create the FIX tag above could look like:
      svn tag "FIX_1_0_1" /svn-path/trunk/project/ \
                          /svn_path/branch/ness/fix.c

Note that only fix.c is tagged in /branch/ness/ there could be many
other files or directories in that directory.

Now if you:
     svn co -t FIX_1_0_1 proto://[/]svn/path/to/root

I believe you should checkout revision 2001, but only the defined files
in /trunk/project and /branch/ness/fix.c that were tagged. None of the
other files in /branch/ness/ should be checked out.

That is how I see tagging working.
  "A subset of the repository at a defined global revision."

Chris

-- 
Software Engineering V,
McMaster University
PGP Public Key: http://www.nesser.org/pgp-key/
12:58:27 up 3:33, 3 users, load average: 0.08, 0.02, 0.01 
http://www.fsf.org/philosophy/no-word-attachments.html

Received on Wed Sep 29 19:21:35 2004

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