On 9/16/10 10:45 PM, John Owen wrote:
> Background:
> We have been developing an embedded code base for a hardware platform using SVN as the code repository. We now have customers A, B, C and D each with unique software requirements. The embedded code base that we developed for our platform hardware will be the starting code base for each customer but the software requirements for each customer are different and will not be incorporated back into the embedded code base. Hopefully we will have customers E, F, etc. that will also be started from our embedded code base.
>
> Questions:
> 1) Should we create branches off the embedded code base, one for customer A and one for customer B, etc., or should we create separate projects for each customer?
> 2) Should we create separate repositories for each project?
>
> I have read several articles and posts on branching but all seemed to address branching of the same project, not using branching to start new projects from a common code base. Please answer the above questions and advise additional FAQs or "best practices" information on this topic.
In the long run what you'll want to end up with is a common library where
improvements that affect future versions of all projects can be done in one
place, and you can pull this into every project with external references. Then
it won't matter how you handle the parts that don't have much in common.
However, since you may not know when starting out how much will be unique and
how much will be reusable, I'd start with everything in a single repository so
you can easily copy/move components and retain history. Note that branches are
just a special (name convention) case of copies - you can really copy anywhere
within a repository and get the same effect.
--
Les Mikesell
lesmikesell_at_gmail.com
Received on 2010-09-17 14:57:36 CEST