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.
> But this is in fact just a UI detail. It does not meant that SVN
> doesn't "support" branches, and it certainly doesn't make SVN's
> branches second-class objects.
I disagree; it's not just a UI detail. Subversion's branches are not
first-class objects; they are simply copies of other parts of the
filesystem; there is nothing except human process to make sure that they
are not accidentally abused.
> There's also a huge benefit in having a single namespace -- namely,
> WebDAV/DeltaV interoperability. We'd have had a lot more trouble
> getting that if we had more than one namespace.
I disagree here as well. Having TRUNK/BRANCHES/TAGS in the directory
tree is a real nuisance for build scripts. It would be easy to make
these disappear on the server side, while retaining the dav_svn view of
things. It's just a matter of how the dav_svn apache module is implemented.
If you have a look at some of the other (better) systems, you can see
that banching and tagging are almost always built-in, not just
implemented in the file system.
- thomas beale
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org
Received on Fri Aug 12 09:19:29 2005