Seyza

A Quick Intro to Core Arch 2.0 Commands

Core Commands

Arch 2.0 has only a few core commands.

These are:

init [directory]

Create a .revc subdir in directory (default is the current directory) and fill it with the default Arch 2.0 control files.

User's never need to edit these files directly!

Initializing the root directory of a source tree is the first step in importing it.

commit [-r name] [subtree ...]

Commit a revision using either name or the default name.

With subtree arguments, only changes in that part of the tree are committed.

get name

Retrieve the named revision.

name [new-value]

Each commit operation stores a new tree snapshot and assigns that snapshot a symbolic name.

The name command reports (or with an argument sets) the name that will be assigned to the next snapshot taken by commit for the tree containing the current directory.

manifest

Report the list of files at or below the current directory that are in revc's list of files to be considered by the commit command.

add file, del file, and rename from to

These commands modify the list of files reported by manifest.

Store a snapshot of the tree in your chosen archive, assigning it the default name.

ancestor ORIG MOD

Given the names of two tree snapshots, report the name of a third tree which is a good choice as an ANCESTOR tree for use during three way merges.

ancestry name

Report the history of ancestors and merges that have occured to the named tree.

prereqs names

Report or set the commit prereqs of a tree.

General Properties

Your archive (the collection of tree snapshots) is stored in a reasonably space-efficient way as an ordinary tree of files.

Snapshots are cryptographically verifiable and have handy human-readable fingerprint strings suitable for cyrpotgraphic signing.

You can safely mirror your archive using programs such as rsync.

Individual snapshots each occupy a separate subdirectory in your archive -- it safe to copy or move these between archives.

Access to individual files from history is very fast.

It is safe to delete revisions from your archive.

It is safe to use the same symbolic name for a revision twice.

Many convenience commands or operations are needed -- the core commands are "core" because they keep the model simple but I don't claim they are the last word in UI design.

Many details are omitted from the descriptions above -- for example, how to use get to get just a single file or a partial tree; how to use commit to commit changes in just part of a tree.

Because this is an early release, not all of the functionality of the core commands is present -- just enough to begin attempts at self-hosting.

Copyright

Copyright (C) 2005 Tom Lord (lord@emf.net)

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this software; see the file COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.