[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- CVS directory structure,
David CM Weber <=