The Hackerlab at `regexps.com`

## Development Paths

up: arch next: Basic Revision Control prev: Archives

An `arch` archive is organized around development paths . Each development path is a succession of revisions, each (usually) differing from the previous revision by a simple patch.

Every development path has a project name with version number, such as:

            hello--devo--1.0

Project names were previously discussed (see The arch Global Name-space of Projects).

As we'll see in the next chapter, each development path is further subdivided into specific revisions, each having a patch level name , as in these examples:

            hello--devo--1.0--patch-3
            hello--devo--1.0--patch-4
            hello--devo--1.0--patch-5

### Creating a Development Path

Supposing that you have set your default archive, you can create a new development path in three steps:

            % larch make-category CATEGORY-NAME

            % larch make-branch BRANCH-NAME

            % larch make-version VERSION-NAME

as in this example that creates the version `hello--devo--1.0` :

            % larch make-category hello
            % larch make-branch hello--devo
            % larch make-version hello--devo--1.0

and this example that creates `hello--1.0` :

            % larch make-category hello
            % larch make-branch hello
            % larch make-version hello--1.0

Note that in the second example, the branch label is empty.

### Examining an Archive

You can review what's in an archive using the commands:

            % larch categories
                    - print a list of categories

            % larch branches CATEGORY-NAME
                    - print a list of branches within a category

            % larch versions BRANCH-NAME
                    -print a list of versions within a branch

### Fully Qualified Version Names

Every version is associated with a particular archive. Ordinarilly, if you write a simple version name, your default archive is presumed. However, wherever a version name is called for, you can use a fully qualified version name of the form:

            ARCHIVE-NAME/VERSION-NAME

as in the example:

            joe.hacker@gnu.org--test-archive/hello--devo--1.0

That can be useful when operating on a remote archive that is not your default archive. For example, you could use the name in the example to retrieve the latest revision from Joe Hacker's archive, in preparation for creating a branch of that version in your local archive.

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