You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by "Gale, David" <Da...@Hypertherm.com> on 2006/02/24 15:19:14 UTC
[DESIGN] Aliases? (Was: RE: Re: I, too, miss tags.)
Kent Borg wrote:
> On Thu, Feb 23, 2006 at 07:44:17PM -0800, Ron wrote:
>> I agree. There is a lot I love about SVN over CVS (and VSS) but
>> sometimes I just want simple tags. It is true that subversion's
>> system can do everything tags can (and then some), but it's more
>> cumbersome to use. I don't want to have to know the structure of
>> the repository (/tags, /release, /trunk, etc, etc) just to snap a
>> symbolic name on a revision to help my memory down the road.
>
> Another former CVS users here, one who likes subversion but one who
> also finds the lack of tags unnerving.
>
> One thing I have is a tags.txt file (that I also keep in subversion),
> and in it I keep notes. For some notable versions (e.g., "New feature
> X is working, I think") I note the date and version number along with
> a short comment.
Perhaps we could satisfy all of our former CVS-acolytes (myself
included) with a "svn alias" command (or some such), which would assign
a human-readable name to a specific revision. HEAD, PREV, and the like
already exist, but there's currently no way to assign one of the user's
own creation. I'd propose something like:
svn alias [-force] [-r 21134] NEW_LABEL [path-to-repos]
If the command is run within a working copy, the path to the repository
should be picked up from that. If no revision is specified, HEAD should
be assumed. If the NEW_LABEL alias already exists, an error should be
thrown unless -force is specified (matches CVS's behavior). This
doesn't change the working copy; it creates a versionless alias on the
repository, which would then be available for future "-r <alias>"
commands. I'd also suggest a "svn alias -list" command, which would
list all of the aliases in the repository and the revisions they point
to.
Comments?
-David
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Re: [DESIGN] Aliases? (Was: RE: Re: I, too, miss tags.)
Posted by Theo Van Dinter <fe...@kluge.net>.
On Sat, Feb 25, 2006 at 08:07:51AM -0800, Ron wrote:
> > svn cp $R/$P/{trunk,tags/$T} -m "Creating tag $T"
>
> access methods. Each time I want to quickly create a tag (like when I send
> a version to testing), it's a pain, and when something is a pain to do,
> people stop doing it.
So why not create a script to do that for you? "svntag" could do something
simple like this (warning: this script has had very little testing and has
obvious error cases that it doesn't catch):
TAGNAME=$1
CURL=`svn info . | grep URL | awk '{print $2}' | sed -e "s/\/trunk\/.*/\/trunk/"`
NURL=`echo $CURL | sed -e "s/\/trunk$/\/tags\/$TAGNAME/"`
svn cp -m "Creating tag $TAGNAME" $CURL $NURL
If you're on a platform that doesn't allow for scripting such as this,
there's very likely a way to create a version in whatever the appropriate
language is to perform the same actions.
--
Randomly Generated Tagline:
"Bushes are nice 'cause they don't have prickers. Unless they do. This one did. Ouch!"
--Ralph Wiggum
This Little Wiggy (Episode 5F13)
Re: [DESIGN] Aliases? (Was: RE: Re: I, too, miss tags.)
Posted by Duncan Murdoch <mu...@stats.uwo.ca>.
On 2/25/2006 11:07 AM, Ron wrote:
>> Subversion currently has:
>>
>> To create a new tag:
>>
>> svn cp $R/$P/{trunk,tags/$T} -m "Creating tag $T"
>
> I think illustrates the problem. That is a very cumbersome line to type just to tag a version for future reference. It's error prone and requires me to know (or remember) a lot about the repository. I work on a lot of different projects connected to different servers using two different access methods. Each time I want to quickly create a tag (like when I send a version to testing), it's a pain, and when something is a pain to do, people stop doing it.
>
> On top of that, we are on Windows, so doing things like {trunk,tags/$T} won't work, we're forced to type the whole line (please do not bring up cygwin, because that is missing the point).
If you're on Windows, use TortoiseSVN. All you need to do is highlight
the part of the path you don't want (probably "trunk"), and type in the
part you do want (e.g. "tags/tagname"). You don't need to remember any
of the paths.
Duncan Murdoch
>
> Everyone that is asking for "tags" understands that subverison can already do what they want, but what we're looking for is a easier more intuitive way to do it.
>
> When I want to update my WC, I just type:
>
> svn update
>
> Simple and I don't have to remember paths to repositories even the access methods. All I want is something that is that simple and easy to remember to apply a quick tag (or revision # alias).
>
> I am all in favor of finding the correct solution to this and not just a kludge, but every time I have to create a whole new branch of my project just to tag a simple version I send to test so I remember, I feel like that's a kludge.
>
> Ron
>
>
>
> Ryan Schmidt wrote:
>> On Feb 24, 2006, at 18:11, robert@infotility.com wrote:
>>
>>> Since we know already that symbolic aliases are useful
>>> (HEAD, BASE, etc) why not set up a mechanism to allow
>>> users to make new ones?
>>>
>>> Various correspondents have suggested workarounds or
>>> hacks of various kinds. Thanks guys, but if there's
>>> evidence that there is widespread desire for this feature
>>> (namely that it has been solved multiple times by
>>> multiple persons) why not just build it into the standard release?
>>
>> I for one just don't understand yet what functionality is being gained.
>>
>>
>> Given a project named $P and a repository whose root is $R, and a
>> standard trunk/branches/tags structure in the project, and a tag named $T,
>>
>>
>> Subversion currently has:
>>
>> To create a new tag:
>>
>> svn cp $R/$P/{trunk,tags/$T} -m "Creating tag $T"
>>
>> To replace an existing tag:
>>
>> svn rm $R/$P/tags/$T -m "Removing tag $T"
>> svn cp $R/$P/{trunk,tags/$T} -m "Recreating tag $T"
>>
>> To check out the tag:
>>
>> svn co $R/$P/tags/$T
>>
>> To get a log of the tag:
>>
>> svn log $R/$P/tags/$T
>>
>>
>> What's being proposed seems to be:
>>
>> To create a new tag:
>>
>> svn alias [-r HEAD] $T $R/$P/trunk
>>
>> To replace an existing tag:
>>
>> svn alias -force [-r HEAD] $T $R/$P/trunk
>>
>> To check out the tag:
>>
>> svn co -r $T $R/$P/trunk
>>
>> To get a log of the tag:
>>
>> svn log -r $T:0 $R/$P/trunk
>>
>>
>> Is it just this alternate syntax that's desired, or is there some
>> additional functionality that's gained over Subversion's existing
>> tagging method that I'm just not seeing at the moment?
>>
>> The idea of CVS-like tags, or revision aliases, or revision labels, or
>> symbolic names for revisions, has come up on this mailing list many,
>> many times before (you can search the list archives for some of those
>> terms if you're interested). But I don't think anyone has so far
>> succeeded in making a compelling enough case that the benefit of having
>> this feature would outweigh the considerable development effort needed
>> to implement it.
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
>> For additional commands, e-mail: users-help@subversion.tigris.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: users-help@subversion.tigris.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Re: [DESIGN] Aliases? (Was: RE: Re: I, too, miss tags.)
Posted by Ron <li...@rzweb.com>.
> Subversion currently has:
>
> To create a new tag:
>
> svn cp $R/$P/{trunk,tags/$T} -m "Creating tag $T"
I think illustrates the problem. That is a very cumbersome line to type just to tag a version for future reference. It's error prone and requires me to know (or remember) a lot about the repository. I work on a lot of different projects connected to different servers using two different access methods. Each time I want to quickly create a tag (like when I send a version to testing), it's a pain, and when something is a pain to do, people stop doing it.
On top of that, we are on Windows, so doing things like {trunk,tags/$T} won't work, we're forced to type the whole line (please do not bring up cygwin, because that is missing the point).
Everyone that is asking for "tags" understands that subverison can already do what they want, but what we're looking for is a easier more intuitive way to do it.
When I want to update my WC, I just type:
svn update
Simple and I don't have to remember paths to repositories even the access methods. All I want is something that is that simple and easy to remember to apply a quick tag (or revision # alias).
I am all in favor of finding the correct solution to this and not just a kludge, but every time I have to create a whole new branch of my project just to tag a simple version I send to test so I remember, I feel like that's a kludge.
Ron
Ryan Schmidt wrote:
>
> On Feb 24, 2006, at 18:11, robert@infotility.com wrote:
>
>> Since we know already that symbolic aliases are useful
>> (HEAD, BASE, etc) why not set up a mechanism to allow
>> users to make new ones?
>>
>> Various correspondents have suggested workarounds or
>> hacks of various kinds. Thanks guys, but if there's
>> evidence that there is widespread desire for this feature
>> (namely that it has been solved multiple times by
>> multiple persons) why not just build it into the standard release?
>
>
> I for one just don't understand yet what functionality is being gained.
>
>
> Given a project named $P and a repository whose root is $R, and a
> standard trunk/branches/tags structure in the project, and a tag named $T,
>
>
> Subversion currently has:
>
> To create a new tag:
>
> svn cp $R/$P/{trunk,tags/$T} -m "Creating tag $T"
>
> To replace an existing tag:
>
> svn rm $R/$P/tags/$T -m "Removing tag $T"
> svn cp $R/$P/{trunk,tags/$T} -m "Recreating tag $T"
>
> To check out the tag:
>
> svn co $R/$P/tags/$T
>
> To get a log of the tag:
>
> svn log $R/$P/tags/$T
>
>
> What's being proposed seems to be:
>
> To create a new tag:
>
> svn alias [-r HEAD] $T $R/$P/trunk
>
> To replace an existing tag:
>
> svn alias -force [-r HEAD] $T $R/$P/trunk
>
> To check out the tag:
>
> svn co -r $T $R/$P/trunk
>
> To get a log of the tag:
>
> svn log -r $T:0 $R/$P/trunk
>
>
> Is it just this alternate syntax that's desired, or is there some
> additional functionality that's gained over Subversion's existing
> tagging method that I'm just not seeing at the moment?
>
> The idea of CVS-like tags, or revision aliases, or revision labels, or
> symbolic names for revisions, has come up on this mailing list many,
> many times before (you can search the list archives for some of those
> terms if you're interested). But I don't think anyone has so far
> succeeded in making a compelling enough case that the benefit of having
> this feature would outweigh the considerable development effort needed
> to implement it.
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: users-help@subversion.tigris.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Re: [DESIGN] Aliases? (Was: RE: Re: I, too, miss tags.)
Posted by Ryan Schmidt <su...@ryandesign.com>.
On Feb 24, 2006, at 18:11, robert@infotility.com wrote:
> Since we know already that symbolic aliases are useful
> (HEAD, BASE, etc) why not set up a mechanism to allow
> users to make new ones?
>
> Various correspondents have suggested workarounds or
> hacks of various kinds. Thanks guys, but if there's
> evidence that there is widespread desire for this feature
> (namely that it has been solved multiple times by
> multiple persons) why not just build it into the standard release?
I for one just don't understand yet what functionality is being gained.
Given a project named $P and a repository whose root is $R, and a
standard trunk/branches/tags structure in the project, and a tag
named $T,
Subversion currently has:
To create a new tag:
svn cp $R/$P/{trunk,tags/$T} -m "Creating tag $T"
To replace an existing tag:
svn rm $R/$P/tags/$T -m "Removing tag $T"
svn cp $R/$P/{trunk,tags/$T} -m "Recreating tag $T"
To check out the tag:
svn co $R/$P/tags/$T
To get a log of the tag:
svn log $R/$P/tags/$T
What's being proposed seems to be:
To create a new tag:
svn alias [-r HEAD] $T $R/$P/trunk
To replace an existing tag:
svn alias -force [-r HEAD] $T $R/$P/trunk
To check out the tag:
svn co -r $T $R/$P/trunk
To get a log of the tag:
svn log -r $T:0 $R/$P/trunk
Is it just this alternate syntax that's desired, or is there some
additional functionality that's gained over Subversion's existing
tagging method that I'm just not seeing at the moment?
The idea of CVS-like tags, or revision aliases, or revision labels,
or symbolic names for revisions, has come up on this mailing list
many, many times before (you can search the list archives for some of
those terms if you're interested). But I don't think anyone has so
far succeeded in making a compelling enough case that the benefit of
having this feature would outweigh the considerable development
effort needed to implement it.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Re: [DESIGN] Aliases? (Was: RE: Re: I, too, miss tags.)
Posted by "robert@infotility.com" <ro...@infotility.com>.
Quoting "Gale, David" <Da...@Hypertherm.com>:
> Perhaps we could satisfy all of our former CVS-acolytes (myself
> included) with a "svn alias" command (or some such), which would assign
> a human-readable name to a specific revision. HEAD, PREV, and the like
> already exist, but there's currently no way to assign one of the user's
> own creation. I'd propose something like:
>
> svn alias [-force] [-r 21134] NEW_LABEL [path-to-repos]
>
> If the command is run within a working copy, the path to the repository
> should be picked up from that. If no revision is specified, HEAD should
> be assumed. If the NEW_LABEL alias already exists, an error should be
> thrown unless -force is specified (matches CVS's behavior). This
> doesn't change the working copy; it creates a versionless alias on the
> repository, which would then be available for future "-r <alias>"
> commands. I'd also suggest a "svn alias -list" command, which would
> list all of the aliases in the repository and the revisions they point
> to.
I think all of this is right on the mark.
Since we know already that symbolic aliases are useful
(HEAD, BASE, etc) why not set up a mechanism to allow
users to make new ones?
Various correspondents have suggested workarounds or
hacks of various kinds. Thanks guys, but if there's
evidence that there is widespread desire for this feature
(namely that it has been solved multiple times by
multiple persons) why not just build it into the standard release?
Thanks a lot to everyone who has responded.
I appreciate your help.
Robert Dodier
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Re: [DESIGN] Aliases? (Was: RE: Re: I, too, miss tags.)
Posted by Darko Miletic <da...@uvcms.com>.
Gale, David wrote:
> Perhaps we could satisfy all of our former CVS-acolytes (myself
> included) with a "svn alias" command (or some such), which would assign
> a human-readable name to a specific revision. HEAD, PREV, and the like
> already exist, but there's currently no way to assign one of the user's
> own creation. I'd propose something like:
>
> svn alias [-force] [-r 21134] NEW_LABEL [path-to-repos]
I like this idea.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Re: [DESIGN] Aliases? (Was: RE: Re: I, too, miss tags.)
Posted by Saulius Grazulis <gr...@akl.lt>.
On Friday 24 February 2006 17:52, Vincent Starre wrote:
> Such would need to be client-side in order to make any sense at all, and
> that itself doesnt make any sense at all :)
> ...
I am afraid I can not follow you here. Why it does not make sence?
A list of revision labels would be a per-repository (non-versioned) property;
when client sets a label, it will be committed and stored in the repo. When
other clients update, they will get a new list of labels each time. Conflicts
would be handled as usual. Seems clean.
The only extra thing that comes to me is that you probably do not want some
labels to be arbitrarily removed (say, you do not want to VER-2.0 label to
disappear misteriously ;). Thus, some labels should be marked as
"non-mutable", and/or only an original committer should be able to change the
label (which would imply that the committers name would be changed along with
the labels and revision).
Regards,
Saulius.
--
Saulius Gražulis
Visuomeninė organizacija "Atviras Kodas Lietuvai"
P.Vileišio g. 18
LT-10306 Vilnius
Lietuva (Lithuania)
tel/fax: (+370-5)-210 40 05
mobilus: (+370-684)-49802, (+370-614)-36366
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Re: [DESIGN] Aliases? (Was: RE: Re: I, too, miss tags.)
Posted by Vincent Starre <vs...@comcast.net>.
Such would need to be client-side in order to make any sense at all, and
that itself doesnt make any sense at all :)
Even if it would simply pick up svn:aliases from whatever wc it were
pointed to (again, makes no sense since not all commands take a wc
argument) it would be near-useless if it werent inheiritable (issue
1054) and so at the very least I think it should be delayed.
Though this is probably (again) just me, I still think actually doing
something with an $SVN_ROOT (or, if you prefer, %SVN_ROOT%)
environmental variable would cut down on all the typing enough that
these "I miss tags" people would just accept the tags svn already has :)
Of course, the desire to operate on multiple repositories is the primary
reason for not wanting an $SVN_ROOT. I propose no solution, and say only
that this limitation also would make an $SVN_ROOT near-useless and make
very little sense (especially as one who hopes for an svn patch command
some day)
Yes, the tags svn has support for are longer, but the lack of ambiguity
that provides is a good thing.
As mentioned in an earlier message in this thread, I think a way to
specify paths "relative to the wc", or maybe even "relative to another
path provided elsewhere in the command-line" could solve a lot of the
"it's too long" issues.
Example (merging 1.9.8->current into wc of a branch):
svn merge svn+ssh://warehouse/main/tags/1.9.8 +../trunk .
or maybe (assuming wc, given no original path):
svn merge +../../tags/1.9.8 +../../trunk .
though perhaps this could help aliases:
svn merge +~1.9.8 +~trunk .
meaning "check aliases in . for 1.9.8, etc", so you could specify which
aliases to look at.
Maybe even stack them:
svn merge +~trunk+~1.9.8 +~trunk .
meaning "check aliases in . for something called trunk, check it's
aliases for 1.9.8", etc
All considerations stemming from "even if it's repository-wide, you'd
still need to give the repository in the first place, so you're still
right back where you started" (not that we have repository-wide props ;))
In short: I think 1054 is needed for this to work at all :)
Gale, David wrote:
>Kent Borg wrote:
>
>
>>On Thu, Feb 23, 2006 at 07:44:17PM -0800, Ron wrote:
>>
>>
>>>I agree. There is a lot I love about SVN over CVS (and VSS) but
>>>sometimes I just want simple tags. It is true that subversion's
>>>system can do everything tags can (and then some), but it's more
>>>cumbersome to use. I don't want to have to know the structure of
>>>the repository (/tags, /release, /trunk, etc, etc) just to snap a
>>>symbolic name on a revision to help my memory down the road.
>>>
>>>
>>Another former CVS users here, one who likes subversion but one who
>>also finds the lack of tags unnerving.
>>
>>One thing I have is a tags.txt file (that I also keep in subversion),
>>and in it I keep notes. For some notable versions (e.g., "New feature
>>X is working, I think") I note the date and version number along with
>>a short comment.
>>
>>
>
>Perhaps we could satisfy all of our former CVS-acolytes (myself
>included) with a "svn alias" command (or some such), which would assign
>a human-readable name to a specific revision. HEAD, PREV, and the like
>already exist, but there's currently no way to assign one of the user's
>own creation. I'd propose something like:
>
>svn alias [-force] [-r 21134] NEW_LABEL [path-to-repos]
>
>If the command is run within a working copy, the path to the repository
>should be picked up from that. If no revision is specified, HEAD should
>be assumed. If the NEW_LABEL alias already exists, an error should be
>thrown unless -force is specified (matches CVS's behavior). This
>doesn't change the working copy; it creates a versionless alias on the
>repository, which would then be available for future "-r <alias>"
>commands. I'd also suggest a "svn alias -list" command, which would
>list all of the aliases in the repository and the revisions they point
>to.
>
>Comments?
>-David
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
>For additional commands, e-mail: users-help@subversion.tigris.org
>
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org