.\"
.\" aegis - project change supervisor
.\" Copyright (C) 2004 Peter Miller;
.\" All rights reserved.
.\"
.\" 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 of the License, 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 program; if not, write to the Free Software
.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
.\"
.\" MANIFEST: input for archive/features.html
.\"
.de an-p-footer
..
.ad l
.hy 0
.so version.so
.br
.br
.br
Aegis Features
Aegis \*(v) Features
.br
Here is a quick list of the key features of Aegis:
All operations on the repository are based on change sets.
True configurations. All changes are reproducable snapshots. Every
change set has a unique configuration identifier.
Ability to rename files without losing their history.
Binary files are supported.
File meta-data are versioned. Aegis versions not only file contents and
file existence, but also the `execute' permission flag on files and file
attributes. Users can attach arbitrary meta-data ("attributes") to any
file.
Commits are truly atomic. No part of a commit takes effect until the
entire commit has succeeded. Log messages are attached to the revision,
not stored redundantly as in CVS.
Access controls on lines of development (branches).
Creating a branch in Aegis can be accomplished with a single, fast command.
.\"
.\" End-to-end integrity controls. If a server has a bad file, or a
.\" replicating server actively attempts to replace the proper content,
.\" the end user can detect the error or substitution.
Optimal performance for all users, local or remote, beuase there isn't
any difference. Repository syncgronization means all developers, local
or remote, get optimal performance.
Disconnected commits. Have you ever screwed up a code base on an
airplane or a vacation and wished you could back out? Productivity
while traveling, at home, at remote offices with partial or slow network
connectivity.
Peer-to-peer architecture. Work may flow in any direction, including
"sideways" between two sites without involving a master site.
Costs are proportional to change size, not data size. In general, the
time required for an Aegis operation is proportional to the size of the
changes resulting from that operation, not to the absolute size
of the project in which the changes are taking place.
Aegis uses a collection of very simple on-disk formats for archives
and ancillary databases. It does not require or use a relational
database, hash-table database, or anything else that requires acolytes
and administrators. Consequently, creating a new project repository is
utterly trivial: a single Aegis command does it, basically by creating
some new directories.