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
finish Emacs.
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
line.
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 aegis-vars.el
.
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
like 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 aegis-mode-default-hat
variable.
Last change: 05.03.2013 16:54