rir has asked for the wisdom of the Perl Monks concerning the following question:
I have learned how projects can grow out of the offhand directory structures that I put them in.
One pearl of wisdom I have discovered: Mixing source files into your product directory does not scale up. Once you start having generated objects there is an artificial need to separate the two types of files.
I am planning the following directory tree for a project and would like to have the feedback of the knowledgeable monks. This basic structure seems applicable to many projects. My nomenclature is very tentative.
Tmp, objects and project all can be ignored by CVS. What is the best way to ignore these?project/ -- The CVS Module name Makefile misc/ -- snippets unused in project src/ -- all the source precious/ -- degenerate generated source objects edited/ -- source hand edited from precious tmp/ -- use unless $ENV{TMPDIR} objects/ -- intermediate objects project/ -- the finished product
Project/src contains most everything. In my current project it has:
Should Project/Src/Src be a separate directory or should it's contents be moved up into Project/Src?Bin -- in developers PATH and part of source Src -- source code Data -- demo data, test data, and testings expected state data Def -- meta-definitions and templates for code generation Doc -- User, design and programmer documentation Test -- Test programs
Precious and edited may not be necessary. They are a work around for the kludge of semi-generated source. In this case I am generating simplistic screen files from my data structures, these files need to be reworked by hand for final layout. The reworked files are placed in edited. Make will generate new versions of precious objects in a tmp directory. If there is any change, the edited version may need to be re-edited and the precious object replaced. Make will die with instructions on what needs doing.
For further reading see directory structure, directory change and mirroring and a CVS intro.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: CVS Directory Structure
by joe++ (Friar) on Feb 20, 2003 at 10:23 UTC | |
by rir (Vicar) on Feb 20, 2003 at 17:07 UTC | |
by joe++ (Friar) on Feb 20, 2003 at 18:42 UTC | |
by rir (Vicar) on Feb 20, 2003 at 22:52 UTC |