info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CVS directory structure


From: David CM Weber
Subject: CVS directory structure
Date: Thu, 3 May 2001 15:01:39 -0400

I'm working on a design document on our Version Control System (VCS) in
house.  I'm personally reccomending CVS (for various reasons), but alas,
the decision is not mine.

What is really the most important (IMHO) is the directory structure of
the VCS tree.  It needs to be intelligent, flexible, and well designed
because it potentially could be in use for the next 50 years.  This is
what I've come up with:

VCSROOT\Products\<Product Name>\

VCSROOT would be CVSROOT for CVS

Products is for software products.  There'd be a documents directory and
other things, but this just allows an abstraction of the source code
stored

<Product Name> is a "Module", where a module is defined as a directory
structure with one or more of the following directories:


------------------------------------------------------------------------
Zero or more sub-module directory(s) (derived from module)
        Allows for the logical splitting of a module into logical pieces
        Each follows this formatting (yes, I know it's a recursive
definition) 

Inc
        Header files allowing other modules use of this modules
components

Bin
        Binary files created by this module
        Executables should be placed here after compilation

Src
        Source files for software products developed in-house

Lib
        Library files (lib's, dll's, and other libraries placed here)
created by this modules

Common (Derived from module)
        Files common to sub-modules should be placed here
        Allows for the update of these files, without copying them to
potentially dozens of sub-modules

External (Derived from module)
        Files not produced internally should be placed here
        I.e.: Source bought or grabbed as examples (Code Guru), should
be placed here. Similar reasoning to "Common"
        It's not ours, and we really shouldn't muck w/ it
        If we do modify it enough to make it "ours" it should be placed
into Src

Doc
        Documents produced for this module
------------------------------------------------------------------------



So, and example executable Foo (which uses the "Bar" and "Kung" static
libraries)

path:
VCSROOT/Products/Foo/

Sub Dirs:
        Bar - Static Library
        Kung - Static Library
        Common - Files common for the sub-modules
        Src - Source for the "Foo" executable
        Bin - Contains the final build of "Foo" executable




Something is nagging in the back of my head that I'm not doing something
correct, or I'm forgetting soemthing.  Could you guys poke holes/ ask
questions to help me develop this further?


Thanks


Dave Weber



reply via email to

[Prev in Thread] Current Thread [Next in Thread]