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

Re: simple question on branching

From: KM <info4km_at_yahoo.com>
Date: Wed, 3 Nov 2010 09:42:02 -0700 (PDT)

Thanks. My sentiments exactly.   Never branch really - and... I probably will not branch for this either !!  

And yes... so far of course I have never changed a tag of the version released to the field and don't really plan to.  I'll make another if necessary.
Just trying to think ahead in case. 
--- On Wed, 11/3/10, David Weintraub <qazwart_at_gmail.com> wrote:

From: David Weintraub <qazwart_at_gmail.com>
Subject: Re: simple question on branching
To: "KM" <info4km_at_yahoo.com>
Cc: "svn-apache-users-list" <users_at_subversion.apache.org>
Date: Wednesday, November 3, 2010, 10:36 AM

On Wed, Nov 3, 2010 at 9:44 AM, KM <info4km_at_yahoo.com> wrote:
> We don't often use branching and/or merging based on the simple
> nature of our version releases with very little overlap.
> Any reason that creating a permanent branch on the tree would matter
>  -- i mean never merging it anywhere?   I don't see what harm it would
>  have really - but I just wanted to be sure in case I decide to branch
>  from the production  version of the trunk instead.

Anyone will tell you that branching and merging is hell, and if you
can avoid it, you avoid it.

The standard is to keep branching to a minimum and only do it when necessary.

There are really two main reasons to branch:

Reason #1: You are about to do a release, and want to avoid developers
twiddling their thumbs as you do a code freeze. Branching allows some
developers to clean up the code on the branch and release from the
branch while other developers continue working on the trunk.

Reason #2: You are working on a new revision when a bug was found on
an older revision, and you want to fix that bug before the new
revision comes out. Of course, if you branched for Release #1, you
already have the branch you need for that bug fix.

Open source projects rarely branch. If you find a bug, they simply
tell you to wait for the next release (which probably comes every few
months). If you really must have the fix now, you grab either the
trunk source code where the fix might already be implemented or the
release source code and fix the problem yourself.

Nor, do open source projects care about keeping developers occupied
while they try to prep the code for a release. After all, they don't
pay the developers, so they don't care if the developers have nothing
to do.

If you don't need to branch, then don't branch. I've worked on many
projects which almost never branched and others that loved diagramming
complex branching schemes. (Release 1.0.1 branched from the Release
1.0.X branch which branched from the Release 1.0 branch which branched
from the Release 1.X branch.). I will tell you that ones that never
branched had better development and fewer problems.

So, if you don't need to branch, you're fine. And, if you do need to
fix a bug on a release, you can always branch from the tag and fix the
bug on that branch. (Or, you can find the revision that created the
tag and simply branch off the trunk from that revision.)

What ever you do, don't change your tags. Tags are suppose to be
snapshots of what took place and should be absolutely stable. When the
sun explodes into a fiery ball and destroys all life on Earth, any
alien being who lands on the Earth's charred remains and finds your
source repository  should see the same set of files tagged as
REL-1.0.1 that you did the day you created that REL-1.0.1 tag.

David Weintraub
Received on 2010-11-03 17:42:46 CET

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.