I've used CVS for a while, but until recently I've had a blank modules
file.  Previously, I've set largeish projects up as large directory
trees all in one module.  This has sometimes caused developers to
complain about long build times because their code uses
../../lib/small and so they have to do "make" at top level in order to
build their own stuff, but this also builds ../../lib/large and that
takes a while.  (In this scenario everything also depends on
../../include/*.h).


So, in a completely separate project I've tried to prevent this
problem by assembling the complete system by gluing together modules.
Hence my modules file looks something like this:-

  ball-o-wax  module1 module2 dbstuff
  module2     module2 &logging &conversion
  module1     module1 &logging &conversion

Here, "logging" occurs as ball-o-wax/module1/logging and as
ball-o-wax/module2/logging and the code is built into both module1 and
module2.  This means that the team developing module1 can just check
out module1 and hack away, and that the team developing module2 can
just check out module2 and hack away.  When it's time to build the
lot, we can just check out ball-o-wax and build that.

I'm slightly uncomfortable with the multiple building of the "logging"
and "conversion" modules. 

Do you think I've done this in a non-optimal way?  Is there a better
way, other than hoisting the common parts up the tree and forcing all
the developers to check out ball-o-wax every time? 

Thanks for any thoughts. 

-- 
James Youngman
Manchester, UK.  +44 161 226 7339
PGP fingerprint <[EMAIL PROTECTED]> = 0C1CD7CA6633D2E914E05F16D52460E9

Reply via email to