The Hackerlab at `regexps.com`

## arch Commands in General

up: arch next: arch Project Trees

Every command in `arch` is accessed via the program `arch` , using an ordinary sub-command syntax:

            % larch <sub-command> <options> <parameters>

A list of all sub-commands can be obtained from:

            % larch --help-commands

The most complete documentation for each command is available via its help message. The help messages in `arch` are roughly comperable to traditional unix `man` pages. For example, try:

            % larch make-archive --help
            create a new archive directory
            usage: make-archive [options] (-u | name) directory

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

             -r --readme file              save FILE as the README
                                           for this archive

             -u --update                   update an existing archive

            NAME is the global name for the archive.  It must be an
            email address with a fully qualified domain name, optionally
            followed by "--" and a string of letters, digits, periods
            and dashes.

            Normally the archive directory must not already exist, but.
            there is an exception:

            If -u or --update is specified, then attempt to bring
            an existing archive up to date with respect to this
            version of arch and update meta-info, such as the README.
            file.

            If -u or --update is specified, the archive name must
            not be specified.

There is a great deal of regularity among commands regarding option names and parameter syntax. Hopefully, you'll pick this up as you learn the various commands.

### The arch Commands

Here is a synopsis of all `arch` commands: the output of `larch --help-commands` :

                           larch sub-commands
                           -----------------

    * User Commands

                           my-id : print or change your id
              my-default-archive : print or change your default archive

                register-archive : record the location of an archive
                 whereis-archive : print the registered location of an archive
                        archives : report registered archives and their locations

    * Project Tree Commands

                       init-tree : initialize a new project tree
                       tree-root : find and print the root of a project tree

                    tree-version : print the default version for a project tree
                set-tree-version : set the default version for a source tree

    * Project Tree Inventory Commands

                       inventory : inventory a source tree

                  tagging-method : print or change a project tree tagging method
                       tree-lint : audit a source tree
                    missing-tags : list files missing inventory tags
                        file-tag : print the tag of a project tree file

                             add : add an explicit inventory tag
                          delete : remove an explicit inventory tag
                            move : move an explicit inventory tag

                explicit-default : set the default explicit tag for a directory

                    set-manifest : set the inventory manifest from project tree
                        manifest : print the inventory manifest
                  check-manifest : compare the inventory manifest to reality

    * Patch Set Commands

                         mkpatch : compare two source trees and create a patch tree
                         dopatch : apply a patch tree to a source tree

                    patch-report : generate a report from a patch set

                     empty-patch : make a null patch set

    * Archive Commands

                    make-archive : create a new archive directory

                   make-category : create a new category within an archive
                     make-branch : create a new branch within an archive
                    make-version : create a new version within an archive

                      categories : list the categories in an archive
                        branches : list the branches in an archive category
                        versions : list the versions in an archive branch
                       revisions : list the revisions in an archive version

                 cat-archive-log : print the contents of an archive log entry

          archive-cache-revision : cache a full source tree in an archive
        archive-cached-revisions : list full source trees cached in an archive
        archive-uncache-revision : remove a cached revision from an archive

                 category-readme : print the =README of a category
                   branch-readme : print the =README of a branch
                  version-readme : print the =README of a version

    * Patch Log Commands

                        make-log : initialize a new log file entry

                            logs : list patch logs in a project tree
                         add-log : add a version patch log to a project tree

                          log-ls : print version patches in a project tree
                         cat-log : print the contents of a project tree log entry
                log-header-field : filter a header field from a log entry

                       changelog : generate a change log from a patch log
                   log-for-merge : generate a log entry bodyfor a merge

                    merge-points : report where two branches have been merged
                   new-on-branch : list tree patches new to a branch

    * Archive Transaction Commands

                          import : archive a from-scratch base revision
                          commit : archive a revision
                             get : construct a project tree for a revision

                       get-patch : retrieve a patch set from an archive

                     lock-branch : lock a branch
                   lock-revision : acquire the lock for the next revision

                     push-mirror : update a read-only repository mirror

    * Multi-project Configuration Commands

                    build-config : instantiate a multi-project tree
                   update-config : update a multi-project tree
                   replay-config : replay a multi-project tree

                   record-config : record a revision-specific configuration
                     show-config : show the revision frontier of a configuration

                  config-history : report the history of a configuration

    * Commands for Branching and Merging

                          update : merge local changes with the latest revision
                          replay : merge the latest revsion with local changes
                     delta-patch : compute and apply an arbitrary patch
                      star-merge : merge of mutually merged branches

                             tag : create a continuation revision (tag or branch)

                  prepare-branch : create a project tree for a new branch
                   finish-branch : commit project tree as a new branch

                            join : join a sibling branch

                   whats-missing : print patches missing from a project tree

    * Local Cache Commands

                    what-changed : compare project tree to cached pristine
                      file-diffs : compare file with cached pristine revision

                       pristines : list the pristine trees in a project tree
                   lock-pristine : lock a pristine revision locking

    * Revision Library Commands

             my-revision-library : print or set your revision library path

                    library-find : find a revision in a revision library
                     library-add : add a revision to a revision library
                  library-remove : remove a revision from a revision library

                library-archives : list the archives in the revision library
              library-categories : list categories in the revision library
                library-branches : list branches in the revision library
                library-versions : list versions in the revision library
               library-revisions : list revisions in the revision library

                     library-log : print a log message from the library
                    library-file : find a file in a revision library

    * Web Related Commands

                   patch-set-web : create or update a patch-set web
            update-distributions : build or update an FTP area

               distribution-name : revision name -> distribution name

    * Notification Commands

                          notify : trigger actions for changes to an archive
                     my-notifier : print or set your default notify directory

             mail-new-categories : send email notices about new categories
               mail-new-branches : send email notices about new branches
               mail-new-versions : send email notices about new versions
              mail-new-revisions : send email notices about new revisions

                  notify-library : add new revisions to the library

              push-new-revisions : send email notices about new revisions

                  sendmail-mailx : send email with sendmail ala POSIX mailx

    For help with a command, try: larch command --help

arch: The arch Revision Control System
The Hackerlab at `regexps.com`