[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Module sharing and Tag usage
Re: Module sharing and Tag usage
Mon, 18 Jun 2007 19:44:37 GMT
"Tietronix Optics" <address@hidden> wrote in message
> I've been using WinCVS for quite a long time now, and it works very
> well to track SW activity.
Personally, I strongly prefer TortoiseCVS over WinCVS (yuck). But I
digress...the actual CVS client you use is (almost totally) unrelated to
> Having developped several modules ( composed each one with
> submodules) , I need now to export some submodules into others
> projects in ordrer to use them
> Up to now, I use the following procedure, but without being
> satisfied :
> Module A :
> Use of submodules A1,A3,A5.
> Module B :
> Use of submodules B4
> At the end of the development, I Tag submodules A1,A3,A5,B4 with the
> tag "project1"
> Some months later, I want to rebuild the project.
> 1st : Solution :
> - Do a chekcout of module A with the tag project1
> - Do a chekcout of module B with the tag project1
> - remember how the submodules are sorted one against the other
> 2nd Solution :
> - do a checkout of ??? with the tag project1.
> How to proceed?
I feel your pain...I really do. I personally (just recently as a matter of
fact) encountered a situation in which I realized that I needed the ability
to build multiple "products" that each depend on different sets of
"modules," some of which are shared between products, some cases where the
required versions of third party libraries differed across products
(especially for different versions of a product, since newer products may
use newer libraries), and even some products that depend on other products.
Managing situations like mine (and yours) is not easy. Unfortunately, CVS
is only a revision control system -- it is *not* a configuration management
system. Therefore, the problem of managing various modules that make up a
given product is not within CVS's domain, and therefore cannot be solved by
CVS. Thus, while your 2nd solution is obviously better and easier, it is
simply is not possible with CVS alone. What you need is a tool (or product,
or set of scripts, etc.) that operates at a level somewhere above CVS but
uses CVS to help manage your products for you. Such a tool would be
responsible for checking out the appropriate versions of the required
modules in the necessary folder hierachies needed to build your product
(wow, that was a mouthful!).
I am not aware of any configuration management systems that let you specify
which revision control system you use (such as CVS or Subversion), but there
probably are some out there. [Aside: If anyone knows of any, I'd love to
hear about them.]
In my case, rather than purchase something, I decided to build a poor-man's
configuration management system with a few scripts (batch files) in Windows.
I'm actually still working on it, but basically it's just a small set of
scripts that help to automate the tasks of checking out source code from CVS
and arranging the folders in whatever hierarchy is necessary (which I call a
workspace) for a particular product. I have dependency files that define
what products and/or modules are required for a given product, and those
dependency files get parsed and processed by the scripts. It's not pretty,
and God knows working with batch files in Windows is just awful, but it was
a fairly simple way to get something working in a short time.
I'm also still interested in hearing about other's solutions to this problem
and about any products that would make solving this problem easier.