I have casually used source code control systems in traditional unixy ways. I am very much a beginner as an CVS administrator.

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.

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
Tmp, objects and project all can be ignored by CVS. What is the best way to ignore these?

Project/src contains most everything. In my current project it has:

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
Should Project/Src/Src be a separate directory or should it's contents be moved up into Project/Src?

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.


In reply to CVS Directory Structure by rir

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.