[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
One repository, multiple products?
From: |
Dennis Jones |
Subject: |
One repository, multiple products? |
Date: |
Fri, 19 Jan 2007 21:18:14 GMT |
Hello,
I am in a bit of a quandary. I use CVS to manage repositories for multiple
clients on a single server. Each client has his own repository on the
server, so I don't have any issues between my clients' repsitories.
Until now, each client has had only one product, with the main trunk and all
branches or his particular repository relating to 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).
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 that is shared
between products won't have to be duplicated across multiple repositories.
But (I think) I also want to be able to branch each product independently --
as ProductA might need a new release branch (and version) while ProductB
stays the course on the main trunk or whatever branch is current for it.
What I envision in the developer's sandbox is something like this:
/sandbox
/shared sources
/trunk
/branches ??
/product A
/trunk
/branch x
/product B
/trunk
/branch y
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 ??
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.
It gives me a headache just thinking about all of this. Are there some best
practices that can help with this sort of situation? Everything I have ever
found on branching practices focuses on the development of a single
product -- as if nobody ever has to worry about more than one product, which
is just plain naive.
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? Am I going to be forced into creating a
repository for each product? Perhaps that will be the best way to handle
this situation, but it seems like overkill and seems like it would wreak
havoc on the ability to have shared code and third-party libraries without
duplication on the repository server.
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. For instance, if I want to get the source to create a new
release, I might need Branch X of Product A, and Branch Y of Product B, and
I would have no choice but to execute two separate checkout operations. I
cannot define in any of the 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.
I would greatly appreciate any ideas, suggestions, or links that would help
me to make the right decisions as I contemplate this task.
Thank you,
- Dennis
- One repository, multiple products?,
Dennis Jones <=