The Hackerlab at regexps.com

Archives

up: arch
next: Development Paths
prev: The arch Global Name-space of Projects

This chapter discusses archives -- places where revisions can stored and shared. Archives are used to keep a detailed history of how a project evolves. They are used to help a team of developers stay "in sync" -- in agreement about what the official, latest revision of a project really is. Archives are used to help coordinate divergent development paths (branches) and to merge changes between branches.

Archive Names Revisited

Every archive has a name which should be globally unique. These names were previously introduced in the context of project names generally (see Archive Names.)

To briefly review, an archive name consists of an email address (with complete hostname), followed by "--", followed by an additional string of numbers, letters and dashes. Choose an email address which is exclusively yours (or your project's). That way, your archive name will be globally unique. Here is an example:

                joe.hacker@gnu.org--test-archive

Creating a New Archive

To create a new archive on a local file system, use the make-archive command:

        % larch make-archive NAME LOCATION

The NAME is the name for the archive. The LOCATION is a name for a directory that will be created to hold the archive. For example:

        % larch make-archive \
               joe.hacker@gnu.org--test-archive \
               ~/{test-archive}

Mapping Archive Names to Locations

arch maintains a mapping of archive names to archive locations separately for each user, in the directory ~/.arch-params .

You can see the list of archives for which you have a recorded location by using the archives command, as in this example:

        % larch archives
        joe.hacker@gnu.org--test-archive
                /home/joe/{test-archive}

The command register-archive is used to add, remove, or update the location of an archive:

        % larch register-archive ARCHIVE-NAME LOCATION

records a new archive location or changes an old one. The command:

        % larch register-archive -d ARCHIVE-NAME

removes the record of an archive location.

If you want to know the registered location of a particular archive, you can use:

        % larch whereis-archive ARCHIVE-NAME
        LOCATION

Remote Archives

If an archive directory is accessible via FTP , then arch can access that archive remotely, simply by specifying an FTP URI for the archive's location:

        % larch register-archive joe.hacker@gnu.org--test-archive \
                ftp://anonymous@ftp.gnu.org/users/joe/{test-archive}

The URI can include a password. When arch saves a location in your .arch-params directory, it is made unreadable to anyone but you -- weak security, but security nonetheless.

Your Default Archive

Using arch is generally simplified by setting a default archive -- the archive to use by default when no other is specified.

The command:

        % larch my-default-archive [options] [archive]

can be used to set or check your default archive. (This command was previously introduced. See Archive Names.)

In general, arch sub-commands accept the option -A to specify a non-default archive:

        % larch categories -A joe.hacker@gnu.org--test-archive

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