info-cvs
[Top][All Lists]
Advanced

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

Re: One repository, multiple products?


From: Robert Clark
Subject: Re: One repository, multiple products?
Date: Fri, 19 Jan 2007 17:01:02 -0500
User-agent: KMail/1.9.5

Hi,

I can't answer all your questions, but I do have a couple of ideas to 
throw at you. 

On Friday January 19, 2007 16:18, "Dennis Jones" <address@hidden> 
wrote:
> that single product. However, I now have a case where one client
> wants to add more products to his the repository (he's finally
> getting his other products under revision control at my urging).

Here we have several repositories, each with a group of related 
projects / products in them.

> So my problem is, how do I manage this in CVS?  I'd like to keep a
> single repository for the client, with the idea being that any code

>
> What I envision in the developer's sandbox is something like this:

This is a bit tricky as it will depend on how the code is 
interrelated. (he said, dodging the question entirely)

> Obviously, this won't match the repository, which for the above
> hierarchy would probably look something like this:
>
> /repository
>     /trunk
>         /shared sources
>         /product A
>         /product B
>     /branch x
>         /product A
>         /shared sources ??
>     /branch y
>         /product B
>         /shared sources ??


Actually, for CVS, the repository might look something like:

/repository
    /shared sources
    /product A
    /product B
    /3rd party
        /library A
        /library B

with the branches and trunk being contained inside each file in the 
repository.      

> And then, of course, there's the issue of third-party libraries. 
> ProductA might use version 1.0 of LibraryA while ProductB uses
> version 2.0 of the same library.

Stick the shared libraries in the repository as well and branch / 
version them on their own.

> How do others usually handle the situation of managing multiple,
> independent products (that might have to share code or libraries)
> on a single repository?  Is it even possible?  

Completely possible.

> Am I going to be 
> forced into creating a repository for each product?  

Nope. From my point of view I don't think that would buy you anything 
over having everything in one repository.

> Another issue that comes out of this is how to checkout all of the
> code necessary to build all of the products in their various
> version configurations.  

There is no single, magic CVS command or configuration setting you can 
use that will cover this. What I do in situations like this is create 
a shell script/batch file/Ant file/makefile/whatever that I add to 
the root directory of the project. This script (which is version 
controlled along with the rest of the product) knows how to check out 
the correct version of the rest of the code as necessary.

> administrative files, that I know of, a way to say, "give me
> Release 2" which would checkout specified products and the
> appropriate branches for that release.

With they layout above, I generally tell people:

   - checkout whatever branch of Product A you want into an empty
     directory
   - run the update_sanbox script in the root directory of the
     project.

That update script is written so that it checks out all the correct 
branches or versions of the shared common and 3rd party libraries to 
the correct location in the developer's sandbox.

> I would greatly appreciate any ideas, suggestions, or links that
> would help me to make the right decisions as I contemplate this
> task.

<http://www.google.com/search?q=caribbean+vacation> is the only link 
that has helped me overcome these sorts of problems :-)

- Rob




reply via email to

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