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

Re: FW: [DESIGN] Aliases?

From: Matthias Wächter <matthias.waechter_at_tttech.com>
Date: 2006-02-28 12:09:09 CET

Ben Collins-Sussman schrieb:
> You know, we already have the ability to attach arbitrary unversioned
> metadata to revisions. And that's exactly the sort of "label" that
> David Gale is talking about. If we had the ability to search
> revisions by querying revprops, we'd be done. David could invent all
> the revprops he wanted, and search on those revprops to locate
> specific revision numbers.

I don't think that that's the way it is meant and should be done.

If I understand the issue correctly, what Subversion is missing is a way
to specify a tag, and instead of checking out the tag (directory)
getting the source-of-tag directory.

For example, consider a checked-out directory:

/repos/trunk/ (@5)
             /file1 (@5)
             /file2 (@7)

When you create a tag, you simply make "svn cp .
http://server/repos/tags/mytag" committing, f.e., rev. 10

When you check out "http://server/repos/tags/mytag" again, despite the
nomenclature and possibly typing more than in the case of proposed
aliases, you end up with

/
repos/tags/mytag/ (@10)
                 /file1 (@10)
                 /file2 (@10)

but what you actually need is to check out what you had before,
/repos/trunk @5 and the files @5 and @7, even if the tag was @10.
Currently, there is no easy way back to /repos/trunk at the specified,
possibly mixed-revision state. The reference is there but can only be
used for keeping the history, making diffs and merges and so on.

The missing feature could be implemented using current Subversion
commands, subversion methods, by adding a property to the created tag
that assures that checking out the tag will _not_ check out the tag but
what the tag _points to_. Similarly, if such a tag is tagged again, not
the tag is copied but what it points to, so you get an equal copy of the
source and not a daisy chain of copies.

Technically, this behavior could be implemented on the server side,
f.e., by specifying a "svn:child-copies-are-walkbacks" property to
/repos/tags, which automatically adds a "svn:copy-walkback" property. If
this tag is detected at checkout time, the copy that led to the tag is
undone, and the local copy ends up being /repos/trunk @5-7.

In addition to the server-side implementation, the "svn:copy-walkback"
property could be added if a special client option to "svn copy" is given.

Isn't that in fact what the user expects from tags?

- Matthias

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Tue Feb 28 22:57:25 2006

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