You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Josh Howe <jo...@sinu.com> on 2004/09/27 14:30:48 UTC

newbie revision question

 

Hi,

 

I'm new to subversion and to this list, so please excuse my ignorance. Is
there any way to give a particular revision a more meaningful name, like
"release 1.0" or something? And maybe be able to pass that name to the
"export" command instead of a revision number? Thanks! 


Re: newbie revision question

Posted by Scott Palmer <sc...@2connected.org>.
On Sep 30, 2004, at 9:30 AM, Tristan Seligmann wrote:

> even if you always release from the same repository subtree
> (eg. trunk), you're referring to data by two "coordinates": location in
> the filesystem, and revision number. By making a copy, you preserve
> both of these coordinates, instead of only one (the revision number).

You only preserve that by making a read-only copy, which is not 
directly supported by subversion. (E.g. if this is delegated to Apache, 
then the access method http:, svn:, file: would give you different 
states of read/write access.  So it is not a feature of subversion.)  
If the copy is not read-only then then nothing is really 'preserved' at 
all.

But it is more than simple access rights.  Suppose someone tags a 
release and puts the tag somewhere unexpected.  I know that there is a 
tag representing the state of the trunk at some important revision. How 
do I find that tag? Unfortunately it is not easy to look at all of the 
tags made of a particular branch throughout it's history, because 
subversion does not manage that for you.  It is a manual process 
relying on naming & layout conventions as it is.

> If you introduce the concept of a labeled revision that is limited to a
> particular subtree, then I see no major difference between a copy named
> '/tags/releases/1.0.0' and a "label" named '1.0.0 release'.

If the label was a property of the thing that was labeled, as Simon and 
James have pointed out, you will see them from the 'other side'.  A 
history of the trunk would show when it was labeled.  Finding a 
particular tag now works differently, you would have to check 
history/logs of each tag to find where they came from and relate that 
to the source you were interested in, rather than looking at the source 
and finding the important markers that were made on it.

> Of course, if you're proposing to do away with /tags, /branches, etc.
> entirely

I'm not proposing anything like that. I like cheap copies, but they 
have some limitations when used as labels.  I like the flexibility they 
offer, I'm not talking about a different implementation of an existing 
feature.  I'm talking about a new feature that provides more 
information, so that subversion can mange some things that it *should* 
know about, rather than making those things something each user must 
manage with some external process.


Scott


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: newbie revision question

Posted by Simon Large <sl...@blazepoint.co.uk>.
"Tristan Seligmann" wrote
> If you introduce the concept of a labeled revision that is limited to a
> particular subtree, then I see no major difference between a copy named
> '/tags/releases/1.0.0' and a "label" named '1.0.0 release'.

The problem with a tag is that you cannot see by looking at the trunk, where
the tag was taken from. If you do a log of a file in the trunk, you can't
relate the revisions of that file directly to tag points. You have to go
browse the tags folder, note the revisions, then relate that back to the
revision numbers shown in the file's log. It's not hard, but its one of
those things that I pay my computer to do for me.

> Of course, if you're proposing to do away with /tags, /branches, etc.
> entirely, and just dump data in the root of the repository, then you
> probably don't need to limit your scope to a specific subtree of the
> repository; however, the existing usage of the subversion filesystem
> seems to work well for many people, and I don't think that labeled
> revisions will do away with it.

I don't think anyone is proposing to do away with tags and branches. The svn
copy is a powerful and useful feature. This is just an alternative way of
looking at project history. Of course if there is a way of making tag and
branch creation visible in the tree they were created from (ie. the trunk
says 'copied to ...' as well as the branch saying 'copied from ...'), that
would also
work.

Simon





---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: newbie revision question

Posted by James Chaldecott <ja...@swythan.co.uk>.
Tristan Seligmann wrote:
> If you introduce the concept of a labeled revision that is limited to a
> particular subtree, then I see no major difference between a copy named
> '/tags/releases/1.0.0' and a "label" named '1.0.0 release'.

