[Top][All Lists]

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

Starting a more complex repository - Branches

From: Fredrik Svensson
Subject: Starting a more complex repository - Branches
Date: Mon, 10 Dec 2001 18:07:24 +0100 (CET)

Hi all.

I have been a user of cvs for some time.
Mostly smaller projects, but now I am faced with the task of
setting up a more complex project. I have not used branching to this
extent before.

This project involve several problems that are new to me and any hint how
to attack this problem is welcomed.

The current situation

I have taken over an optimization project.

Firstly the project is depending on a third party.
The third party only gives me requested source files + a binary library.
Right now the structure of the project is in directories


just because a file is present in v2k does not guarantee that the file is
present in v2001.
Also filename has changed a bit. so a file XXX in 2000 can be named YYY in

Up to now optimizations have been made in copies of original files named
subroutine_10.c in directory subroutine.
If other optimizations have been made they are named _11 or _20 depending
on how big change.

An optimization can also be a combined optimization.
If the optimization 11 was successful that may be present in 20 as well.
But 20 must also be possible to test without 11.
This has in the past resulted in 3 files for 2 optimizations etc.

Only the source file with optimization is wanted in the build since the
library is favored before possibly old source code of other subroutines.

Anyone of the optimizations can be discarded by the third party.

My plan

Is to start adding 1998 originals to a Vendorbranch.. then add all the
different version to that Vendor branch, removing files when needed..

I am not sure what path is best for this kind of highly branched project.

I think starting all optimization branches from the latest Vendor branch
is a way. Branching only the file that is being optimized (if that is
possible) Later merging different branches on demand.
If Branch1 & Branch2 were good. How well are they working together..

Or maybe I have misunderstood vendorbranches...

Nothing realy has to be kept in a maintrunk exept maybe the best
combinations of optimization branches. (this could backfire if an
optimization is rejected, or ?)

When a new vendor release is made most optimisations are discarded or
included so just a few "border cases" will have to be "moved" to the new

I have read the Fogel book and he gives a couple example of how to handle
branching, but not realy this kind of wild branching.

Maybe the problem is not as big as it seems but I want to get it right
from the begining.  Any tips to set up this environment and keep it easy
to handle is welcomed (how to be consistent in tagging etc.. )

Thank you


reply via email to

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