Aegis — system for configurations management, developed by Peter Miller. This system has many very interesting features and used by many projects. One of the interest feature of this system is, that users could have different roles — developer, integrator, administrator, etc. and corresponding access levels. Also Aegis supports atomic commits and change sets. Another interesting feature, very useful for software developers — ability to automatic rebuilding of software and execution of tests after commit, and rejecting of commit if rebuild and/or tests fail. More detailed information on Aegis you can find at Aegis's site.
Integration of Aegis and Emacs is performed by aegis-mode package. There is one major difference between Aegis and other systems — there is no VC module for it, as Aegis has to many ideological differences with RCS, those ideology is a basis for for VC package. The aegis-mode package reflects ideology of Aegis, so you need to read documentation for it to use this package.
You can download aegis-mode from author's site. Just put file to place, where it could be found by Emacs, and add following line to initialization file:
(autoload 'aegis-mode "aegis-mode" "Mode for using aegis" t)
And you can execute
M-x aegis-mode function at any time, and it loads package. But I need
to mention, that if you enable aegis-mode, then you will not able to disable it, until you
In Aegis users could play different roles, and aegis-mode also supports this concept.
User can change its role by using command from
Aegis menu, or by executing command
aegis-become-... (and add corresponding role instead of
...). Currently aegis-mode
supports four roles: administrator, developer, code integrator and reviewer.
After package is loaded, all functions are available either via
M-x key binding and
specification of functions name, or via
Aegis menu. List of commands in menu depends on
the current user's role .
All functions, has special prefix
aegis-, after which you could specify name of needed
command of Aegis. So work with package doesn't differ from work with Aegis in command
User can customize behaviour of aegis-mode by setting big number of variables and hooks,
defined in file
aegis-vars.el. I'll mention only most important variables, and
descriptions of other you can find in file
For each of command of Aegis user can specify command line options, that will passed when
corresponding commands will executed. These options are stored in variables with names
aegis-mode-COMMAND-flags. So, if you need to pass additional options to some
command, you can set them in corresponding variable.
To execute commands when user switch to other role, package provides some number of hooks,
that named like
aegis-mode-become-ROLE_NAME-hook. By defining these hooks, user can add
code, that will executed when user will switch to given role. Role, that will set after
loading of package is specified by
Last change: 05.03.2013 16:54