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.