The difference as I would see it is that software tools would know how 
to map "labels" to revisions & locations (presumably via an API), 
whereas they *cannot* do the same for the current system (e.g. 
'/tags/releases/1.0.0') because that is an (intentionally) arbitrary 
repository structure.

A *human* can do 'ls /tags' to find all the tags. A computer program 
cannot (as it doesn't know where to look).

I'm not sure I know *exactly* why this is useful, but it does stand as a 
concrete difference between the two.

James


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: newbie revision question

Posted by Tristan Seligmann <tr...@quotemaster.co.za>.
On Mon, Sep 27, 2004 at 01:32:35PM -0400, Scott Palmer wrote:
> 
> On Sep 27, 2004, at 12:30 PM, Jeremy Pereira wrote:
> 
> >The underlying function that Josh Howe is asking for is to preserve a 
> >copy of his tree as it was at the time of release 1.0.
> 
> No it isn't.  He is asking for a way to label a particular version of 
> the tree.  The copy is just cluttering the repository with something 
> that needs more work to deal with.  For example the tag needs to be 
> protected from modifications with a pre-commit hook.

Which tree? The entire repository? That's the scope of a revision
number. A copy, on the other hand, can be made of any arbitrary subtree
of the repository: trunk, a release branch, etc.

> We already have a very similar concept to that of a labeled revision 
> number: "HEAD", "BASE", etc..   Why is nobody suggesting to replace 
> HEAD with repo/tags/HEAD ? (which could be deleted and recreated on 

Because HEAD, BASE, etc. refer to the entire repository; when making a
release, even if you always release from the same repository subtree
(eg. trunk), you're referring to data by two "coordinates": location in
the filesystem, and revision number. By making a copy, you preserve
both of these coordinates, instead of only one (the revision number).
If you introduce the concept of a labeled revision that is limited to a
particular subtree, then I see no major difference between a copy named
'/tags/releases/1.0.0' and a "label" named '1.0.0 release'.

Of course, if you're proposing to do away with /tags, /branches, etc.
entirely, and just dump data in the root of the repository, then you
probably don't need to limit your scope to a specific subtree of the
repository; however, the existing usage of the subversion filesystem
seems to work well for many people, and I don't think that labeled
revisions will do away with it.

-- 
Tristan Seligmann
Software Engineer / Network Administrator

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: newbie revision question

Posted by Scott Palmer <sc...@2connected.org>.
On Sep 27, 2004, at 12:30 PM, Jeremy Pereira wrote:

> The underlying function that Josh Howe is asking for is to preserve a 
> copy of his tree as it was at the time of release 1.0.

No it isn't.  He is asking for a way to label a particular version of 
the tree.  The copy is just cluttering the repository with something 
that needs more work to deal with.  For example the tag needs to be 
protected from modifications with a pre-commit hook.

>   Leaving aside all considerations of implementation, to me the "copy 
> the tree to a special place calling it revision 1.0" seems the more 
> natural metaphor than the "label a particular revision release 1.0".

But not to me, and not to many others.  The copy can work so that it 
ends up representing the same thing.  But I find it less natural than 
simply marking a point in development time where we call the product 
"release 1.0"

>   At least in this instance, it is tags that are the workaround not 
> svn copy.

Note that I have never used CVS, I'm coming from a Visual Source Safe 
background, where I would use a "Label" to do this sort of thing.

> Some people seem to be coming up with ideas like "x is difficult in 
> subversion, but if we had tags, it'd be easy".  This may be true, but 
> the question should be "can we fix x without grafting on extra kludgy 
> UI metaphors?"

We already have a very similar concept to that of a labeled revision 
number: "HEAD", "BASE", etc..   Why is nobody suggesting to replace 
HEAD with repo/tags/HEAD ? (which could be deleted and recreated on 
every commit)  One obvious reason is that it then forces people to 
layout the repository in a certain way so the server can use the 'tags' 
folder.  For similar reasons, why force people to use a 'tags' folder 
(or some similar thing that appears in the repository tree) instead of 
the "labeled revision" method?


> One of the reasons I like subversion so much is it presents me with an 
> elegant simple conceptual model which is actually more powerful than 
> my previous version control system (CVS).

I agree.  This isn't a show stopping feature for me by any means.

Scott

P.S. further discussion should probably go to the "I miss tags" thread.


> On Sep 27, 2004, at 15:43, Scott Palmer wrote:
>
>> The short answer is "You can use cheap copies as 'tags' to do this."  
>> Which basically means "not exactly, but there is a workaround."   See 
>> the "I miss tags" thread for a more in-depth discussion.
>>
>> Scott
>>
>> On Sep 27, 2004, at 10:30 AM, Josh Howe wrote:
>>
>>>  Hi,
>>>
>>>
>>> I’m new to subversion and to this list, so please excuse my 
>>> ignorance. Is there any way to give a particular revision a more 
>>> meaningful name, like “release 1.0” or something? And maybe be able 
>>> to pass that name to the “export” command instead of a revision 
>>> number? Thanks!

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org


Re: newbie revision question (Re: I miss tags)

Posted by Mark Phippard <Ma...@softlanding.com>.
"Raye Raskin" <ra...@pobox.com> wrote on 09/27/2004 01:32:20 PM:

> I'd like to see an SVN-built-in way to keep a directory
> hierarchy from being committed to.  That's it.  Make it
> SVN-read-only.  No external scripts or wrappers should be
> required to do this.  There should be a way to override
> the read-only decision, a la "cvs tag -F", but you should
> have to make a real conscious decision to do so.

You can do it today if you are using Apache repository by using mod_authz. 
 

I do not know the issue number, but Repository-based ACL's are high on the 
to-do list.  It has been tossed around that it might be implemented as 
part of adding the locking feature in SVN 1.2, but I do not know if that 
is still the case.  At least one of the committers believes the two 
features have similar internal API requirements.  So, if nothing else, 
when locking is added, it may pave the way for ACL's to come soon after.

Mark


_____________________________________________________________________________
Scanned for SoftLanding Systems, Inc. by IBM Email Security Management Services powered by MessageLabs. 
_____________________________________________________________________________

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: newbie revision question (Re: I miss tags)

Posted by Raye Raskin <ra...@pobox.com>.
> From: "Jeremy Pereira" <je...@ntlworld.com>
> To: "Subversion Users" <us...@subversion.tigris.org>; "Scott Palmer" <sc...@2connected.org>
> Sent: Monday, September 27, 2004 9:30 AM
> Subject: Re: newbie revision question
> 

> Why is it that people can't see past the tags thing?  Can I remind 
> everybody that tags themselves are a bad hack introduced into CVS 
> because of its poor design i.e. CVS is a tool to manage a collection of 
> standalone files which are each under revision control *separately* 
> rather than a single code tree which is under revision control.
> 
> The underlying function that Josh Howe is asking for is to preserve a 
> copy of his tree as it was at the time of release 1.0.  Leaving aside 
> all considerations of implementation, to me the "copy the tree to a 
> special place calling it revision 1.0" seems the more natural metaphor 
> than the "label a particular revision release 1.0".  At least in this 
> instance, it is tags that are the workaround not svn copy.
> 
> Some people seem to be coming up with ideas like "x is difficult in 
> subversion, but if we had tags, it'd be easy".  This may be true, but 
> the question should be "can we fix x without grafting on extra kludgy 
> UI metaphors?"
> 
> One of the reasons I like subversion so much is it presents me with an 
> elegant simple conceptual model which is actually more powerful than my 
> previous version control system (CVS).  If it were my project, it'd 
> break my heart to have to implement something as nasty as tags.
> 
> NB I don't call my tags directory "tags", I call it "releases" which 
> reflects better what it is for.

I agree that the copy metaphor is elegant, inexpensive, and fast
(though I haven't tried it on a large repository yet, but I take
the word of everyone.)  I think it's a good thing.  Kudos to the
SVN development team.  Thinking back on 90 minute tags of large
repositories makes me appreciate the SVN solution (though a long
lunch isn't bad, either.)

The SVN mission statement (I paraphrase) is to be a better CVS.

To me, the crux of the issue (it's not really a "problem") is in
CVS there are two kinds of tags: branch tags and static tags.
They exist for two fundamentally different purposes.

Yes, it has been properly noted that in CVS you are allowed to
"-F"orcefully move a static tag.

In general:

  Branch tag = a moving target
  Static tag = not a moving target

I'm sure most of us have used the -F option to "cvs tag", and
it surely has its uses.  Clearly, SVN has that mechanism
already built in.  :-)

Personally, I'm not asking for (nasty) tags or labels.

I'd like to see an SVN-built-in way to keep a directory
hierarchy from being committed to.  That's it.  Make it
SVN-read-only.  No external scripts or wrappers should be
required to do this.  There should be a way to override
the read-only decision, a la "cvs tag -F", but you should
have to make a real conscious decision to do so.

Raye.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: newbie revision question

Posted by Jeremy Pereira <je...@ntlworld.com>.
Why is it that people can't see past the tags thing?  Can I remind 
everybody that tags themselves are a bad hack introduced into CVS 
because of its poor design i.e. CVS is a tool to manage a collection of 
standalone files which are each under revision control *separately* 
rather than a single code tree which is under revision control.

The underlying function that Josh Howe is asking for is to preserve a 
copy of his tree as it was at the time of release 1.0.  Leaving aside 
all considerations of implementation, to me the "copy the tree to a 
special place calling it revision 1.0" seems the more natural metaphor 
than the "label a particular revision release 1.0".  At least in this 
instance, it is tags that are the workaround not svn copy.

Some people seem to be coming up with ideas like "x is difficult in 
subversion, but if we had tags, it'd be easy".  This may be true, but 
the question should be "can we fix x without grafting on extra kludgy 
UI metaphors?"

One of the reasons I like subversion so much is it presents me with an 
elegant simple conceptual model which is actually more powerful than my 
previous version control system (CVS).  If it were my project, it'd 
break my heart to have to implement something as nasty as tags.

NB I don't call my tags directory "tags", I call it "releases" which 
reflects better what it is for.

On Sep 27, 2004, at 15:43, Scott Palmer wrote:

> The short answer is "You can use cheap copies as 'tags' to do this."  
> Which basically means "not exactly, but there is a workaround."   See 
> the "I miss tags" thread for a more in-depth discussion.
>
> Scott
>
> On Sep 27, 2004, at 10:30 AM, Josh Howe wrote:
>
>>  Hi,
>>
>>
>> I’m new to subversion and to this list, so please excuse my 
>> ignorance. Is there any way to give a particular revision a more 
>> meaningful name, like “release 1.0” or something? And maybe be able 
>> to pass that name to the “export” command instead of a revision 
>> number? Thanks!
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: users-help@subversion.tigris.org
>
>
>
--
Jeremy Pereira
http://www.jeremyp.net


______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
______________________________________________________________________

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org


Re: newbie revision question

Posted by Scott Palmer <sc...@2connected.org>.
The short answer is "You can use cheap copies as 'tags' to do this."  
Which basically means "not exactly, but there is a workaround."   See 
the "I miss tags" thread for a more in-depth discussion.

Scott

On Sep 27, 2004, at 10:30 AM, Josh Howe wrote:

>  Hi,
>
>
> I’m new to subversion and to this list, so please excuse my ignorance. 
> Is there any way to give a particular revision a more meaningful name, 
> like “release 1.0” or something? And maybe be able to pass that name 
> to the “export” command instead of a revision number? Thanks!


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org