regexps.com
Large projects are often most naturally divided into a number of
independently maintained sub-projects. For example, arch
itself
consists of six separate projects:
./src
A generic top-level source file for combining
projects.
./src/arch
arch itself. That is, the `arch' 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 arch
source tree, each of those sub-directories is a separate
project tree (each has its own {arch}
subdirectory; each was
initialized by the command larch init-tree
; each is in a separate
category in the repository).
To put all the pieces together, use the arch
configuration
commands
:
(TO BE DOCUMENTED:)
Config file format, e.g.:
./configs/regexps.com/devo.arch:
#
# Check out an arch distribution from the devo branches.
# Latest revisions.
#
./src lord@regexps.com--2002/package-framework--devo
./src/arch lord@regexps.com--2002/arch--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
% larch build-config --help instantiate a multi-project tree usage: build-config [options] config-name
-V --version print version info -h --help display help
--silent no output (except odd errors) --quiet brief output --report default output --verbose maximal output --debug debugging output -d --dir DIR cd to DIR first
Build the named configuration based on the specification in the "configs" subdirectory at the root of the project tree.
and
% larch 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 (except odd errors) --quiet brief output --report default output --verbose maximal output --debug debugging output
-d --dir DIR cd to DIR first
--force pass the --force flag to update
Update the named configuration based on the specification in the "configs" subdirectory at the root of the project tree.
and
% larch replay-config --help
replay a multi-project tree
usage: replay-config [options] config-name
-V --version print version info
-h --help display help
--silent no output (except odd errors)
--quiet brief output
--report default output
--verbose maximal output
--debug debugging output
-d --dir DIR cd to DIR first
Update the named configuration based on the specification
in the "configs" subdirectory at the root of the project
tree.
and
% larch 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 (except odd errors)
--quiet brief output
--report default output
--verbose maximal output
--debug debugging output
-d --dir DIR cd to DIR first
-f --force overwrite an existing config
Update the named configuration based on the specification
in the "configs" subdirectory at the root of the project
tree.
and
% larch 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
--silent no output (except odd errors)
--quiet brief output
--report default output
--verbose maximal output
--debug debugging output
-d --dir DIR cd to DIR first
Print the revision frontier specified by the named configuration
in the "configs" subdirectory at the root of the project
tree.
arch: The arch Revision Control System
regexps.com