Tuesday, February 03, 2009

Source Control Directory Structure

Here is a directory structure that I use for all of my projects. I figured, if nothing else, it would be a great discussion point.

    Directory Structure

    The directory
    structure for a project should be set up in the suggested manner:


    Definitions:

    1. Releaseable Project - A project that has its own
      release schedule. All folders
      underneath the project/trunk folder should be on the same release
      schedule. If an item is on a different
      release schedule it should be analyzed for a possible move to its own
      project folder.

    This accomplishes
    several tasks:

    1. When the Trunk is branched not only is the source
      branched, but all items related to the creation of the application will
      be branched as well.
    2. Directory clutter that often
      results when there are several groups trying to use the same space will
      be reduced
      1. Build files will be placed in the build directory
      2. Custom or external tools
        will be placed in the tools directory
      3. Documentation can have its
        own space
    1. The extra directories (Database, Tools, Documentation,
      etc…) are optional and only needed if the project requires them. Build and Src should be required
      directories.





    Build Directory

    The build directory
    is used by the build manager to keep the source directory from being
    cluttered. This will allow build
    managers their own 'space'.






    Src Directory

    The Source
    directory (src) contains all items related to the applications source
    code. This is relatively loosely
    defined as it can contain custom tool code that may not be shipped with the
    application, documentation, etc… This
    decision is to be made by the development team.





No comments: