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

Re: Strategies for projects/branches layout

From: Ryan Schmidt <subversion-2005_at_ryandesign.com>
Date: 2005-11-07 22:06:11 CET

On Nov 7, 2005, at 21:33, Jesse Erlbaum wrote:

>> See, and I learned version control on Subversion, and now that I'm
>> trying to participate in some open-source projects that use CVS, I'm
>> totally baffled by CVS's non-directory-ish treatment of braches and
>> tags. :-) Gonna have to find me a CVS book.
>
> "Open Source Development with CVS"
> by Karl Fogel (CoriolisOpen Press)

Or, more accurately, gonna have to *read* me a CVS book. :-)

> In this situation, svn seems to force the developer to make arbitrary
> decisions on very meaningless topics. A "branches" directory? You
> mean
> I can't have branches without a directory? The feature just goes
> away?
> That doesn't sound right to me.
>
> Devising a directory taxonomy for this purpose seems contrived. The
> capability to branch and tag are present all the time -- not just when
> you create a particular directory for the purpose. Features should
> not
> go away just because I failed to create a "magic directory". IMHO.

On the contrary, there's nothing magic about the branches or tags
directories. They're exactly like every other directory in the
repository; any meaning you may assign to the names is purely by
convention; it's not enforced or used by Subversion in any way.

It's not that someone said "Branches? Let's create a directory system
to solve that"; it's that a directory system existed, and it can be
used to solve the branching problem without any additional effort.

> (And what if I decide I need to tag something which I didn't plan on
> tagging when the project started? Am I just screwed?)

Oh no, people rearrange their repositories all the time as they learn
more or their needs change. It's as simple as svn mv-ing things
around and svn mkdir-ing new directories. All history is preserved.
If you don't make a tags directory now but want one later, you can
just make it.

>> If the five development efforts are distinct, then you'll want to be
>> able to branch and tag them separately, so your layout 1.
>> above seems
>> best.
>
> Understood, and certainly the solution I've been moving towards.
>
> Question: How does this effect the command line for checkout? For
> that
> matter, what is the purpose of the "project" in the follow example
> checkout command?:
>
> svn checkout file:///path/to/repos/trunk project
>
> Is that just the name of the directory into which the files in the
> selected repository path will be checked out?

"project" there is exactly the name of the local directory that will
be created to hold the working copy. If you omit "project" Subversion
will use the basename of the URL; "trunk" in your example.

The directory structure you choose for the repository merely affects
the URLs you'll use to check things out from it.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Mon Nov 7 22:08:42 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.