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

Re: early reflections on subversion methodology

From: Branko Čibej <brane_at_xbc.nu>
Date: 2005-08-12 21:44:38 CEST

David Weintraub wrote:

>On 8/12/05, Branko Čibej <brane@xbc.nu> wrote:
>
>
>>Thomas Beale wrote:
>>
>>
>>
>>>Branko Čibej wrote:
>>>
>>>
>>>
>>>>David Weintraub wrote:
>>>>
>>>>
>>>>
>>>>>So, it seems rather strange that Subversion doesn't understand the
>>>>>built in concepts of branches and tags. Instead, these items are
>>>>>merely emulated via pseudo-directories. After all, tags and branches
>>>>>have been implemented as part of version control systems since RCS
>>>>>back in 1985.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>Subversion certainly does understand branches and tags. The important
>>>>feature of branches (and tags -- these are just branches that are
>>>>never changed after creation) is that they establish a (named)
>>>>parallel line of development that tracks its ancestry and can expose
>>>>ancestry information to procedures that need it, e.g., merge.
>>>>
>>>>From what I've been able to gather from this thread, people are
>>>>either upset or confused because directories and branches share the
>>>>same namespace, whilst most other VC systems in use today have a
>>>>separate namespace for branches.
>>>>
>>>>
>>>I don't think anyone is upset or confused. Without wishing to
>>>antagonise anyone in this discussion, it is quite clear in a formal
>>>sense that subversion doesn't directly implement the semantics of
>>>branches and tags; it just approximates them using an existing
>>>facility. To see that this is true, consider that the concept of a
>>>'tag' is not itself a 'parallel branch'; it is the name attached to a
>>>particular revision of a line of development, either the mainline, or
>>>some other branch. But it is not implemented in this way - it is
>>>implemented as a copy of some other part of the repository.
>>>
>>>
>>*Sigh*
>>
>>You're imposing your fairly narrow perception of what tags are. A tag is
>>a name for a collection of versions (a configuration in SCM-speak).
>>Those versions can all come from one branch, but that's not a
>>requirement in general. How it's implemented, and what the name looks
>>like (in SVN's case, it's an URL), is irrelevant here. And, BTW, in
>>Subversion you can create a tag that does not correspond to any
>>committed revision in the repository.
>>
>>
>
>The concept that you keep missing is that tags and branches have a
>special relationship to the files they tag and branch from. Whatever
>mechanism is used to track branches and tags needs to know that the
>version of "foo.c" that has the tag "BARFOO" on it, and that the
>versions of foo.c on the branch "foobar" are all related to the
>versions of "foo.c" sitting on my main trunk.
>
>The truth is that Subversion simply doesn't understand this
>relationship. This is what is making things difficult in Subversion.
>Instead of my version control system tracking this, I now have to use
>my poor overworked brain to do this type of stuff.
>
>
What are you talking about? Of course SVN knows about the relationship
between the tag and it source.

Not that I agree with your statement -- you're imposing your narrow view
of the world again.

-- Brane

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Fri Aug 12 21:46:55 2005

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.