The Hackerlab at `regexps.com`

## The arch Archive Format

up: arch prev: The arch Patch Set Format

An arch archive is a directory containing a number of files and subdirectories. Its structure is described in this appendix.

### Directory Structure

Each category, branch, version, and revision are given a separate directory. These are nested. From the root of the archive:

            CATEGORY/
              CATEGORY/BRANCH/
                CATEGORY/BRANCH/VERSION/
                  CATEGORY/BRANCH/VERSION/REVISION/

For example, version `1.0` of the `devo` branch of the `arch` category might have these directories:

            arch/
              arch/arch--devo/
                arch/arch--devo--1.0/
                  arch/arch--devo--1.0/base-0/  # the base revision
                  arch/arch--devo--1.0/patch-1/ # pre-patch revisions
                  arch/arch--devo--1.0/patch-2/ # ...
                  ...
                  arch/arch--devo--1.0/version-0/ # the version revision
                  arch/arch--devo--1.0/versionfix-1/ # post-patch revisions
                  arch/arch--devo--1.0/versionfix-2/ # ...
                  ...

### Within a Revision Directory

Every revision directory contains the log message for that revision as a plain-text file:

File: log

Format: RFC822-style headers plus body

If a revision directory is a full-source revision (typically a `base-0` revision) it will contain a compressed tar file of the entire revision tree. The name of the tar file is the full name (sans archive name) of the revision:

File: REVISION.tar.gz

Format: gzip-compressed tar file containing a complete source tree, rooted in a single top-level directory named REVISION.

Example: arch--devo--1.0--base-0.tar.gz

            contains a full-source tree rooted at
            `arch--devo--1.0--base-0'

If a revision directory is a patch (not a full-source revision), then the revision directory contains a compressed tar file of the patch set (see The arch Patch Set Format):

File: REVISION.patches.tar.gz

Format: gzip-compressed tar file containing a patch set, rooted in a single top-level directory named REVISION.

Example: arch--devo--1.0--patch-1.tar.gz

            contains a patch-set tree rooted at `arch--devo--1.0--patch-1'

Note: Every revision is either a full source revision or a patch revision. Thus, every revision directory contains exactly one of the two files:

            REVISION.tar.gz
            REVISION.patches.tar.gz

If a revision is a continuation revision (a tag of some other revision)

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