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

Re: Managing branches

From: Brad Appleton <brad.appleton_at_gmail.com>
Date: 2006-01-03 08:26:04 CET

Karin van den Berg wrote:
> Hi everyone,
>
> I am a freelance programmer, and for one customer I have to manage a
> project that is being offered to several of his clients. Each version
> has slight differences but many things are the same, and so many changes
> need to be applied to all versions.
>
> I have worked out how to branch the project and also how to use 'svn
> merge' in order to apply changes from one branch to the others, however
> it is not working as smoothly as I would like, having to merge for
> example three other branches for each change seperately.
>
> I am looking for tips, documentation, or any other info to help me
> figure out how to manage these branches effectively. Any info is
> appreciated.

My first question/advice would be, are you sure that using separate
branches is the way to go in this case?

My experience has usually been that functional and platform variants
(e.g., slight variations in functional behavior, or in operating
environment) are usually best handled in the code-structure than in the
branching-structure.

1) There are design patterns such as Template-Method, Strategy,
Decorator, Builder, and others for encapsulating variation in behavior.

2) here is also the "Business Rules" approach

3) and there are other design patterns like Configurator or
Feature-Manager for treating fine-grained functonality (e.g. services)
its variants as deployment (installation and/or upgrade) settings in a
configuration database that the application consults and decides which
logic or which fine-grained behavior (or variant) is applicable at
various points in the code

4) for Platform/API variations, look at Doug Scmidt's "Wrapper Facade"
pattern.

The book "Domain Driven Design" by Eric Evans (see
www.domaindrivendesign.org) has several good sections and "patterns" for
this sort of thing.

-- 
Brad Appleton <brad@bradapp.net> www.bradapp.net
    Software CM Patterns (www.scmpatterns.com)
    Effective Teamwork, Practical Integration
"And miles to go before I sleep" --Robert Frost
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Tue Jan 3 08:28:08 2006

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.