Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Dec 2001 14:18:59 -0500
From:      Dan Moschuk <dan@freebsd.org>
To:        chat@freebsd.org
Subject:   CVS organization ideas?
Message-ID:  <20011213141859.A1665@spirit.jaded.net>

next in thread | raw e-mail | index | archive | help

Greetings all,

I have been putting off reorganizing the CVS tree here at the dayjob because 
I cannot seem to decide on a decent way to do it.  I'm hoping that people 
here will have some ideas.

Currently, there are "projects" and "programs".  A program is an individual
module that does a certain task.  Projects are a collection of programs,
scripts and documentation.  The build process for this is a royal PITA,
as it involves checking out all the programs you need and building them
separately.  No tags or branches are being used at all here.

The way I'm leaning towards is to make the project directory contain only
documentation, scripts, and a Big Global Project Makefile.  In CVS, I will use 
the modules file to include (using the '&' character) all the programs that 
this project uses.  The Big Global Project Makefile will then build everything.

This should work fine, however there are a couple of caveats that toss a
monkey wrench into the works.  I would like to tag and branch at the project
level, and some programs are shared between multiple projects.  These shared
(or standalone) programs have their own build process as well, and I'd like
to keep it that independent of the Big Global Project Makefile.  I'd also like
standalone/shared modules to have their own tags and branches, so as not to
have projects tag/branches pollute that.

The other way is to make the root directories in the tree only 
standalone/shared programs and projects.  Project specific programs will go
under that project's directory instead of the root.  The CVSROOT/modules
file will still include the shared stuff upon checkout as to be included
in the build process.  The kicker is I'm not sure on the best way of making
sure that different versions of projects get the right versions of shared
programs without tagging the module with the same tag as the project gets.

Bleh, does anyone have any ideas on this whole mess?  Or even a better way
to organize it? :)

Cheers,
-Dan

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-chat" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011213141859.A1665>