What is it all about?
Aegis is a transaction-based software configuration management system. It provides a framework within which a team of developers may work on many changes to a program independently, and Aegis coordinates integrating these changes back into the master source of the program, with as little disruption as possible.
* All operations on the repository are based on change sets. * True configurations. All changes are reproducible 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 change set, not stored redundantly in each file. * Access controls on lines of development (branches). Creating a branch in Aegis can be accomplished with a single, fast command. * Repository synchronization, geographically distributed development. * Optimal performance for all users, local or remote, because there isn't any difference. Repository synchronization means all developers, local or remote, get optimal performance. * Peer-to-peer architecture. Work may flow in any direction, including "sideways" between two sites without involving a master site. * 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.