[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NEWBIE:Question about branching.

From: david
Subject: Re: NEWBIE:Question about branching.
Date: Thu, 6 Feb 2003 09:00:51 -0600 (CST)

> Hi,
> I am fairly new to CVS, I've been using it in a basic form for a few
> weeks now, that's about it.
> Here is my problem:
> I have software which is used for a number of different countries, they
> are very similar maybe a few different features and functions for each
> country.  For example: I will have software for UK, Europe and
> Australia.
> The European and Australian software will be based on the latest UK code
> with a few additions to some files.  
> ---CVSROOT---| UKSoft_1.0 |---| UKSoft_1.1 |---|
>                   |                           *
>                   |                             * (MERGE FROM UK)
>                 ---| AUSSoft_1.0 |---| AUSSoft_1.1 |---| 
>                 |
>                   |                              *(MERGED FROM LATEST
> UK)
>                   ---| EURSoft_1.0 |---| EURSofy_1.1 |---|
This is not the sort of thing CVS handles very well.  Every change from
the trunk will have to be merged to every branch, and that's easy to
overlook.  (You can automate it with a commitinfo or loginfo hook,
but it's awkward to handle conflicts that way, and you want to make
sure you don't slow normal commits down to a crawl.)  Branches in
CVS are useful for forking development paths off temporarily, such
as creating a release branch so you can continue to fix bugs on it
or a development branch so you can try building something new.

Another thing to consider is that CVS can run into performance problems
with permanent branching.  In order to the the latest European revision
in the above tree, it will start with the latest UK version and remove
all changes until it has the original UKSoft_1_1 (can't use periods in
a tag name), and then apply all changes until it gets to the latest
European revision.  At one time, my company was having significant 
problems with that (coupled with large things under version control
that simply didn't belong there, but I never managed to get anything
done about that).
So, while there are SCM systems that will do what you're talking about
(or at least there was one; I do know of Voodoo on the Macintosh),
CVS won't.  As already suggested, use conditional code or altered

In any case, it's good practice to try to consolidate the country
changes into a small number of places.  Otherwise, developers will
keep missing them.

Now building a CVS reference site at

reply via email to

[Prev in Thread] Current Thread [Next in Thread]