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