[Top][All Lists]

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

Re: Module sharing and Tag usage

From: Dennis Jones
Subject: Re: Module sharing and Tag usage
Date: Mon, 18 Jun 2007 19:44:37 GMT

"Tietronix Optics" <address@hidden> wrote in message 
> Hi,
> I've been using WinCVS for quite a long time now, and it works very
> well to track SW activity.

Hi Cedric,

Personally, I strongly prefer TortoiseCVS over WinCVS (yuck).  But I 
digress...the actual CVS client you use is (almost totally) unrelated to 
your question.

> 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.

- Dennis 

reply via email to

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