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

bug fixing across many branches

From: Phil Kingston <phil_at_impactapplications.com>
Date: 2005-10-20 13:36:49 CEST

I've been using Subversion happily here at work for a while now to manage
all our projects, with many users working on many projects. One of our
projects has several versions (different requirements for different clients)
which we manage with branches. We are about to start working on a new
version for this project and are potentially going to run into lots of
branch nightmares.

This is how we manage the project:

The initial system was imported into svn (the numbers vaguely represent the
revision sequence):

        trunk --[1]--> trunk

The different versions of the project (for the different clients) are
branched off and committed.

        trunk -[1]-+-----> trunk
                   +-[2]-> branch1
                   +-[2]-> branch2

Obviously now all the custom changes to each branch may be applied. These
changes will always remain specific to the branch it's in, as normal.
If a change [most likely a bug fix] is made to the trunk that is needed to
be applied to all branches then the work is done in the main trunk...

        trunk -[1]-+-----[3]-> trunk
                   +-[2]-----> branch1
                   +-[2]-----> branch2

...and then merged with all the other branches.

        trunk -[1]-+-----[3]-> trunk
                   +-[2]-----[4]-> branch1
                   +-[2]-----[4]-> branch2

Finally... here's my question!

I desperately need a method of being able to apply a change to the trunk and
ALL branches, without having go through the merge sequence every time.

        trunk -[1]-[3]-+-----> trunk
                       +-[2]-> branch1
                       +-[2]-> branch2

I am fully aware that it is not possible to insert a revision before older
revisions, so the diagram above is not literally possible, it seems silly
that there would not be a way of applying a change to the trunk and have
that transparently change all the branches that came off the trunk.

Am I missing something?
Should I be using svn differently?
Do I just have to put up with the fact that I'm going to have to merge a bug
fix 10s of times each time?
It has been suggested that we change the architecture of our software so
that we only have one trunk with all the different client's requirements as
options, but that would take a lot longer to implement than finding out if
svn does what I want it to first! ;)

I have also experimented with svn:externals but they don't give the sort of
functionality i'm talking about here.

(Not that it makes any difference to my question, but all our projects are
web sites...)

Thanks folks

Phil Kingston

To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Thu Oct 20 13:42:07 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.