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

RE: feature request: svn revision alias

From: Reedick, Andrew <jr9445_at_ATT.COM>
Date: Tue, 19 Feb 2008 10:45:37 -0600

> -----Original Message-----
> From: Paul Koning [mailto:Paul_Koning_at_Dell.com]
> Sent: Tuesday, February 19, 2008 10:30 AM
> To: Reedick, Andrew
> Cc: os_at_portfoolio.com; users_at_subversion.tigris.org
> Subject: RE: feature request: svn revision alias
>
>
>
> In Subversion, a revision number always identifies a revision of the
> repository. The WHOLE repository.
>
> Any one checkin is likely to change only a subset of the repository,
> but nevertheless the rev number identifies a particular state of the
> whole repository. If you care what bits were changed by a particular
> rev, do "svn log -r 1234 -v" on the repository root, and svn will tell
> you.

That's my point. The revision number applies to the WHOLE repository.
The Humans use tags to baseline a SUBSET of the repository. A revision
number by itself is useless for that purpose.
 

> So the proposal certainly is logically valid.

The OP's proposal is:
        The svn revision is pretty much equivalent to what a tag is in
other systems.
        svn alias <rev> <name> (or svn revalias <rev> <name>)

In any system, a tag is a subset of a repository, normally used to
create a baseline. (That's the definition I'm working under.) The
alias is a single rev. A single rev is useless for marking subsets of
repositories.[1] Therefore, 'svn alias' is useless as a substitute for
tags and thus useless for creating baselines, and thus useless to the
OP's stated purpose.[2]

> And I could see some
> uses for it -- some of the things done with tags are more conveniently
> done by rev aliases than by lightweight copy (though they can be made
> to work either way. For example, we tag the most recent rev in the
> version Xyz development stream for which the nightly build procedure
> ran without errors. In CVS (and presumably with the alias scheme)
> that's just a tag operation. In Subversion, it requires deleting the
> old tag, then making a new one. For various reasons, that isn't as
> good a solution (though it is good enough to get the job done).

In this case, the tag is applied to a whole mess of files, normally an
entire subtree. Aliasing a single SVN revision would only 'tag' the few
files in the revision. 'svn copy ... /tags/...' will "tag" many
revisions.

The proposed 'svn alias <rev> <name>' would create another HEAD, PREV,
etc. type label. If I told you I want the HEAD, what code would you
give me? You would give me the three or four files that were checked in
last, instead of the thousands of files in the rel.1.0.0 baseline.

Also, 'svn alias <rev> <name>' is very similar to SVN properties. Would
you rather use 'svn copy' or 'svn propset' to create a baseline/tag in
SVN?

Also^2, in other systems, you can tag a single file. How would 'svn
alias <rev> <name>' work on a single file when revisions contain several
files?

A useful 'svn alias' command would have to be something like:
        svn alias -r REV <alias> <svn:url | svn_path>
which is essentially the same thing as a 'svn copy' tag or a 'svn
propset' tag.

[1] Yes, a rev is a very, very, very, very small subset of a repository.
But how often do you tag/baseline using a single revision?

[2] Unless I've completely missed the point despite re-reading the OP's
email a few times. =/

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: users-help_at_subversion.tigris.org
Received on 2008-02-19 17:46:18 CET

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

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