[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

Multi-Tree Projects

Large projects are often most naturally divided into a number of independently maintained sub-projects. For example, ArX itself consists of six separate projects:

 
        ./src
                A generic top-level source file for combining
                projects.
 
        ./src/arx
                ArX itself.  That is, the `arx' command and all of
                the shell scripts that implement it.
 
        ./src/file-utils
                Generic utilities for operating on files and
                directories.
 
        ./src/ftp-utils
                A scriptable FTP client.
 
        ./src/hackerlab
                The hackerlab C library.
 
        ./src/text-utils
                Generic utilities for operating on text files.

In an ArX source tree, each of those sub-directories is a separate project tree (each has its own {arch} subdirectory; each is in a separate category in the repository).

To put all the pieces together, use the ArX configuration commands:

(TO BE DOCUMENTED:)

Config file format, e.g.:

 
    ./configs/regexps.com/devo.ArX:
 
    # 
    # Check out an ArX distribution from the devo branches.  
    # Latest revisions.
    #
 
    ./src                   lord@regexps.com--2002/package-framework--devo
    ./src/ArX               lord@regexps.com--2002/ArX--devo
    ./src/file-utils        lord@regexps.com--2002/file-utils--devo
    ./src/ftp-utils         lord@regexps.com--2002/ftp-utils--devo
    ./src/hackerlab         lord@regexps.com--2002/hackerlab--devo
    ./src/shell-utils       lord@regexps.com--2002/shell-utils--devo
    ./src/text-utils        lord@regexps.com--2002/text-utils--devo

and

 
  % arx build-config --help
  instantiate a multi-project tree
  usage: build-config [options] config-name

   -V --version                  print version info
   -h --help                     display help

   -d --dir DIR                  cd to DIR first
   --config-dir CFG              get config from directory CFG
  
   --silent                      no output
   --quiet                       only output errors
   --default-output              default output
   --report                      slightly verbose output
   --verbose                     maximal output
   --debug                       debugging output
  
  Build the named configuration based on the specification
  in the "configs" subdirectory at the root of the project
  tree.

and

 
  % arx update-config --help 
  update a multi-project tree
  usage: update-config [options] config-name
    
   -V --version                  print version info
   -h --help                     display help
  
   --silent                      no output
   --quiet                       only output errors
   --default-output              default output
   --report                      slightly verbose output
   --verbose                     maximal output
   --debug                       debugging output
  
   -d --dir DIR                  cd to DIR first
   --config-dir CFG              get config from directory CFG
  
   --force                       pass the --force flag to update
  
  Update the named configuration based on the specification
  in the CFG directory (or "configs" subdirectory
  at the root of the project tree containing DIR).

and

 
  % arx replay-config --help
  replay a multi-project tree
  usage: replay-config [options] config-name
  
   -V --version                  print version info
   -h --help                     display help
  
   -d --dir DIR                  cd to DIR first
   --config-dir CFG              get config from directory CFG
  
   --silent                      no output
   --quiet                       only output errors
   --default-output              default output
   --report                      slightly verbose output
   --verbose                     maximal output
   --debug                       debugging output
  
  Update the named configuration based on the specification
  in the CFG directory (or the "configs" subdirectory
  at the root of the project tree in DIR).

and

 
  % arx record-config --help
  record a revision-specific configuration
  usage: record-config [options] config-name new-config-name
  
   -V --version                  print version info
   -h --help                     display help
  
   --silent                      no output
   --quiet                       only output errors
   --default-output              default output
   --report                      slightly verbose output
   --verbose                     maximal output
   --debug                       debugging output
  
   -d --dir DIR                  cd to DIR first
   --config-dir CFG              get config from directory CFG
  
   -f --force                    overwrite an existing config
  
  Record a new configuration based on the old one.

and

 
  % arx show-config --help
  show the revision frontier of a configuration
  usage: show-config [options] config-name
  
   -V --version                  print version info
   -h --help                     display help
  
   -d --dir DIR                  cd to DIR first
   --config-dir CFG              get config from directory CFG
  
  Print the revision frontier specified by the named configuration
  in the CFG directory (or "configs" subdirectory
  at the root of the project tree containing DIR).


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Walter Landry on April, 30 2003 using texi2html