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

Re: Why are branches real directories?!?!?!

From: ryan <ryan_at_netidea.com>
Date: 2003-04-02 05:23:55 CEST


I'm not sure which source control systems you are used to, but
subversion branching one is perfectly in line with commonly used
branching mechanisms. It's CVS's branching mechanism which is messed
up. I would say that svn's branching mechanism is fully implemented.

In perforce, a branch is just a 'regular' directory. Except it knows
that its a branch and it knows who the parent branch is (and who it's
children are). When you integrate (merge from one branch to another),
perforce keeps track of the activity, so duplicate merges aren't
performed. This is the only part that subversion needs to be considered
fully functional.

As for the naming 'issue' this is resolved by using a simple convention
(btw, perforce also uses naming conventions...)

/trunk - mainline modules go here
/branch - branches go here
/tags - tag aka snapshots go here

you can further subdivide it as necessary.

I might add, one of the major negative things with branches in CVS, is
how hacked in they are. When you are checked out with a branch, the
only way to tell is the 'sticky tag' (WTF?!) which is a bizzare concept.

In practice, the number of branches is minimal. Generally you only
-mainline (primary development)

Every release cycle you merge changes from mainline->alpha->beta and
'ripple' the changes down to production.

In short, saying that using directories as branches is 'bad' is just a
value judgement, and I'm (we?) trying to say that infact once you get
used to this way, you will regard CVS as bizzare.


Jean-Luc Wasmer wrote:
> Hi,
> I just started playing with svn. I like most ideas that were introduced.
> There is only one thing that I don't get.
> If I overcome this, then I'm done with CVS. Please, help me.
> Why isn't the branch concept fully implemented?
> IMHO, copying to a new directory a part of the repository to create a branch
> is BAD (even if it's cheap). It reminds me one time I _had_ to use VSS in a
> project.
> The svn guide says:
> "Subversion's branches exist a normal filesystem directories in the
> repository, not in some extra dimension."
> But isn't the extra dimension the coolest thing about a version control
> tool?
> Having the same file system tree when switching between revisions or
> branches avoids changing paths in make files, configuration files, etc...
> SVN might as well create a new filename for every revision of a file
> (filename-r1, filename-r2, etc...).
> It doesn't. So the history of a file is an extra dimension to a regular file
> system.
> Why would this be a problem with branches?
> Also (not a big deal, but still), the names of the branches may interfere
> with future directories.
> JL
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org

To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Apr 2 05:26:52 2003

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.