[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: FW: Do people use the CVSROOT/modules file?
From: |
Paul Sander |
Subject: |
Re: FW: Do people use the CVSROOT/modules file? |
Date: |
Thu, 13 Feb 2003 12:00:36 -0800 |
The downside to the modules database is that it's not a first-class
citizen. It's not subject to the same handling as other versionable
objects in the repository (it's checked into an RCS file, but only the
head version is ever used). That means you can't change the definition
of a project over time and expect to reproduce any of its configurations
properly before the last change. (This is true even if you check out
or export by tag or datestamp!) It's also not subject to branching, so
you can't experiment.
The workaround, of course, is to perform ad-hoc versioning using
naming conventions within the modules database. And some shops have
been successful using this method. But it adds complexity to the
end users.
--- Forwarded mail from address@hidden
Thanks to Mark Cooper for the informative reply...
Tom
===========================
OK, say I have 3 projects in CVS, lets call them project-A, project-B
and
project-C.
I also have a number of 3rd party development tools, also stored in cvs.
Lets say that in order for project-C to be built, it also needs
project-B,
and that project-B in order to be built requires project-A. This isn't
an
unreasonable scenario, and one I have quite a few occurrences of.
Lets further assume that in order to build project-A it must use some of
those aforementioned 3rd party tools.
Lets then assume I have a new (to the project) developer, and I want to
give him some concise instructions to be able to get hold of project-C
and
work on it, then build it. I tell him "using cvs, check out
C-PROJECT-ALL"
- he does this, and by issuing the one command line instruction "cvs
checkout C-PROJECT-ALL" he obtains a complete set of applicable build
tools, the source files and/or distributables for project-A, the source
files and/or deliverables for project-B and the source for project-C.
How?
In the MODULES file I have entries like this:
BUILD-TOOLS -a build-tools/ant-1.5.1 build-tools/junit
build-tools/jndi-1.2.1 build-tools/j2sdk-1.2.1-NT
build-tools/java_xml_winter_01 build-tools/DB2Driver-v7.2FP7
build-tools/pmd-0.9 build-tools/xalan-j_2_4_0
LATEST-BUILD-TOOLS -a build-tools/thingummy-widget1.0-NT..............
A-PROJECT &BUILD-TOOLS &project-A
B-PROJECT &A-PROJECT &project-B
C-PROJECT -&B-PROJECT &project-C
C-PROJECT-ALL &LATEST-BUILD-TOOLS &C-PROJECT
With a little forethought and the use of alias (-a) and ampersand (&)
modules you can set things up so that an absolute minimum of cvs
commands
are used by your users to check out everything they need for a related
task, thus eliminating much user error in the process of obtaining a
suitable development environment.
Of course, nothing prevents anyone from doing things the hard way. If
you
haven't had occasion to delve into the modules file before and have been
using cvs for a while, chances are that you won't need it. It doesn't
hurt
to be aware of possibilities though does it?
Hope this helps.
Mark Cooper
Reuse Manager
Microlise Limited
http://www.microlise.co.uk
mailto:address@hidden
===========================
_______________________________________________
Info-cvs mailing list
address@hidden
http://mail.gnu.org/mailman/listinfo/info-cvs
--- End of forwarded message from address@hidden