@need 3200

@node The arch Archive Format
@appendix The arch Archive Format

@geindex archive format



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

@need 3200

@section Directory Structure

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

@example
@group
        CATEGORY/
          CATEGORY/BRANCH/
            CATEGORY/BRANCH/VERSION/
              CATEGORY/BRANCH/VERSION/REVISION/
@end group
@group
@end group
@end example

For example, version @code{1.0} of the @code{devo} branch of the @code{arch} category
might have these directories:

@example
@group
        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
@end group
@group
              arch/arch--devo--1.0/patch-2/ # ...
@end group
@group
              ...
              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/ # ...
              ...
@end group
@group
@end group
@end example



@need 3200

@section Within a Revision Directory

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


@strong{File:}
        log


@strong{Format:}
        RFC822-style headers plus body


If a revision directory is a full-source revision (typically a
@code{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:


@strong{File:}
        REVISION.tar.gz


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


@strong{Example:}
        arch--devo--1.0--base-0.tar.gz

@example
@group
        contains a full-source tree rooted at
        `arch--devo--1.0--base-0'
@end group
@group
@end group
@end example

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 @ref{The arch Patch Set Format}):


@strong{File:}
        REVISION.patches.tar.gz


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


@strong{Example:}
        arch--devo--1.0--patch-1.tar.gz

@example
@group
        contains a patch-set tree rooted at `arch--devo--1.0--patch-1'
@end group
@group
@end group
@end example

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

@example
@group
        REVISION.tar.gz
        REVISION.patches.tar.gz
@end group
@group
@end group
@end example

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







