.













                              Aegis

                   A Project Change Supervisor




                        Reference Manual







                          Peter Miller

                    _m_i_l_l_e_r_p_@_c_a_n_b_._a_u_u_g_._o_r_g_._a_u


































.












This document describes Aegis version 4.16
and was prepared 2 May 2006.






This document describing the Aegis program, and the Aegis program
itself, are
Copyright (C) 1991, 1992, 1993, 1994,  1995,  1996,  1997,  1998,
1999,  2000,  2001, 2002, 2003, 2004 Peter Miller; All rights re-
served.

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 Foun-
Read Me(Aegis)                                                  Read Me(Aegis)



dation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.

NNAAMMEE
        aegis - project change supervisor
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

        _A_e_g_i_s is distributed under the terms of the GNU General Public
        License.  See the LICENSE section, below, for more details.

        aaeeggiiss (ee.j.iz) _n_._, a protection, a defense.

DDEESSCCRRIIPPTTIIOONN
        _A_e_g_i_s is a CASE tool with a difference.  In the spirit of the UNIX
        Operating System, _A_e_g_i_s is a small component designed to work with
        other programs.

        Many CASE systems attempt to provide everything, from bubble charts to
        source control to compilers.  Users are trapped with the components
        supplied by the CASE system, and if you don't like one of the
        components (it may be too limited, for instance), then that is just
        tough.

        In contrast, UNIX provides many components of a CASE system -
        compilers, editors, dependency maintenance tools (such as make),
        source control tools (such as RCS).  You may substitute the tool of
        your choice if you don't like the ones supplied with the system - gcc,
        jove, cake, to name just a few.  _A_e_g_i_s adds to this list with software
        configuration management, and true to UNIX philosophy, _A_e_g_i_s does not
        dictate the choice of any of the other tools (although it may stretch
        them to their limits).

        Enough hype, what is it that _A_e_g_i_s does?  Just what is software
        configuration management?  This question is sufficiently broad as to
        require a book in answer.  In essence, _A_e_g_i_s is a project change
        supervisor.  It provides a framework within which a team of developers
        may work on many changes to a program independently, and _A_e_g_i_s
        coordinates integrating these changes back into the master source of
        the program, with as little disruption as possible.  Resolution of
        contention for source files, a major headache for any project with
        more than one developer, is one of _A_e_g_i_s_' major functions.

        It should be noted that _A_e_g_i_s is a developer's tool, in the same sense
        as make or RCS are developer's tools.  It is not a manager's tool - it
        does not provide progress tracking or manage work allocation.

BBEENNEEFFIITTSS
        So why should you use _A_e_g_i_s?

        _A_e_g_i_s uses a particular model of the development of software projects.
        This model has a master source (or baseline) of a project, and a team
        of developers creating changes to be made to this baseline.  When a
        change is complete, it is integrated with the baseline, to become the
        new baseline.  Each change must be atomic and self-contained, no
        change is allowed to cause the baseline to cease to work.  "Working"
        is defined as passing it's own tests.  The tests are considered part
        of the baseline.  _A_e_g_i_s provides support for the developer so that an
        entire copy of the baseline need not be taken to change a few files,
        only those files which are to be changed need to be copied.

        In order to ensure that changes are unable to cause the baseline to
        cease to work, _A_e_g_i_s mandates that changes be accompanied by at least
        one test, and that all such tests be known to complete successfully.
        These steadily accumulated tests form an ever increasing regression
        test suite for all later changes.  There is also a mandatory review
        stage for each change to the baseline.  While these requirements may
        be relaxed per-change or even per-project, doing so potentially
        compromises the "working" definition of the baseline.

        The win in using _A_e_g_i_s is that there are _O_(_n_) interactions between
        developers and the baseline.  Contrast this with a master source which
        is being edited directly by the developers - there are _O_(_n_!_)
        interactions between developers - this makes adding "just one more"
        developer a potential disaster.

        Another win is that the project baseline always works.  Always having
        a working baseline means that a version is always available for
        demonstrations, or those "pre-release snapshots" we are always forced
        to provide.

        The above advantages are all very well - for management types.  Why
        should Joe Average Programmer use _A_e_g_i_s?  Recall that RCS provides
        file locking, but only for one file at a time.  _A_e_g_i_s provides the
        file locking, atomically, for the set of files in the change.  Recall
        also that RCS locks the file the instant you start editing it.  This
        makes popular files a project bottleneck.  _A_e_g_i_s allows concurrent
        editing, and a resolution mechanism just before the change must be
        integrated, meaning fewer delays for J.A.Programmer.

        Aegis also has strong support for geographically distributed
        development.  It supports both push and pull models, and many
        distribution topologies.  Aegis' normal development process is used to
        validate received change sets before committing them.

AARRCCHHIIVVEE SSIITTEE
        The latest version of _A_e_g_i_s is available by HTTP from:

                URL:    http://www.canb.auug.org.au/~millerp/
                File:   aegis.html          # the Aegis page
                File:   aegis.4.16.README   # Description, from tar file
                File:   aegis.4.16.lsm      # Description, in LSM format
                File:   aegis.4.16.ae       # the complete source, aedist format
                File:   aegis.4.16.spec     # RedHat package specification
                File:   aegis.4.16.tar.gz   # the complete source

        This directory also contains a few other pieces of software written by
        me.  Some are referred to in the _A_e_g_i_s documentation.  Please have a
        look if you are interested.

   MMiirrrroorrss
        See http://www.canb.auug.org.au/~millerp/ for a list of mirror sites.

        Aegis is also carried by metalab.unc.edu in its Linux archives.  You
        will be able to find Aegis on any of its mirrors.

                URL:    ftp://metalab.unc.edu/pub/Linux/devel/vc/
                File:   aegis.4.16.README   # Description, from tar file
                File:   aegis.4.16.lsm      # Description, in LSM format
                File:   aegis.4.16.spec     # RedHat package specification
                File:   aegis.4.16.ae       # the complete source, aedist format
                File:   aegis.4.16.tar.gz   # the complete source
        This site is extensively mirrored around the world, so look for a copy
        near you (you will get much better response).

MMAAIILLIINNGG LLIISSTT
        A mailing list has been created so that users of _A_e_g_i_s may exchange
        ideas about how to use _A_e_g_i_s.  Discussion may include, but is not
        limited to: bugs, enhancements, and applications.  The list is not
        moderated.

        The address of the mailing list is
                aegis-users@auug.org.au
        Please DO NOT attempt to subscribe by sending email to this address.
        It is for content only.

   HHooww TToo SSuubbssccrriibbee
        To subscribe to this mailing list, visit the Aegis-users mailing list
        page (http://www.auug.org.au/mailman/listinfo/aegis-users) and go
        through the ssuubbssccrriibbee dialogue.

   AArrcchhiivvee
        The mailing list is archived at eGroups.  The URL is
        http://www.egroups.com/list/aegis-users/info.html

   NNoo FFiilleess BByy EEMMaaiill
        The software which handles this mailing list CANNOT send you a copy of
        _A_e_g_i_s.  Please use FTP or ftp-by-email, instead.

BBUUIILLDDIINNGG
        Instructions on how to build and test _A_e_g_i_s are to be found in the
        _B_U_I_L_D_I_N_G file included in this distribution.

SSOOMMEE HHIISSTTOORRYY
        The idea for _A_e_g_i_s did not come full-blown into my head in the shower,
        as some of my programs do, but rather from working in a software shop
        which used a simplistic form of something similar.  That system was
        held together by chewing-gum and string, it was written in a
        disgusting variant of Basic, and by golly the damn thing worked
        (mostly).  _A_e_g_i_s is nothing like it, owes none of its code to that
        system, and is far more versatile.  It turns out that the system used
        is nothing new, and is described in many SCM textbooks; it is the
        result of systematically resolving development issues for large-ish
        teams.

        Since that company decided to close down our section (the company was
        under attack by a hostile takeover bid) we all moved on simultaneously
        (all 60 of us), sometimes working together, and sometimes not, but
        always keeping in touch.  With suggestions and conversations with some
        of them early in 1990, the manual entries for _A_e_g_i_s took shape, and
        formed most of the design document for _A_e_g_i_s.

        Since getting the first glimmerings of a functional _A_e_g_i_s late in 1990
        it is increasingly obvious that I never want to be without it ever
        again.  All of my sources that I modify are instantly placed under
        _A_e_g_i_s, as is anything I distribute.  All code I write for myself, and
        all new code I write for my employer, goes under _A_e_g_i_s.  Why?  Because
        it has fewer bugs!

        Example: one of the sources I carry with me from job to job is "cook",
        my dependency maintenance tool.  Cook had existed for 3 years before
        _A_e_g_i_s appeared on the scene, and I used it daily.  When I placed cook
        under _A_e_g_i_s, I found 6 bugs!  Since then I have found a few more.  Not
        only are there now fewer bugs, but they never come back, because the
        regression test suite always grows.

   BBrraanncchhiinngg
        In 1997 the full branching support was released (it took nearly 18
        months to retro-fit.  The underlying data structures for projects and
        change sets need to be merged.  While I noticed back in 1990 that they
        were very similar, it wasn't until branch support design was well
        underways that they should have been the same  data structure from the
        beginning.

   GGeeooggrraapphhiiccaallllyy DDiissttrriibbuutteedd DDeevveellooppmmeenntt
        In 1999 a conversation on the aegis-users mailing list resulted in the
        creation of _a_e_d_i_s_t, a program which packages and unpackages Aegis
        changes so they can be sent by e-mail, or WWW or whatever.  With 20:20
        hindsight, this could have been done way back in 1991, because the
        basic idea builds on Aegis change process model.

WWiinnddoowwss NNTT
        Aegis depends on the underlying security provided by the operating
        system (rather than re-invent yet another security mechanism).
        However, in order to do this, Aegis uses the POSIX _s_e_t_e_u_i_d system
        call, which has no direct equivalent on Windows NT.  This makes
        porting difficult.  Single-user ports are possible (_e_._g_. using
        Cygwin), but are not usually what folks want.

        Compounding this is the fact that many sites want to develop their
        software for both Unix and Windows NT simultaneously.  This means that
        the security of the repository needs to be guaranteed to be handled in
        the same way by both operating systems, otherwise one can act as a
        ``back door'' into the repository.  Many sites do not have the same
        users and permissions (sourced from the same network register of
        users) on both Unix and Windows NT, making the mapping almost
        impossible even if the security models did actually correspond.

        Most sites using Aegis and Windows NT together do so by running Aegis
        on the Unix systems, but building and testing on the NT systems.  The
        work areas and repository are accessed via Samba or NFS.

LLIICCEENNSSEE
        _A_e_g_i_s 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.

        _A_e_g_i_s 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.

        It should be in the _L_I_C_E_N_S_E file included in this distribution.

AAUUTTHHOORR
        Peter Miller   E-Mail:   millerp@canb.auug.org.au
        /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
























































RREELLEEAASSEE NNOOTTEESS
        For excruciating detail, and also acknowledgments of those who
        generously sent me feedback, please see the _e_t_c_/_C_H_A_N_G_E_S_._*  files
        included in this distribution.

   UUppggrraaddiinngg
        In general, all the machines on your network need to be running the
        same release of Aegis.  While the database format is backwards
        compatible, it is rarely forwards compatible in the face of new
        capabilities.

   VVeerrssiioonn 44..1166 ((1144--JJaann--22000044))
        * There is a new _a_e_c_p _-_k_e_e_p option, causing _a_e_c_p(1) nnoott to overwrite
        file contents in the development directory.

        * The _a_e_d_i_s_t _-_r_e_c_e_i_v_e option now understands changing the type of a
        file.

        * It is now possible to specify a URL to the --ffiillee option on the
        command line of _a_e_d_i_s_t(1), _a_e_p_a_t_c_h(1) and _a_e_t_a_r(1).  The data will be
        downloaded and applied.

        * More work has been done towards making the code compilable by a C++
        compiler.

        * The project list (see _a_e_l(1), _a_e_g_e_t(1), etc) is now sorted in a
        slightly more natural way, as are the version statistics at the end of
        an _a_e_a_n_n_o_t_a_t_e(1) listing.

        * A bug has been fixed in _a_e_d_e91) for branches, where Aegis would
        complain about build source files (created by the _a_e_n_f _-_b_u_i_l_d command)
        being out-of-date.  This, of course, was difficult or impossible to
        fix, and unnecessary because the next build would fix them.

        * A bug has been fixed in the _a_e_c_p _-_i_n_d_e_p_e_n_d_e_n_t command, where it did
        not preserve the execute bit, nor honour the user's umask.

        * The missing _a_e_m_t and _a_e_m_t_u alias ve been added to the profile.

        * More detail has been added to _a_e_p_c_o_n_f(5) detailing how to create the
        project config file for the first time.

        * A bug has been fixed in _a_e_d_i_s_t(1) and _a_e_p_a_t_c_h(1) which would cause
        an assertion failure (or segfault) when you tried to _a_e_d_i_s_t _-_s_e_n_d
        _-_d_e_l_t_a _-_e_s files which did not exist at that delta.

        * A bug has been fixed in _a_e_d_i_s_t(1) and _a_e_p_a_t_c_h(1) which caused an
        assert failure (or segfault) when you tried to send a file which had
        been created and removed in a branch, and after the branch was
        integrated only a remove record exists in the parent branch.

        * The problem with test 134 failing has been fixed.

        * A bug has been fixed in _a_e_i_p_a_s_s91) which prevented changing a file's
        usage from being as straight-forward as it should have been.

        * The source RPM (and the _s_p_e_c file) now has Build Prequisites
        specified.

        * The --CChhaannggee option now accepts more than just a change number.  It
        now accepts many forms similar to those used by the _$_{_v_e_r_s_i_o_n_}
        substitution, allowing its output to be used directly as command line
        input; forms such as -c 1.2.C34 and --c=5.6.D78 are now understood to
        imply a --bbrraanncchh option as well as either --cchhaannggee or --cchhaannggee--ffrroomm--
        ddeellttaa, respectively.  In addition, you may prepend a project name, to
        imply the --pprroojjeecctt option as well; form such as -c aegis.4.15.C28 are
        understood.

        * The _a_e_m_e_a_s_u_r_e(1) program now also generates Halstead metrics.

        * A bug has been fixed in the symbolic link handling code.  In some
        cases it would report "multiple user permissions (bug)" and not
        complete correctly.

        * A bug has been fixed in the test of _a_e_d_i_s_t(1) for moved files.
        There was nothing wrong with _a_e_d_i_s_t(1), the test itself was broken.

   VVeerrssiioonn 44..1155 ((1177--NNoovv--22000033))
        * A bug has been fixed in ``ael cf''.  It used to fail an assertion
        when there were no files in the change.

        * A bug has been fixed which caused aeipass to segfault when adjusting
        file modification time stamps in some circumstances.

        * A bug has been fixed in the cross branch merging code.  It would
        sometime erroneously complain about files no longer being in the
        baseline.

        * A bug has been fixed which caused _a_e_d_i_s_t(1) and _a_e_a_n_n_o_t_a_t_e(1) to
        segfault.  It was caused by the roll forward history mechanism
        ignoring some branches in some cases.

        * A  bugs has been fixed in the _a_e_n_r_v _-_D_e_s_c_e_n_d___P_r_o_j_e_c_t___T_r_e_e option,
        which was free()ing a project twice, sometimes causing segfaults.

        * The _a_e_g_e_t CGI interface is now able to retrieve historical versions
        of files.

        * The _a_e_g_e_t CGI interface now has support for file metrics.

        * The _a_e_g_e_t CGI interface has been enhanced to provide more
        information about project files and change files: activity, conflicts,
        history.

        * The _a_e_i_p_a_s_s(1) command now sets the AEGIS_INTEGRATION_DIRECTORY
        environment variable before running the _i_n_t_e_g_r_a_t_e___p_a_s_s___n_o_t_i_f_y___c_o_m_m_a_n_d,
        so that you can add a symlink for compilers which insist on placing
        absolute paths into debugging information in object files.

        * The _a_e_g_e_t CGI interface has been enhanced to provide more
        information about project files and change files - activity,
        conflicts, history.

        * The _a_e_g_e_t CGI interface now reports more project information.

        * The _a_e_g_e_t CGI interface now has download links in many of its menus,
        allowing more and better downloads than the old _a_e_g_i_s_._c_g_i(1) script.

        * The way _a_e_n_f(1) and _a_e_n_t(1) work have been made more generous.  It
        is now possible to _a_e_r_m(1) a file and then _a_e_n_f(1) or _a_e_n_t(1) the same
        file in the same change.  This is useful for changing the type of a
        file.  Previously this has to be done as two consecutive changes.

        * The _a_e_c_p _-_i_n_d_e_p_e_n_d_e_n_t command has been enhanced to allow you to
        extract versions of built files (created with _a_e_n_f _-_b_u_i_l_d and
        maintained at _a_e_i_p_a_s_s(1) time).

        * Documentation has been added to _a_e_r(5) for the try/catch mechanism.

        * There was a disagreement between the _a_e_r_e_p_o_r_t(1), _a_e_a_n_n_o_t_a_t_e(1),
        _a_e_d_i_s_t(1), _a_e_f_i_n_d(1), _a_e_i_m_p_o_r_t(1), _a_e_l_s(1), _a_e_p_a_t_c_h(1), _a_e_r_e_c_t(1),
        _a_e_t_a_r(1) and _a_e_x_m_l(1) man pages and the commands themselves about the
        existence of the --vveerrssiioonn option.  The commands now behave as
        documented.

        * There is a new _P_r_o_j_e_c_t___B_r_a_n_c_h___D_a_t_e_s report, which may be used to see
        when branches of a project were begun and completed.

   VVeerrssiioonn 44..1122 ((2299--SSeepp--22000033))
        * A bug has been fixed in _a_e_d_i_s_t(1) where it handled moved files
        incorrectly.

        * There is a new experimental _a_e_g_e_t(1) program.  It is a potentially
        faster, potentially more capable replacement for the _a_e_g_i_s_._c_g_i(1)
        script.  At the moment it isn't, it's experimental.

        * A bug has been fixed in _a_e_d_i_s_t(1) where it would sometimes segfault
        when sending transparent files.

        * Command completion now works for the _a_e_m_t(1) and _a_e_m_t_u(1) commands.

        * A bug has been fixed where the symbolic link farm could point to the
        wrong place when change files are transparent.

        * Change file notification commands have been added for the _a_e_m_t(1)
        and _a_e_m_t_u(1) commands.  See _a_e_p_c_o_n_f(5) for more information.

        * A bug has been fixed in _a_e_f_i_n_d(1) command where it could report
        files which had been removed.

        * A bug has been fixed in the _a_e_c_p(1) command where it would scramble
        the _a_e_t _-_r_e_g exemption.

        * A bug has been fixed in the _a_e_d_e(1) command.  The problem manifested
        as an _a_e_t _-_r_e_g command which terminated early.

        * There is a new _a_e_x_m_l(1) command.  You can now obtain various pieces
        of the Aegis database as XML.  See _a_e_x_m_l(1) for more information.

        * The the _n_e_w___f_i_l_e___c_o_m_m_a_n_d, _c_o_p_y___f_i_l_e___c_o_m_m_a_n_d and _r_e_m_o_v_e___f_i_l_e___c_o_m_m_a_n_d
        fields of the project _c_o_n_f_i_g file are now defaulted correctly.

        * Theer is a new _$_c_h_a_n_g_e___f_i_l_e_s substitution.  See _a_e_s_u_b(5) for more
        information.

        * The project config file has a new _a_r_c_h_i_t_e_c_t_u_r_e___d_i_s_c_r_i_m_i_n_a_t_o_r___c_o_m_m_a_n_d
        field.  Now you can use an arbitrary command (rather than _u_n_a_m_e(2)
        information) to determine the architecture.  See _a_e_p_c_o_n_f(5) for more
        information.

        * The Russian message translation has been updated.

        * The German message translation has been updated.

        * The _a_e_l(1) command now has a new _i_n_c_o_m_p_l_e_t_e listing.  It lists
        changes between _a_w_a_i_t_i_n_g _r_e_v_i_e_w and _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d. inclusive.

        * The _a_e_l(1) command now accepts arguments for the listings.  The
        _d_e_f_a_u_l_t_-_c_h_a_n_g_e, _d_e_f_a_u_l_t_-_p_r_o_j_e_c_t, _o_u_t_s_t_a_n_d_i_n_g_-_c_h_a_n_g_e_s and _u_s_e_r_-_c_h_a_n_g_e_s
        lists now accept a user name argument.

        * The _a_e_m_t(1) command now understand the --UUNNCCHHaannggeedd option, so that
        files which are in the branch, but unchanged from the deeper branch,
        may be made transparent.

        * A bug has been fixed in the _w_e_c_p(1) command where the --OOvveerrWWrriittee
        option did not honor the presence/absence of the --RReeaaddOOnnllyy flag.

        * There is a new _a_e_e_d_i_t script.  See _a_e_e_d_i_t(1) for more information.

        * A bug has been fixed in the file history mechanism (as used by the
        _-_d_e_l_t_a options, _a_e_a_n_n_o_t_a_t_e(1), _a_e_d_i_s_t(1), _a_e_p_a_t_c_h(1), etc) which did
        not correctly understand transparent files.

        * The _a_e_c_l_e_a_n(1) command now touches all of the source sfiles.  It
        also accepts a --NNooTToouucchh option.

        * There is a new _$_c_h_a_n_g_e___f_i_l_e_s substitution.  See _a_e_s_u_b(5) for more
        information.

        * The _a_e_c_l_e_a_n command now touches the source files as well.  Use the
        now --nnoo--ttoouucchh ooppttiioonn iiff yyoouu ddoonn''tt wwaanntt tthhiiss..

        * There have been several improvements to the output of the _a_e_g_i_s_._c_g_i
        script and the web site.

        * For Aegis developers: all of the K&R insulation has been removed;
        you now need an ANSI C compiler to build Aegis.  Some preparation has
        also been done to get the source ready for a C++ compiler.

   VVeerrssiioonn 44..1111 ((2299--JJaann--22000033))
        * For Aegis developers: the developer build now uses _s_u_d_o(8) to
        simplify and automate the tricky bit.  The regular distribution build
        is unchanged.

        * A bug has been fixed where the '_a_e_t _-_r_e_g' command could not find any
        tests to run, cause by inconsistencies in the view path handling for
        project file searches.

        * A partial Romainian translation has been added.

        * A Spanish localization has been added.  It needs work by a human.

        * The French localization has been improved.

        * The _a_e_d_i_s_t(1) command now preserves the executable bit on files.

        * There is a new _-_d_e_s_c_e_n_d_-_p_r_o_j_e_c_t_-_t_r_e_e option for the _a_e_n_a(1),
        _a_e_r_a(1), _a_e_n_d(1), _a_e_r_d(1), _a_e_n_i(1), _a_e_r_i(1), _a_e_n_r_v(1), _a_e_r_r_v(1) and
        _a_e_p_a(1) commands, to apply the action to all descendant branches of
        the project.

        * A bug has been fixed in _t_k_a_e_r(1) which stopped it working on some
        systems.

        * The _a_e_i_n_t_e_g_r_a_t_q(1) command now copes better with changes leaving the
        _a_w_a_i_t_i_n_g _i_n_t_e_g_r_a_t_i_o_n state.

        * A bug has been fixed in the _a_e_i_m_p_o_r_t(1) command which misunderstood
        RCS branches.

        * A bug has been fixed where there _a_e_n_f(1) command would use the new
        _c_o_n_f_i_g file about to be created, which was almost always wrong.

        * There is a new _$_{_s_u_b_s_t_r_} substitution.  See _a_e_s_u_b(5) for more
        information.

        * The _a_e_c_l_o_n_e(1) command now understands transparent files.

        * The _a_e_c_p_u(1) command now restores test exemptions in some cases.

        * There is a new _a_e_m_e_a_s_u_r_e(1) command, which procudes simple file
        metrics for use with Aegis.

        * There is a new _p_r_o_j_e_c_t _a_n_c_e_s_t_o_r_s report.

        * Trunk version number no longer have a leading dot.

        * Command line completion now works for _z_s_h(1).

        * The _a_e_t_a_r(1) command now preserves the executable bit on files.

        * A bug has been fixed which caused _a_e_t_a_r(1) to hang.

        * The _a_e_r_e_p_o_r_t(1) and _a_e_s_u_b(1) commands now gave the same email
        address for users.

        * The _a_e_a_n_n_o_t_a_t_e(1) command now olny prints caption columns if their
        value changes.  This highlights the differences, and is less
        distracting.

   VVeerrssiioonn 44..1100 ((2244--DDeecc--22000022))
        * There is a new _a_e_m_t(1) command, used to make branch files
        "transparent".  This is like an _a_e_c_p_u(1) command for branches, but
        done through the agency of a change set.

        NNoottee:: The behaviour of the view path in the presence of transparent
        files is complete, however full support for _a_e_c_p _-_d_e_l_t_a and reports is
        not.  Support will be present in the next release.  File transparency
        information stored by this release will be able to be used by _a_e_c_p
        _-_d_e_l_t_a and reports in the next release.

        * There is a new _a_e_m_t_u(1) command, to undo the effects of the _a_e_m_t(1)
        command.

        * It is now possible to use the _a_e_c_l_o_n_e(1) command on changes in the
        _a_w_a_i_t_i_n_g _d_e_v_e_l_o_p_m_e_n_t state.

        * The problematics directory permissions check has been removed from
        the _a_e_i_n_t_e_g_r_a_t_q(1) command.

        * A bug has been fixed in _a_e_c_p(1) when retrieving deltas before files
        were removed.

        * There are new _$_{_s_p_l_i_t_} and _$_{_u_n_s_p_l_i_t_} substitutions for manipulating
        search paths (_e_t_c_).  See _a_e_s_u_b(5) for more information.

        * A bug has been fixed where test time stamps were not updated for
        batch tests which covered multiple architectures.

        * The _a_e_d_i_s_t(1) program now includes a change number, which will be
        used on receipt if possible.  Note that this produces .ae files which
        are not backwards compatible; the -nopatch option will suppress
        inclusion of the change number in the archive.

        * A German translation of Recursive Make Considered Harmful has been
        added, courtesy of CM Magazin.

        * A bug with _a_e_i_m_p_o_r_t(1) and removed files has been fixed.

        * A problem has been fixed with the transition case when a project
        changed from develop_end_action = goto_being_reviewed to
        goto_awaiting_review while having changes in the _b_e_i_n_g _r_e_v_i_e_w_e_d state.

        * A problem with long command lines has been fixed in the _a_e_d_i_s_t
        _-_r_e_c_e_i_v_e, _a_e_p_a_t_c_h _-_r_e_c_e_i_v_e and _a_e_t_a_r _-_r_e_c_e_i_v_e commands.

        * A problem with _a_e_i_m_p_o_r_t(1) and binary files has been fixed.

   VVeerrssiioonn 44..99 ((2233--OOcctt--22000022))
        * The _a_e_p_a_t_c_h(1) and _a_e_t_a_r(1) commands now accept -add-path-prefix and
        -remove-path-prefix _o_p_t_i_o_n_s_, _f_o_r _m_a_n_i_p_u_l_a_t_i_n_g _t_h_e _f_i_l_e_n_a_m_e_s _w_h_e_n
        _u_n_p_a_c_k_i_n_g _a_n _c_r_e_a_t_i_n_g _a _c_h_a_n_g_e _s_e_t_.  _T_h_e _a_e_p_a_t_c_h_(_1_) _d_o_c_u_m_e_n_t_a_t_i_o_n _h_a_s
        _b_e_e_n _s_i_g_n_i_f_i_c_a_n_t_l_y _i_m_p_r_o_v_e_d_.

        * There is a new _a_e_c_p _-_r_e_s_c_i_n_d option, which may be used to rescind
        (roll back) a completed change.  See _a_e_c_p(1) for more information.

        * The Debian _/_e_t_c_/_m_a_i_l_n_a_m_e file is now understood by the _$_{_u_s_e_r _e_m_a_i_l_}
        substitution.

        * There is a new _p_r_o_j_e_c_t___g_a_n_t_t report, which produces comma-separated-
        value (CSV) output, for extracting data to import into Ms. Project.
        Unfortunately, Mr. Project does not yet know how to import CSV files.

        * It is now possible to provide a comment to the _a_e_r_p_a_s_s(1) command,
        just as you always could to the _a_e_r_f_a_i_l(1) command.

        * The _a_e_t(1) program now has a -progress option, to tell you where it
        is up to.  See _a_e_t(1) for more information.

        * The Russian error messages have been updated.

        * The _a_e_i_m_p_o_r_t(1) program now understands the CVS Attic directory.

        * There are new _p_e_r_l, _P_L_u_r_a_l___F_o_r_m_s, _c_a_p_i_t_a_l_i_z_e, _d_o_w_n_c_a_s_e and _u_p_c_a_s_e
        substitutions.  See _a_e_r(5) for more information.

        * A work-around for the aeimport/delta bug has been added, for
        projects which were imported with the buggy aeimport.

        * Aegis developers will need to upgrade to GNU Autoconf 2.53 or later,
        as the GNU Autoconf files have been updated to work with that version.
        This does not affect normal users.

        * Many typos have been fixed in the documentation, and some
        improvements have been made.

        * Some build problems have been fixed.

        * Numerous improvements have been made to the web interface.

   VVeerrssiioonn 44..88 ((1199--AAuugg--22000022))
        * A bugs has been fixed in the _a_e_t_a_r _-_r_e_c_e_i_v_e command, where it
        incorrectly complained about shorty input files.

        * Numerous changes have been made to the web interface.  They now use
        cascading style sheets, have more navigation links, and inclde tarball
        downloads.

        * Several build issues have been resolved.

        * A bug has been fixed in the _a_e_i_m_p_o_r_t(1) command.  The symptom was
        that the _a_e_c_p _-_d_e_l_t_a command misbehaved.  The probelm was that the
        first delta needed a timestamp _p_r_i_o_r _t_o the first change set taken
        from the import sets.

        * A bug has been fixed in the _a_e_p_a_t_c_h _-_s_e_n_d command, where it would
        add Index lines for files with no differences.

        * A bug has been fixed in the protect_development_directory = true;
        handling, where it would cause a "multiple user permissions setting"
        error message.

   VVeerrssiioonn 44..77 ((66--AAuugg--22000022))
        * The _a_e_f_i_n_d(1) command now has -resolve as the default.  To get the
        previous behaviour, use the -NoResolve _o_p_t_i_o_n_.

        * In the _a_e_c_a _-_e and _a_e_p_a _-_e commands, it is now possible to quote
        strings with at-signs (@) instead of double quotes.  This type of
        string allows newlines within the string.  See _a_e_g_i_s(5) for more
        information.

        * For the benefit of Aegis developers, there is now HTML documentation
        genaretd by Doxygen (if you have Doxygen installed).  When developing
        an Aegis change, in your development directory, point your browser at
        doxygen-html/index.html.  The common/str.h file is an example of the
        style desired, should you wish to contribute to the effort to get all
        of the header files suitably annotated.  Also, the removal of the K&R
        C support has started, see the files in common/*.[ch] for examples.
        Also <varargs.h> is not longer used anywhere.

        * The _a_e_d_i_s_t(1) command has two new options, -patch and -nopatch,
        which may be used to control how and when _a_e_d_i_s_t uses patches.  See
        _a_e_p_a_t_c_h(1) for more information.

        * A bug has been fixed inthe _s_t_r_n_c_a_s_e_c_m_p function.  This only affected
        you if your system did not have a native version of this function.

        * The _a_e_c_a(1) command now accepts a -fix-architecture option.  This
        option may be used to correct the architecture list of a change
        automatically.

        * The _a_e_d_i_s_t _-_r_e_c_e_i_v_e command now runs the _a_e_c_a _-_f_i_x_a_r_c_h command when
        a change set arrives which modified the project _c_o_n_f_i_g file.  This
        should fix many of the "architecture not in project config file"
        problems when seeding new projects.

        * Some deficiencies on the ``How to Become a Developer'' instructions
        have been addressed.  The native Aegis build (but not the Makefile.in)
        now builds the "tags" and "TAGS" files so that it easier to navigate
        the sources.

        * There is a new _a_e_t_a_r(1) command.  It may be used to send and receive
        tarballs as Aegis change sets.  See _a_e_t_a_r(1) for more information.

        * Missing documentation on the _a_e_p_c_o_n_f(5) man page about the fine
        grained file change notification commands has been added.

        * Some changes have been made to the Aegis web interface, with more
        back links.  Also uses _h_t_m_l_2_d_i_f_f(1) if available.

        * It is now possible for reviewers to use the _a_e_t(1) command to run
        tests against the changes they are reviewing.

        * The command completion for the _a_e_t(1) command now works better; it
        now completes project test names as well as change test names.

        * The _a_e_p_a_t_c_h(1) and _a_e_d_i_s_t(1) commands now cope with a wider range of
        input vagueries, including some weird things done by MTAs and more
        content transfer encoding synonyms.

   VVeerrssiioonn 44..66 ((1111--JJuull--22000022))
        * The _a_e_i_p_a_s_s(1) command now sleeps, rather than issue the rather
        alarming ``warning: file modification times extend into the future''
        message.  There is a new project _c_o_n_f_i_g file field, _b_u_i_l_d___t_i_m_e___a_d_j_u_s_t,
        which controls this behaviour, but it is strongly recommended that you
        leave it on the default setting.

        * There is a new _$_{_b_a_s_e___r_e_l_a_t_i_v_e_} substitiontion, almost the inverse
        of _$_{_s_o_u_r_c_e_}.  See _a_e_s_u_b(5) for more information.

        * A bug has been fixed with the _a_e_c_a and _a_e_p_a _-_e_d_i_t option.  It was
        caused by the change in the previous release which added editor user
        preferences.

        * A few build problems have been fixed.

        * A bugs has been fixed in the _t_k_a_e_p_a script.  It would sometimes fail
        the "OK" button.

        * A bug has been fixed in the "user changes" list.  It was not
        explicitly passing the project name when it accessed the list of user
        owned changes.

   VVeerrssiioonn 44..55 ((2266--JJuunn--22000022))
        * It is now possible to set pager and editor preferences in your
        _._a_e_g_i_s_r_c file.  See _a_e_u_c_o_n_f(5) for more information.

        * A bug in _a_e_p_a_t_c_h _-_r_e_c_e_i_v_e has been fixed, where it would sometimes
        misapply a patch. The search used to determine the patch position
        (when it needs to be offset) has been improved.

        * The _a_e_d_i_s_t(1) and _a_e_p_a_t_c_h(1) commands now accept -delta and -delta-
        date options.

        * The _i_n_t_e_g_r_a_t_e___q_._s_h shell script has been replaced by the
        _a_e_i_n_t_e_g_r_a_t_q(1) Perl script.  It can now lots more useful things.  See
        _a_e_i_n_t_e_g_r_a_t_q(1) for more information.

        * A bug has been fixed in the date parsing code (used by the -delta-
        date option).  There was the potential to mis-calculate dates after
        February 2000.

        * A bug has been fixed in _a_e_p_a_t_c_h _-_r_e_c_e_i_v_e, where it sometimes
        complain of "no uudecode data in file", for files which did not
        require uudecoding.

        * There are more change-specific substitutions available.  See
        _$_{_c_h_a_n_g_e _._._._}  within _a_e_s_u_b(5) for more information.

        * The _a_e_p_a_t_c_h(1) command now understands ordinary diff listings, in
        addition to the context and unified differences it already understood.

        * There is a new _a_e_a_n_n_o_t_a_t_e(1) command, used to produce annotated
        source file listings.  See _a_e_a_n_n_o_t_a_t_e(1) for more information.

   VVeerrssiioonn 44..44 ((1122--MMaayy--22000022))
        * It is now possible to specify system wide user preferences.  See
        _a_e_u_c_o_n_f(5) for more information.

        * The _a_e_p_a_t_c_h(1) command now understands the quoted-printable content
        transfer encoding.

        * The _a_e_p_a_t_c_h(1) is more robust when receiving patches that want to
        use a change number that has already been used.

        * The Dutch error message translations have been updated.

        * There was a problem with the way the install directory for _a_e_g_i_s_._c_g_i
        was being determined.  The _a_e_g_i_s_._c_g_i script is now installed into
        $bindir by default.  There is a _a_e_g_i_s_._c_g_i_._i helper script to find your
        web server's _c_g_i_-_b_i_n directory and copy _a_e_g_i_s_._c_g_i there, but this is
        not done automatically.  See _a_e_g_i_s_._c_g_i(1) for more information.

        * Another change has been made to cope with still more Bison changes.

        * A French error message translation has been contributed.

        * A problem with _a_e_d_i_s_t _-_r_e_c_e_i_v_e has been fixed, where the new
        _c_o_n_f_i_g_u_r_a_t_i_o_n___d_i_r_e_c_t_o_r_y could interact with the order of file
        creation.

        * A big has been fixed in the uuencode output, which could
        occasionally miss the "begin" line.

        * A bug has been fiexed in the context diff parsing, where it would
        get the last hunk wrong if it was a hunk which deleted lines, due to
        incorrect end-of-file handling.  This affected both _a_e_p_a_t_c_h _-_r_e_c_e_i_v_e
        and _a_e_d_i_s_t _-_r_e_c_e_i_v_e, because _a_e_d_i_s_t(1) now includes patches for better
        merge behaviour.

        * Numerous issues concenting the new GNU Gettext versions have been
        addressed.

        * A number of Solaris build problems have been fixed, and one genuine
        bug buried in the warning messages (change completion time was wrong
        for changes not yet completed).

        * More information about the "mod times extend into the future"
        warning issued by _a_e_i_p_a_s_s(1) has been added to the man page.

        * Some improvements have been made to the web pages.

   VVeerrssiioonn 44..33 ((1166--AApprr--22000022))
        * The notification shell scripts all now use sendmail consistently.
        Autoconf support for locating sendmail is not yet present.

        * A problem which caused a core dump on Cygwin has been fixed.

        * The _a_e_d_e(1) command now gives a more informative error message when
        files in a branch require merging.

        * There is now an interconnection between the _a_e_i_b(1) and the _a_e_b(1)
        command.  When you specify a minimum integrate begin, you also get a
        minimum integrate build.

        * A bug has been fixed which caused _a_e_n_f(1) to dump core if you used
        the file name accept pattern.

        * The executability or otherwise of each source file is now
        remembered.  If any of the execute bits are set at _a_e_d_e(1) time, the
        file is remembed as executable.  When an executable file is copied
        into an integration directory or development directory, all of the
        execute bits (minus the project umask) are set.

        * A bug has been fixed in the ``_a_e_c_p _-_i_n_d'' command, where it would
        give a ``there is no development directory'' error when you tried to
        extract a file version from history of a completed branch.

        * Many of the web pages have been updated to provide a more consistent
        and intuitive interface.  It is also possible to get patches, via the
        _a_e_p_a_t_c_h command.

        * Interrupts are now ignored during database writes.  This should
        alleviate some of the problems induced by Ctrl-C.  (It would be nice
        to find the actual cause.)

        * The _a_e_d_i_s_t(1) command has been enhanved to include a patch fragment
        for modified files, as well as the whole source files.  On receipt, if
        the patch applies cleanly the whole source is ignored.  If the file
        does not exist at the receiving end, or the patch does not apply
        cleanly, the whole source file is included.  The incrimental cost is
        very low, because all of the patch pieces appear in the source file,
        and thus compress exceptionally well.  The net result is to greatly
        reduce merge costs on recipt of .ae files.  However, this change to
        _a_e_d_i_s_t(1) is only backwards compatiple.  Previous versions of
        _a_e_d_i_s_t(1) will give a fatal error if they see a .ae file generated by
        this version of _a_e_d_i_s_t(1).

        * File name resolution is now more robust in the face of permission
        problems.

        * Some error message translations have been improved.

        * A small bug has been fixed in the history labeling.

        * You can now use shell (#) and C++ (//) comments in your project
        _c_o_n_f_i_g file, if you prefer them to C comments.

        * A bug has been fixed in the maintenance of the symlink farm.  It
        would often fail to make all of the necessary symlinks.

        * There is a new project attribute, _p_r_o_t_e_c_t___d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y,
        which when true causes the development directory to be read-only in
        states between _a_w_a_i_t_i_n_g___r_e_v_i_e_w and _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d.

        * A problem has been fixed where some reports would fail is users had
        made their _._a_e_g_i_s_r_c files unreadable.

        * A number of small build problems have been fixed.

        * Command completion has been added for the _a_e_b(1), _a_e___c(1), _a_e_c_a(1),
        _a_e_c_d(1), _a_e_c_h_o_w_n(1), _a_e_c_l_e_a_n(1), _a_e_c_p(1), _a_e_c_p_u(1), _a_e_d_b(1), _a_e_d_b_u(1),
        _a_e_d_e(1), _a_e_d_e_u(1), _a_e_d_n(1), _a_e_i_b(1), _a_e_i_b_u(1), _a_e_i_p_a_s_s(1), _a_e_i_f_a_i_l(1),
        _a_e_n_a(1), _a_e_n_c_u(1), _a_e_n_d(1), _a_e_n_f(1), _a_e_n_f_u(1), _a_e_n_i(1), _a_e_n_r_v(1),
        _a_e_n_t_u(1), _a_e___p(1), _a_e_p_a(1), _a_e_r_a(1), _a_e_r_b(1), _a_e_r_b_u(1), _a_e_r_d(1),
        _a_e_r_f_a_i_l(1), _a_e_r_i(1), _a_e_r_m(1), _a_e_r_m_u(1), _a_e_r_p_a_s_s(1), _a_e_r_p_u(1), _a_e_r_r_v(1)
        and _a_e_t(1) commands.  More will be added in the future.

        * It is now possible to specify a directory to contain project _c_o_n_f_i_g
        file fragments.  These fragments are then read in as if catenated as a
        single project _c_o_n_f_i_g file.  See _a_e_p_f_o_n_f(5) for more information.

   VVeerrssiioonn 44..22 ((2266--FFeebb--22000022))
        * There is a new ``--No-Page-Headers'' option which may be used to
        suppress page and column headers in listings and reports.

        * There is a new ``aecp -delta-from-change'' option, allowing the
        specification of a delta number by specifying the number of a
        completed change.

        * The ``aecp -ind -delta'' command now omits files which did not exist
        at the given delta.

        * There is a new _h_i_s_t_o_r_y___l_a_b_e_l___c_o_m_m_a_n_d which may be used to label your
        history files at each integration.  See _a_e_p_c_o_n_f(5) for more
        information.

        * The code which guesses which change you are working on, based on
        your current directory, has been enhanced to cover far more cases.  It
        can recognize the integration directory, too.

        * There is a new _C_h_a_n_g_e___L_o_g report, which generates reports in the
        style of common Internet change logs.

        * The web interface is now able to show you file differences between
        deltas.

        * A bug has been fixed in the ``_a_e_c_p _-_d_e_l_t_a'' command (for all delta
        variants).  The problem occurred when you wanted to copy a version of
        the file before the file has been modified by the branch (but it
        wasonly a problem for files modified later in the branch, files never
        modified by the branch were OK).  As a side-effect of the bug fix,
        ``_a_e_c_p _-_d_e_l_t_a'' now goes significantly faster (_N times faster, where _N
        is the number of files you are copying).

        * Build problems caused by new Bison releases have been fixed.

        * A number of oversights in handling the new _a_w_a_i_t_i_n_g _r_e_v_i_e_w state
        have been corrected.

        * The _$_{_e_x_p_r_} substitution has been enhanced to include modulo,
        logical not and the six relative operators.  All using the usual C
        syntax and precedences.  See _a_e_s_u_b(5) for more information.

        * There is a new _$_{_s_w_i_t_c_h_} substitution, see _a_e_s_u_b(5) for more
        information.

        * A Russian localization of the error messages has been contributed.

        * A bug has been fixed in the ``aecp -output'' code, which sometimes
        incorrectly created directories.

        * A bug has been fixed in the symbolic link maintenance code.  It now
        repairs links which point to a file which is too deep in the ancestor
        tree, and has been subsequently replaced.  It now uses a single pass,
        rather than two passes.

        * The _c_h_a_n_g_e___f_i_l_e___c_o_m_m_a_n_d field of the project _c_o_n_f_i_g file is now
        available at a finer granularity.  There are 8 new commands (the
        _c_o_p_y___f_i_l_e___c_o_m_m_a_n_d, _c_o_p_y___f_i_l_e___u_n_d_o___c_o_m_m_a_n_d, _n_e_w___f_i_l_e___c_o_m_m_a_n_d, _n_e_w___-
        _f_i_l_e___u_n_d_o___c_o_m_m_a_n_d, _n_e_w___t_e_s_t___c_o_m_m_a_n_d, _n_e_w___t_e_s_t___u_n_d_o___c_o_m_m_a_n_d, _r_e_m_o_v_e___-
        _f_i_l_e___c_o_m_m_a_n_d and _r_e_m_o_v_e___f_i_l_e___u_n_d_o___c_o_m_m_a_n_d fields) which may be
        individually configured.  They default to the previous behaviour, for
        backwards compatibility.  See _a_e_p_c_o_n_f(5) for more information.

        * A bug has been fixed in the _a_e_p_a_t_c_h(1) command, which prevented it
        form constructing patches for changes on completed branches.

        * The _a_e_i_p_a_s_s(1) command now issues an error message if the build
        changes a source file.  (Previously it erroneously reported that the
        history tool had done the damage.)

        * A bug has been fixed in ``aecpu -unchanged'' in the case where the
        change had no files.  (It tried to uncopy a file called the empty
        thring.)

        * The missing _a_e_m_v_u(1) man page has been added.

   VVeerrssiioonn 44..11 ((66--DDeecc--22000011))
        NNoottee:: You will need to upgrade all of your Aegis machines
        simultaneously for this release.  It introduces database changes which
        older Aegis release will not be able to cope with.

        * A bug has been fixed in _a_e_d(1), which tried to access a nonexistent
        files under some circumstances.

        * A bug has been fixed in _a_e_d_e.  When two changes created the same
        file, the second change received a misleading message from _a_e_d_e.

        * There is a new German message translation.

        * There is a new _t_k_a_e_p_a(1) command, giving GUI access to the _a_e_p_a(1)
        command.

        * The _a_e_c_l_o_n_e(1) command now runs the _c_h_a_n_g_e___f_i_l_e___c_o_m_m_a_n_d and
        _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d from the project _c_o_n_f_i_g file.  This is in order
        to be more consistent withthe _a_e_c_p(1) command.

        * The "time safe" property described by Damon Poole mostly applies to
        Aegis' operation.  One last area related to future times and the
        --delta options.  There is now a warning in the instance where non-
        time-safe behavior may occur.

        * The _h_i_s_t_o_r_y___p_u_t___c_o_m_m_a_n_d and _h_i_s_t_o_r_y___c_r_e_a_t_e___c_o_m_m_a_n_d field of the
        project _c_o_n_f_i_g file are strongly recommended to be identical.  It is
        now possible to only specify the first one, and the second will
        default to it.

        * A bug has been fixed in the _a_e_i_b(1) command, when the _l_i_n_k___-
        _i_n_t_e_g_r_a_t_i_o_n___d_i_r_e_c_t_o_r_y field in the project _c_o_n_f_i_g file is false.

        * There is a new _a_w_a_i_t_i_n_g _r_e_v_i_e_w state, and new _a_e_r_b(1) and _a_e_r_b_u(1)
        commands to go with it.  It is now possible to configure your project
        to have changes enter the _a_w_a_i_t_i_n_g _r_e_v_i_e_w state after _a_e_d_e(1), rather
        than the _b_e_i_n_g _r_e_v_i_e_w_e_d state.  It is also possible to skip the review
        states altogether and immediatelt enter the _a_w_a_i_t_i_n_g _i_n_t_e_g_r_a_t_i_o_n
        state.

        * There is a new _m_o_d_e_P _f_i_e_l_d _f_o_r _t_h_e _s_p_e_c_i_f_i_c_a_t_i_o_n _o_f _a_r_c_h_i_t_e_c_t_u_r_e_s _i_n
        _t_h_e _p_r_o_j_e_c_t _c_o_n_f_i_g _f_i_l_e_.  _T_h_e _m_e_a_n_s _t_h_a_t _y_o_u _c_a_n _d_e_s_i_g_n_a_t_e _s_o_m_e
        _a_r_c_h_i_t_e_c_t_u_r_e_s _a_s _m_a_n_d_a_t_o_r_y _a_n_d _s_o_m_e _a_s _o_p_t_i_o_n_a_l_.  _S_e_e _a_e_p_c_o_n_f_(_5_) _f_o_r
        _m_o_r_e _i_n_f_o_r_m_a_t_i_o_n_.

        * The _a_e_n_b_r(1) command now populates the new branch's baseline with
        symlinks if the project _c_o_n_f_i_g file is set so that they would remain
        after an integration build.  This is more consistent with the _a_e_d_b(1)
        behaviour in the same situation.

        * There have been a number of changes to the web pages, accompanying
        the move to SourceForge, along with some corrections.

        * There is a new _a_e_l_s(1) command, which may be used to list
        directories, annotated with Aegis' file attribute information.

        * The _a_e_c_l_e_a_n(1) command now accepts the --KKeeeepp option, so that it
        reports what it would do, rather than actually do anything.

        * A problem with the CGI interface, which reported a bug to the user,
        has been fixed.

   VVeerrssiioonn 33..2299 ((3311--OOcctt--22000011))
        * The _a_e_i_m_p_o_r_t(1) command can now import CVS repositories which
        contain binary files.

        * There is a new _$_{_R_e_a_d___F_i_l_e___S_i_m_p_l_e_} substritution.  It is like
        _$_{_R_e_a_d___F_i_l_e_}, but is does not substitute into the file contents.

        * The _a_e_c_p _-_i_n_d_e_p_e_n_d_e_n_t command now accepts a _-_o_u_t_p_u_t option.

        * There is a new _$_{_e_n_v_i_r_o_n_m_e_n_t_} substitution, allowing you to access
        environment variables within substitutions.  See _a_e_s_u_b(5) for more
        information.

        * There is a new _$_{_p_r_o_j_e_c_t_-_s_p_e_c_i_f_i_c_} substitution, allowing you to
        define project specific value to be inserted into various commands.
        See _a_e_s_u_b(5) and _a_e_p_c_o_n_f(5) for more information.

        * The _a_e_f_i_n_d(1) command now works with completed change.  It searches
        the baseline.

        * A problem with using the ${source} substitution within the
        _i_n_t_e_g_r_a_t_e___p_a_s_s___n_o_t_i_f_y___c_o_m_m_a_n_d has been fixed.  It was getting the path
        wrong.

        * The batch test command is only ever invoked of there are tests to
        run.  (This fixes a problem where it would simethimes run with no
        arguments.)

        * The web reports now bahave themselves when the names of non-longer-
        here user appear.

        * A number of errors and typos have been fixed in the documentation.

   VVeerrssiioonn 33..2288 ((2211--AAuugg--22000011))
        * There is a new _a_e_p_a_t_c_h(1) program, which may be used to send an
        receive changes using the classic open source patch format.  See
        _a_e_p_a_t_c_h(1) for more information.

        * The general output mechanism (for listings and reports) has been
        rewritten to be significantly faster.

        * Numerous small things have been improved in and around the
        ./configure script and the Makefile.

        * The web interface has been improved.  It should result in better
        save file locations being suggested for .ae files.  cgi vs downloads

        * Aegis now takes a baseline read lock during tests, so that the
        baseline doesn't move out from under your tests, causing mysterious
        failures.

        * A bug has been fixed in the subst function of the report generator.
        It was free()in a string twice.

        * There is a new _$_{_d_e_v_e_l_o_p_e_r _e_m_a_i_l_} substitution, for inserting users'
        preferred email addresses into commands.  Useful for the state
        transition notification commands.

        * There is now more text in the _a_e_p_c_o_n_f(5) man page, explaining how
        each of the pattern fields are applied to file names.  It is now
        explicit when patterns applied to whole file names, and when they only
        applied to path name elements.

        * A segfault has been fixed in the removed file whiteout code.

        * The _a_e_s_u_b _$_s_o_u_r_c_e substitution now works in combination with the
        --BBaasseeLLiinnee option.

        * The _a_e_g_i_s_._s_p_e_c file now mentions the executables again.

   VVeerrssiioonn 33..2277 ((2266--JJuunn--22000011))
        * A bug has been fixed in the _a_e_s_u_b(1) $delta substitution.  It now
        works correctly for completed changes.

        * A bug has been fixed in _a_e_r_m_u(1), when used in combination with the
        symlink farm.  It no longer complains about "multiple user permissions
        set".

        * A serious bug has been fixed in the locking code.  The bug meant
        that only one build per project could happen at a time.  (There was
        never any risk of repository or Aegis database damage.)

        * A bug has been fixed in the _a_e_d_i_s_t(1) command.  It failed to
        correctly recognise files produced using the _a_e_d_i_s_t _-_s_e_n_d _-_n_o_-_a_s_c_i_i_-
        _a_r_m_o_u_r option.

        * The _a_e_c_p_u _-_u_n_c_h command now deals more gracefully with files which
        have been removed from the project in the mean time.

        * There is a new _c_h_a_n_g_e _f_i_l_e _h_i_s_t_o_r_y listing, similar to the _f_i_l_e
        _h_i_s_t_o_r_y report.  It is much faster, much more informatuve, and less
        selective.

   VVeerrssiioonn 33..2266 ((2211--JJuunn--22000011))
        * Some optimizations have been done to the input parsing.  Depending
        on your architecture, this will or won't be noticable.

        * The locking has been changed so that _a_e_i_p_a_s_s(1) takes precedence
        over new development builds, so that there is a guarantee that
        _a_e_i_p_a_s_s(1) will succeed in finite time.  Current development builds
        will run to completion, but new development builds will block until
        the _a_e_i_p_a_s_s(1) gets the basline lock and subsequently completes.

        * The "file format error" bug in _a_e_d_i_s_t(1) has been fixed.

        * There is a new _p_r_o_j_e_c_t _a_c_t_i_v_i_t_y report, which is useful to project
        leaders to see what has been happing in the project, sorted by time
        and then by user name.

        * Aegis can now transparently cope with binary files, even if the
        history tool cannot.  It does this by using a MIME encoding for binary
        files.  (This can be configured away, if your history tool correctly
        handles binary files.)  See _a_e_p_c_o_n_f(5) and the _U_s_e_r _G_u_i_d_e for more
        information.

        * There is a fix for the "file unrelated" error commonly seen on
        Solaris and BSD when combined with an automounter, in come cases.  It
        relies on the _b_a_s_h(1) behaviour which sets the $PWD environment
        variable.  (GNU libc does this internally to the _g_e_t_c_w_d(3) function,
        not all libcs do.)

        * The _a_e_r(1) report generator now has access to the project _c_o_n_f_i_g
        file fields, through a new config field in the report generator's
        concept of the project state.

        * There is a new _a_e_r(1) $comdir substitution, which gives access to
        the shared state directory, configured at build time.

        * The _a_e_b_u_f_f_y(1) now accepts a project name on the command line.

        * There is a new _b_u_i_l_d___c_o_v_e_r_s___a_l_l___a_r_c_h_i_t_e_c_t_u_r_e_s field in the project
        _c_o_n_f_i_g file, so that you can tell Aegis that the build tool builds all
        architectures wimultaneouasly.  See _a_e_p_c_o_n_f(5) for more information.

        * The _t_k_a_e_r(1) command now has a comment editor, so that you can edit
        your review fail comments from within the GUI.

        * A bug has been fixed which was caused _a_e_n_b_r_u(1) to delete one
        directory level too deep when the branch was removed.

        * There is a new getuid() function in the report generator.

        * This change fixed a bug in _a_e_d_e(1) where it would not allow a
        branch, created with _a_e_i_m_p_o_r_t(1), with new files which had
        subsequently been modified to end development, when those files had
        never existed in the baseline.

        * It is now possible for project administrators to nominate the
        developer in the _t_k_a_e_n_c(1) dialog.  You are presented with a pick
        list.

        * There is a new _a_e_s_u_b(1) $history_directory substitution.  This may
        be used in scripts which access the history tool's files directly.

        * There is a new _c_h_a_n_g_e___f_i_l_e___u_n_d_o___c_o_m_m_a_n_d field of the project _c_o_n_f_i_g
        file.  It is similar to the _c_h_a_n_g_e___f_i_l_e___c_o_m_m_a_n_d field (it defaults to
        it if unset), but is executed by all of the ``undo'' file commands.

        * The _a_e_d_e(1) command no longer cancels your build and test time
        stamps.  This means that you don't need to re-build if you don't
        change anything, after _a_e_d_e_u(1) or _a_e_r_f_a_i_l(1).

   VVeerrssiioonn 33..2255 ((33--AApprr--22000011))
        * It is now possible to remove users who's accounts have been removed
        (the affects the _a_e_r_a(1), _a_e_r_d(1), _a_e_r_i(1) and _a_e_r_r_v(1) commands).

        * There is a new _-_-_d_e_s_c_r_i_p_t_i_o_n_-_o_n_l_y option to the _a_e_c_a(1) command.
        This is useful for editing only the descrioption, and also for use
        within scripts.

        * The _-_-_f_i_l_e option has now been generalized to accept ``-'' to mean
        the standard input.  This is useful in scripts.

        * There is a new _a_e_b_u_f_f_y(1) command, which may be used to see what
        changes a user has outstanding.  It needs X11 (Tk/Tcl) to work.  Named
        after the _x_b_u_f_f_y(1) command.

        * The _t_k_a_e_r(1) command now presents you with a ``detail'' button, so
        that you may see the change details when pwerforming a review.

        * The restriction that placed the function name at the start of the
        command line (_e_._g_. the ``-cp'' of _a_e_c_p) has been relaxed.  This may
        now appear anywhere on the command line.

        * The Bourne / BASH shell aliases have been improved, so that they now
        preserve quoting of special characters and white space.  This dates
        from the earliest days of Aegis.  It's wonderful to have it fixed at
        last.

        * There is a new _a_e_m_v_u(1) command, which may be used to undo the
        effects of an _a_e_m_v(1) command.  This should prove less confusing than
        the previous method.

        * A big has been fixed in the _a_e_m_v(1) command.  It failed to accept
        the --base-relative option, even though it was documented to do so.

        * A bug has been fixed in the quote_tcl() report function.  Is fixes
        the problem with getting the dollars sign into descriptions when using
        the _t_k_a_e_n_c(1) command.

        * The SCCS section of the _U_s_e_r _G_u_i_d_e and example configurations have
        been updated and confirmed to work correctly, however I've only tested
        this with GNU CSSC.

        * A bug in the file name handling has been fixed.  This was most
        obvious around the _a_e_c_p_u(1) command when you had _c_r_e_a_t_e___s_y_m_l_i_n_k_s___-
        _b_e_f_o_r_e___b_u_i_l_d turned on and you were using an automounter, but it
        occured at other times as well.

        * The _a_e_i_m_p_o_r_t(1) command now understands the SCCS format.  If the
        comments in GNU CSSC are accurate, this also means you can import
        BitKeeper repositories, however I am unable to confirm this.

   VVeerrssiioonn 33..2244 ((1100--MMaarr--22000011))
        * There is a new _a_e_i_m_p_o_r_t(1) command, which may be used to import CVS
        archives into Aegis.

        * The cross branch merge has been improved so that it uses an earlier
        version number than it was using, resulting in a more sensable merge.

        * A bug has been fixed in the _$_{_q_u_o_t_e_} substitution which incorrectly
        quoted the exclamation mark (!).  Unfortunately, quoting isn't at all
        simple, because you can't exclusively use single quotes _o_r double
        quotes _o_r backslash.

        * There is now a _$_{_c_h_a_n_g_e _d_e_s_c_r_i_p_t_i_o_n_} substitution, allowing you
        access to the brief description of a change in a substitution.  (The
        suggested RCS history command have been changed to use it.)

        * A Dutch localization of the error messages has been contributed.

        * Project administrators can also use the _a_e_i_b_u(1) command.  Handy for
        abandoned integrations which inconvenience everyone else.

        * There is a new project _c_o_n_f_i_g file field, called build_covers_all_-
        architectures, which allows you to tell Aegis that your build process
        can cover all architectures simultaneously.

        * The _$_{_q_u_o_t_e_} substitution has been fixed to correctly quote more
        characters.  It now prefers the single quote (but is is npt possible
        to use this exclusively).

        * The web site now uses PDF files for documentation, rather than
        gzipped PostScript.  This was for lots of reasons, including the fact
        theat many folks couldn't work out how to print them, and also IE
        decompressed them ``for free'' but left the .gz suffix.

        * The report generator, _a_e_r_e_p_o_r_t(1), can now access fields of the
        _._a_e_g_i_s_r_c file.  This is important for accessing the preferred email
        address in various reports.  * The ``_a_e_c_p _-_d_e_l_t_a'' command now adds
        removed files to the change as removed files instead of adding them as
        copied-but-empty files.  This should make reproducing projects more
        accurate, but you need to use _a_e_r_m_u(1) to get rid of them ,rather than
        _a_e_c_p_u(1).

        * The _a_e_d_i_s_t program now adds a ``Content-Disposition'' header to the
        files it generates.  This means MIME programs will unpack it into a
        correctly named file more often.

        Numerous build problems have been fixed, both for Unix and for Cygwin
        (Windows).  There have benn some test script improvements, too.

        Contributions have started to roll in using the ``aedist'' format.
        This is very encouraging.  The instructions for how to do this are
        contained in the ``Howto'', in the _D_e_v_e_l_o_p_e_r section.

   VVeerrssiioonn 33..2233 ((2299--OOcctt--22000000))
        * A bug has been fixed which caused the report generator _c_h_a_n_g_e___n_u_m_b_e_r
        function to give garbage answers for change number zero (fortunalely,
        not very common).

        * There is a new _m_t_i_m_e function in the report generator.

        * There is a new _a_e_c_o_m_p utility, which may be used to compare two
        active changes, using _t_k_d_i_f_f_.

        * A bug in ``aesub ${dd}'' which reported the wrong directory when
        applied to branches, has been fixed.

        * The project _c_o_n_f_i_g file now contains two new fields, _c_r_e_a_t_e___-
        _s_y_m_l_i_n_k_s___b_e_f_o_r_e___i_n_t_e_g_r_a_t_i_o_n___b_u_i_l_d and _r_e_m_o_v_e___s_y_m_l_i_n_k_s___a_f_t_e_r___-
        _i_n_t_e_g_r_a_t_i_o_n___b_u_i_l_d, which may be used to better control the behavior of
        the symlink farm at integration time.  (Default behavior is backwards
        compatible.)

        * A new utility called _t_k_a_e_r has been contributed.  It is for
        reviewing, and shows you lists of files.  When you click on one, it
        launches _t_k_d_i_f_f(1) to examine it.  You're going to like this one,
        folks!

        * The _a_e_d_i_s_t _-_r_e_c_e_i_v_e command now preserves the testing exemptions, if
        possible.

        * A problem with very very large test runs and the --no-persevere
        option has been fixed.

        * The _a_e_n_f(1) and _a_e_n_t(1) commands now accept ----tteemmppllaattee and ----nnoo--
        tteemmppllaattee options, to control the use of new file templates.

        * A nasty Catch-22 in the _a_e_d_i_s_t(1) command has been fixed, involving
        the (unnecessary) use of new file templates, when the actual template
        files don't yet exist in the --receive development directory.

   VVeerrssiioonn 33..2222 ((1133--MMaayy--22000000))
        * PPlleeaassee NNoottee:: Some code has been added to Aegis to assist in
        diagnosing problems when restoring projects from backups.  If you see
        a message ``aegis: _p_r_o_j_e_c_t_-_p_a_t_h: has been tampered with (fatal)'' this
        means there are problems with the project file ownerships.  The
        project owner needs to be >= AEGIS_UID (defaults to 100), and the
        project group needs to be >= AEGIS_GID (defaults to 10).  Use chown -R
        and/or chgrp -R to fix these problems.

        * The _a_e_s_u_b(1) command now accepts the ${arch} substitution in
        combination with the -baseline option.

        * A bugs has been fixed in the _a_e_d_i_s_t _-_r_e_c_e_i_v_e command, when one of
        the files was also locked for review.

        * A bug in _a_e_c_l_o_n_e(1) has been fixed, where it dropped file move
        information.

        * The _a_e_i_b(1) command now correctly validates that youare actually
        allowed to do this integration.  This may win the prize for the _o_l_d_e_s_t
        Aegis bug.

        * There is a new ${search_path_executable} substitution.  See _a_e_s_u_b(5)
        and _a_e_t(1) for more information.

        * Line wrapping in reports works properly again for lines with no
        white space.  The previous release broke it when the wide output
        generalization was added.

        * The _a_e_t _-_n_o_p_e_r_s_e_v_e_r option works again.  The previous release broke
        it when the batch test support has implemented.

        * A problem with the _a_e_b(1) command which made it difficult to use
        with th symbolic link farm (in some cases) has been fixed.

        * A new report is available from the web interface, showing a change-
        of-state histogram over time for all state transitions (not just the
        integrate pass transitions).

        * A problem with the _a_e_n_f(1) command which made it difficult to use
        with th symbolic link farm (in some cases) has been fixed.

        * The _a_e_i_p_a_s_s(1) command now preserve file mod times across history
        updates, if the history tool gratuitously changes them.

        * The Solaris and IRIX build problems (wputc, _e_t _a_l) has been fixed.

        * Numerous documentation patches were received and have been applied.

   VVeerrssiioonn 33..2211 ((1122--MMaarr--22000000))
        * A couple of minor bugs have been fixed in _a_e_d_i_s_t, especially the
        problem with sending an baseline image while a change is being
        reviewed.

        * A couple of bugs have been fixed in the tkae* commands, in
        partucular they no longer leave temporary files lying around.

        * Lots of stuff has been added to the HOWTO: a cheat sheet, how to
        change a project's owner, how to use distributed development, how to
        become a developer.

        * The problem which caused `aesub ${copyright_years}' to contain
        duplicates has been fixed.

        * There have been Y2K fixes: the date parsing for the -delta-date
        option has been fixed, and the web page data has also been fixed.

        * The _a_e_t(1) command can now run more than one test at once, if
        configured appropriately.  This is of most use on systems with more
        than one CPU.

        * The -UNFormatted option no longer truncates column values.

        * The _a_e_s_u_b(1) command now accepts the -baseline option, so that you
        can get project-specific substitution in shell scripts.

        * A bug has been fixed in _t_k_a_e_n_c(1) which gave incorrect testing
        ssttings.  It now also tracks the project testing exemptions.

        * A bug in _a_e_n_f_(_1_) _h_a_s _b_e_e_n _f_i_x_e_d _w_h_i_c_h _a_l_l_o_w_e_d _m_u_l_t_i_p_l_e _i_n_s_t_a_n_c_e_s _o_f
        _t_h_e _s_a_m_e _f_i_l_e _t_o _b_e _c_r_e_a_t_e_d_.

        * A bug has been fixed which caused `aesub ${search_path}' to fail in
        some cases.

        * A bug has been fixed in _a_e_n_f(1) which allowed you to create the same
        file multiple times, corrupting Aegis' database and causing _a_e_d_e(1) to
        report mysterious errors.  Use _a_e_n_f_u(1) multiple times to untangle
        things.

        * Information has been added to the section 5 manual pages, detailing
        how to access state information from within the report generator.
        This should make writing report scripts a little easier.

        * A bug has been fixed which caused Aegis to misbehave when launched
        by some versions of _c_r_o_n(8) or _a_t(1).

   VVeerrssiioonn 33..2200 ((1199--OOcctt--11999999))
        * The _a_e_i_b command is now more robust about ``foreign'' files in the
        baseline (_e_._g_. root-owned core files).

        * A bug has been fixed in the _$_{_a_d_m_i_n_i_s_t_r_a_t_o_r___l_i_s_t_} substitution.

        * A bug has been fixed in the _a_e_d_i_s_t _-_-_d_e_l_t_a option, which caused it
        to dump core.

        * There is now a section in the _H_i_s_t_o_r_y _T_o_o_l chapter of the User Guide
        describing how to add checksums to your history files, in order to
        detect file corruptions.  It is a general technique which applies to
        most history tools (including RCS).

        * A bug has been fixed which caused _a_e_c_l_o_n_e to misbehave badly when
        dealing with removed files.

        * There is now an embryonic ``How To'' document for Aegis.  Please
        feel free to contribute subjects.

        * You can now say ``--BBRRaanncchh --'' as a synonym for the ``--TTRRuunnkk option,
        for those commands which accept it.

        * The report generator now copes with more types of empty lists.

        * A bug has been fixed which caused a core dump instead of a useful
        error message if you tried to create an alias with an illegal name.

        * A bug has been removed which left undeletable branch aliases if a
        branch was removed.

        * A bug has been fixed in _a_e_n_b_r_u which failed to remove the branch
        development directory .

        * The _a_e_n_f(1) command now behaves better when you do horrible things
        like turn the files you created into directories without telling Aegis
        first.

        * A couple of small bugs have been fixed in the _a_e_n_p_a(1) command, both
        in error situations.

        * A bug with the --iinntteerraaccttiivvee option has been fixed.  It will actually
        ask you, now.

   VVeerrssiioonn 33..1199 ((44--AAuugg--11999999))
        * You can now run a command to generate new file templates if you
        want, rather than using a simple string substitution.  See _a_e_n_f(1),
        _a_e_n_t(1) and _a_e_p_c_o_n_f(5) for more information.  The existing
        functionality is still there.

        * There is a new ${SUBSTitute} substitution, which provides regular
        expression substitutions.  This is useful in new file templates.

        * A bug has been fixed which allowed _a_e_d_e of a branch when there were
        some kinds of outstanding changes.

        * The automatic change number guessing has been improved slightly, and
        will cope with some more variation in the
        _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___t_e_m_p_l_a_t_e field.

        * There are two new commands, _a_e_n_p_a(1) and _a_e_r_p_a(1) for creating and
        removing project aliases.  This means that you can give project
        branches more meaningful names.

        * There is a new _a_e_s_u_b(1) command.  It substitutes its arguments and
        prints them, rather like the _e_c_h_o(1) command.  This is useful when you
        need access to the Aegis substitutions in a script.

        * The command line option ``--'' is now understood.  It means ``the
        rest of the arguments on the command line are filenames or strings''.
        Because this makes the options on the command line more "order
        sensitive" than usual, use with care.

        * There is a new _t_k_a_e_n_c(1) command, allowing you to create new change
        via a Tcl/Tk GUI.  (And a problem with TCL special characters in
        description text has been fixed.)

        * The _a_e_n_f(1) command now does the right thing with directories named
        on the command line.  In particular, you can now use ``aenf .'' to
        import whole directory trees.

        * There is a new _S_t_a_t_e_-_F_i_l_e_-_N_a_m_e list type, useful when writing
        cookbooks or makefiles to keep a web page in sync with a change.

        * There is a new ${capitalize} substitution, useful for putting in new
        file templates.

        * A bug has been fixed which caused _a_e_c_l_e_a_n to delete the development
        directory of changes with no files.

   VVeerrssiioonn 33..1188 ((88--JJuull--11999999))
        * A bug has been fixed which caused _a_e_c_p _-_d_e_l_t_a to dump core in some
        cases.

        * A bug has been fixed which caused the create-symlinks-before-build
        functionality to create symlinks to deleted files.

        * Still more typos and minor errors have been corrected in the
        documentation.

        * The _a_e_r_p(1) man page has been moved to _a_e_r_p_a_s_s(1).  Similarly for
        _a_e_r_f_a_i_l(1), _a_e_i_p_a_s_s(1) and _a_e_i_f_a_i_l(1).  This should make things easier
        for users to find the man pages.

   VVeerrssiioonn 33..1177 ((2222--JJuunn--11999999))
        * Another _a_e_d_i_s_t bug has been fixed - unfortunately it was introduced
        while trying to fix the last one.

        * A Cygwin 20.1 portability bug has been fixed.

        * There is a new _$_{_d_i_r_n_a_m_e___r_e_l_a_t_i_v_e_} substitution.  This is useful in
        new file templates, and also some configured commands.

   VVeerrssiioonn 33..1166 ((1155--JJuunn--11999999))
        * There is a new _t_k_a_e_c_a command.  It is a GUI interface to the _a_e_c_a(1)
        command, using Tcl/Tk.

        * There are two new reports available: the _P_r_o_j_e_c_t_-_B_r_a_n_c_h_e_s and
        _P_r_o_j_e_c_t_-_A_c_t_i_v_e_-_B_r_a_n_c_h_e_s reports may be used to query about branches
        within a project.

        * A bug has been fixed in the _a_e_d_i_s_t _-_r_e_c_e_i_v_e duplicate suppression
        code.  It was complaining about user permissions.

        * A bug has been fixed in _a_e_b(1), which did strange things if you
        tried to build an unbuildable change.

        * There is a new _-_N_o_-_W_h_i_t_e_O_u_t option for the _a_e_r_m(1) and _a_e_m_v(1)
        commands, letting you suppress the ``whiteout'' files, along with some
        explanation in the man page about why they are there.  See _a_e_r_m(1) for
        more information.

        * The default value of the ``_m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h'' field of the
        project _c_o_n_f_i_g file has been raised from 14 to 255.  If your project
        depends on the old default value, you will need to set it explicitly.

        * The _a_e_d_i_s_t _-_r_e_c_e_i_v_e command now accepts a _-_d_i_r_e_c_t_o_r_y option, so you
        can specifiy the location of the development directory.

   VVeerrssiioonn 33..1155 ((22--MMaayy--11999999))
        * The ``_a_e_d_i_s_t _-_r_e_c_e_i_v_e'' command now accepts a --ddeellttaa option,
        allowing a received change set to be applied to an historical version.

        * There is now some information about managing super-projects and sub-
        projects in the _B_r_a_n_c_h_i_n_g chapter of the User Guide.

        * The _a_e_n_p_r(1) command now accepts a _-_k_e_e_p option, so that you can re-
        attach projects moved after using the _a_e_r_m_p_r _-_k_e_e_p command.  See
        _a_e_n_p_r(1) for more information.

        * The _a_e_n_p_r(1) command now accepts _-_e_d_i_t and _-_f_i_l_e options, allowing
        you to specify project attributes when creating the project.  See
        _a_e_n_p_r(1) for more information.

        * If the project _d_e_v_e_l_o_p_e_r_s___m_a_y___c_r_e_a_t_e___c_h_a_n_g_e_s attribute is true, the
        _a_e_n_c_u(1) command now allows developers to destroy changes they
        created.

        * There is a new _a_d_d___p_a_t_h___s_u_f_f_i_x substitution, for manipulating search
        paths.  See _a_e_s_u_b(5) for more information.

        * There are 3 new substitutions: ${bindir}, ${datadir} and ${libdir}.
        These are replaced by the _._/_c_o_n_f_i_g_u_r_e options of the same name (or the
        values calculated, if none were given to _._/_c_o_n_f_i_g_u_r_e).  The old ${lib}
        substitution is deprecated in favour of the new ${datadir}
        substitution.  See _a_e_s_u_b(5) for more information.

        * Some changes have been made which increases portability,
        particularly the Linux libc5 _v_s libc6 differences.

        * Some changes have been made which increases portability,
        particularly for Windows NT.  This isn't to say Aegis works under
        Windows NT yet, but it helps the porting efforts.  Don't forget to run
        the mkpasswd and mkgroup utilities included in the Cygwin system.

   VVeerrssiioonn 33..1122 ((2266--MMaarr--11999999))
        * The way the Apache config files are scanned for and read has been
        changed, to adapt to recent Apache changes.  The _._/_c_o_n_f_i_g_u_r_e script
        will now find it more often.

        * The ``_a_e_d_i_s_t _-_r_e_c_e_i_v_e'' command has been enhanced to be more robust
        about change sets without headers (some browsers _g_e_n_e_r_o_u_s_l_y strip them
        all off.

        * A bug has been fixed in the ``_a_e_d_i_s_t _-_r_e_c_e_i_v_e'' command which
        sometimes caused decompression failures.  An unfortunate interaction
        with the Windows NT support caused CRLF sequences in the compressed
        data to be mangled in some cases.

        * The wrong include file was being used for zlib.  This has been
        fixed, so it should build more easily now.

        * The way MANPATH is handled on Linux has been improved in the _c_h_s_r_c
        and _p_r_o_f_i_l_e commands.  It will not over-ride _/_e_t_c_/_m_a_n_._c_o_n_f_i_g now.

        * The _a_e_g_i_s_._c_g_i script has been made more robust in coping with _a_e_d_i_s_t
        errors.

        * The _s_y_m_l_i_n_k___e_x_c_e_p_t_i_o_n field of the project _c_o_n_f_i_g file now accepts
        filename patterns, not simply literal filenames.

        * There was a problem compiling with gcc 2.8, involving the <stdarg.h>
        header.  This has been fixed.

   VVeerrssiioonn 33..1111 ((1177--MMaarr--11999999))
        * The _a_e_t(1) command now accepts a --force option, forcing tests to be
        run, even if Aegis doesn't think they need to.

        * The Aegis CGI interface has been enhanced so that you can download
        changes from the generated web pages listing the changes, using the
        _a_e_d_i_s_t command.

        * The _a_e_d_i_s_t _-_-_s_e_n_d command now accepts a --no-ascii-armor option,
        which leaves off the MIME base 64 encoding.  Useful for binary
        distributions and web servers.

        * There is a new _t_r_o_j_a_n___h_o_r_s_e___s_u_s_p_e_c_t field in the project _c_o_n_f_i_g
        file.  This is used by _a_e_d_i_s_t _-_-_r_e_c_e_i_v_e to check for files which could
        be abused to carry Trojan horse attacks.

        * The _a_e_d_i_s_t _-_-_r_e_c_e_i_v_e command now accepts a --trojan option which
        treats the incoming change set as suspect, and a --no-trojan option
        which treats the incoming change set as benign.

        * The _a_e_d_i_s_t _-_-_r_e_c_e_i_v_e command now quotes filenames (if necessary)
        when executing commands, thus defending against filenames which
        contain semicolons.

        * The _a_e_n_b_r_u(1) command has been implemented at last.  At last!  You
        no longer need to use the _a_e_d_b_u work-around.

        * The _a_e_d_b_u(1) command now gives an error if you attempt to apply it
        to a branch.

        * The _a_e_r_m_p_r(1) command may now be applied to a project with active
        branches, and will remove the branches as well (provided there are no
        active changes on any of the branches).

        * The dos_filename_required and windows_filename_required fields of
        the project _c_o_n_f_i_g file have been enhanced to reject the brain-dead
        Windows special filenames such as ``aux'' _e_t _a_l.

        * The ${user} and ${project} substitutions have been enhanced to
        provide additional information when given an additional argument.
        Useful for file templates.  See _a_e_s_u_b(5) for more information.

        * Several portability enhacements, notably the Windows filename
        incompatibility has been fixed, and also the Linux _s_t_d_l_i_b_._h problem.

   VVeerrssiioonn 33..1100 ((66--MMaarr--11999999))
        * As of this release you must have zzlliibb installed before you can build
        Aegis.

        * There is a new _r_e_u_s_e___c_h_a_n_g_e___n_u_m_b_e_r_s project attribute, letting you
        control whether _a_e_n_c fills in holes in the change number sequence.
        Defaults to true if not set.  See _a_e_p_a_t_t_r(5) for more information.

        * There is a new _i_n_t_e_g_r_a_t_e___b_e_g_i_n___e_x_c_e_p_t_i_o_n_s field in the project
        _c_o_n_f_i_g file.  This permits the user to specify file to be omitted when
        the integration directory copy/link is performed.

        * The _a_e_t(1) command has been changed so that it does not exit with an
        error if you have a test exemption but no tests.  This is no longer an
        error.

        * There is a new _a_e_d_i_s_t(1) command, which may be used to send and
        receive Aegis change sets via e-mail and the web.

        * The _a_e_c_l_o_n_e(1), _a_e_n_b_r(1), _a_e_n_c(1) commands now accept a --oouuttppuutt
        option, a file to contain the automatically generated change number.
        This greatly assists in writing scripts.  See the man pages for more
        information.

        * The _a_e_n_t(1) command now accepts a --oouuttppuutt option, a file to contain
        the automatically generated file name.  See the man pages for more
        information.

        * There is a new _c_o_m_p_r_e_s___d_a_t_a_b_a_s_e field in the project attributes,
        allowing the Aegis database to be stored in a compressed form (using
        the GNU Zip algorthm).  Unless you have an exceptionally large
        project, coupled with fast CPUs and high network latency, there is
        probably very little benefit in using this feature.  (The database is
        usually less than 5% of the size of the repository.)  On slow
        networks, however, this can sometimes improve the preformance of file-
        related commands.

   VVeerrssiioonn 33..99 ((77--FFeebb--11999999))
        * A bug in the merge command has been fixed.  It no longer deletes all
        of your change source files if one of the merge commands fails.

        * There is a new _t_k_a_e_g_i_s command, using Tk/Tcl to give Aegis a GUI.
        Contributed by Graham Wheeler <gram@cdsec.com>.  Please report _t_k_a_e_g_i_s
        bugs and suggestions to Graham.

        * The integrate pass command has been enhanced to cope with RCS and
        SCCS expanding keywords in source files (modifying the repository) on
        check-in.  This can be ignored, or a warning can be issued, or it can
        be a fatal error (this is the default).  See _a_e_i_p_a_s_s(1) for more
        information.

        * The worked example in the User Guide has (finally!)  been updated to
        use the new branch numbering.  Numerous spelling errors have been
        corrected.

        * The developer section of the worked example chapter now also
        includes discussion of some common questions raised by folks
        evaluating Aegis.  It covers insulating development directories from
        the baseline, partial check-in and collaboration.

        * The _a_e_s_u_b(5) man page now brings attention to the fact that the
        ${Copyright_Years} substitution contains spaces.  You often need to
        quote it.

        * The man pages which mention filename limitations, now also note that
        where underlying file-system has stricter filename length limitations
        than the _f_i_l_e_n_a_m_e___m_a_x_i_m_u_m___l_e_n_g_t_h field in the project _c_o_n_f_i_g file, the
        file-system wins.  Mention of this is now also present in _a_e_d_b(1),
        _e_t_c; Linux UMSDOS is highlighted as problematic.

        * Aegis can now collect code metrics.  See _a_e_b(1) and _a_e_i_p_a_s_s(1) for
        more information.

        * There are three new report functions available: _q_u_o_t_e___u_r_l,
        _q_u_o_t_e___h_t_m_l and _u_n_q_u_o_t_e___u_r_l.  These are all for use when creating Aegis
        reports for the CGI interface.  See _a_e_r(5) for more information.

        * There are several new substitutions available.  These include subst,
        trim_extension, trim_directory, and trim_filename.  See _a_e_s_u_b(5) for
        more information.

        * The integrate_q.sh script now works correctly for branches.

        * Numerous configure, make and install problems have been fixed for a
        variety of portability targets.

        * The RPM spec file has been corrected to use appropriate file
        attributes.

   VVeerrssiioonn 33..88 ((11--OOcctt--11999988))
        * Some users were unable to build the previous release, due to
        inconsistent wide character support by the various UNIX vendors.  This
        has now been fixed.

        * There are two new substitutions, _t_r_i_m___d_i_r_e_c_t_o_r_y and _t_r_i_m___e_x_t_e_n_s_i_o_n,
        which are useful for constructing file templates.  These can be very
        useful in constructing skeletons of C++ classes.

        * Some changes have been made to pathname handling to better cope with
        automounters.  See _a_e_g_i_s(1) for more information (see discussion of
        the AEGIS_AUTOMOUNT_POINTS environment variable).  This assumes that
        paths below the automounter's mount directory are echoes of paths
        without it (_e_._g_. /home is the trigger, and /tmp_mnt/home is where the
        NFS mount is performed, with /home appearing to be a symlink).

   VVeerrssiioonn 33..77 ((2222--SSeepp--11999988))
        * The _a_e_i_f_a_i_l(1) and _a_e_r_f_a_i_l(1) commands now have a new --reason
        option, to specify the failure reason on the command line, rather than
        in a file.

        * Some file operations are now faster.  Mostly, this applies to
        operations which mention many files, and to projects with large
        numbers of files.  Smaller projects may not notice any improvement.

        * There is a new ----ddeellttaa--ddaattee option to the _a_e_c_p(1) command, allowing
        deltas to be extracted by date.  This change also had the side-effect
        of making extraction by delta number more accurate on branches.

        * There is a new ----bbaassee--rreellaattiivvee option to most of the file
        manipulation commands, _a_e_c_p(1), _a_e_n_f(1), _e_t_c.  This option may be used
        to specify that relative filenames are relative to the base of the
        source tree, rather than the current directory.  There is also a
        related user preference, see _a_e_u_c_o_n_f(5) for more information.

        * There is a new ``aeclean'' command.  It can be used to clean your
        development directories of non-source files.  See _a_e_c_l_e_a_n(1) for more
        information.

        * The _a_e_b(1) command now passes through arguments of the form
        _n_a_m_e==_v_a_l_u_e, on the assumption that these are variable assignments for
        th ebuild tool.  Previously, they were ``resolved'' as if they were
        file names.

        * A serious bug in the error and interrupt handling has been fixed.
        This bug would sometimes case Aegis to hang, and eventually run out of
        stack, when the user attempted to interrupt Aegis using ^C.

   VVeerrssiioonn 33..66 ((55--JJuull--11999988))
        * The _d_i_f_f_3___c_o_m_m_a_n_d field of the project _c_o_n_f_i_g file has been replaced
        by a _m_e_r_g_e___c_o_m_m_a_n_d field.  It works exactly the same way, but Aegis
        moves the files around first, so that the output replaces the change
        source file.  This results in fewer ``lost'' merges.  Those of you who
        have been hacking the _d_i_f_f_3___c_o_m_m_a_n_d to move the files around will need
        to take the moves oouutt when you rename the _d_i_f_f_3___c_o_m_m_a_n_d field to be
        the new _m_e_r_g_e___c_o_m_m_a_n_d field.

        * The columnizing functions used by the report generator and the
        listings has been enhanced to understand international character sets.
        This allows native character sets to be used in comments and
        descriptions, without getting gibberish (C escapes) in the output.

        * There is a new _s_h_e_l_l___s_a_f_e___f_i_l_e_n_a_m_e_s field in the project _c_o_n_f_i_g
        file.  This field controls whether filenames are required to be free
        of shell special characters.  This field defaults to true if not set,
        so if you are using any ``interesting'' filenames, you may need to
        explicitly set this field to false.  (You still can't use spaces or
        international characters in filenames.)

        * There is a new ${quote} substitution for insulating shell special
        characters in filenames in the commands in the project _c_o_n_f_i_g file.

        * A number of bugs relating to environment variables have been
        corrected; this will make the aereport and aefind commands behave more
        consistently, with respect to the aegis command.

        * A bug has been fixed which caused the final newline of new test
        files to be omitted.

        * A bug which prevented the ``aeb -minimum'' option from working in
        any non-trivial case has been fixed.

   VVeerrssiioonn 33..55 ((2288--MMaayy--11999988))
        * A bug was fixed in the lock waiting code.  Aegis will now correctly
        wait for locks when there are several users blocking on the same lock.

   VVeerrssiioonn 33..44 ((2222--MMaayy--11999988))
        * There is a new ``aegis -clone'' command, used to replicate changes
        across branches.  See _a_e_c_l_o_n_e(1) for more information.

        * There is a new ``-No-Wait'' command line option, which asks for a
        fatal error if a lock cannot be obtained immediately; this applies to
        all commands which takes locks.  See _a_e_u_c_o_n_f_(_5_) _f_o_r _m_o_r_e _i_n_f_o_r_m_a_t_i_o_n_.

   VVeerrssiioonn 33..33 ((44--AApprr--11999988))
        This release is a bug fix release, and mostly install and portability
        bug, at that.

        * The problem with _e_r_r_n_o defines messing up _g_l_u_e_._c has been fixed.

        * Numerous fixes to the wide character support, to cope with the
        vagueries of wide character support on many platforms.

        * The problem with the LINES and COLS environment variables messing up
        testing have been fixed.  Some tests gave false negatives because of
        this.

        * There is a new _a_e_b _-_m_i_n_i_m_u_m option, for use with symbolic links,
        only, which has a minimal set of source file links, rather than
        everything in the baseline.

   VVeerrssiioonn 33..22 ((2222--MMaarr--11999988))
        * There are some additional reports available via the web interface.
        They are mainly to extract error causes and trends from the project
        history statistics.

        * There have been a number of minor bug fixes concerning the handling
        of old 2.3 projects.  This should ease transition for users with
        existing 2.3 projects.

        * A bug in aecp -delta has been fixed, where Aegis was trying to find
        change state files one branch level too high.

        * There is now a re-try performed when a stale NFS file handle error
        is detected.  This should make it easier for some sites which are
        heavily networked.

        * There have been some improvements to the way Control-C is handled.
        It should be more responsive when waiting for locks.

        * Project administrators may now end development of a branch.  Since
        branches can endure for months or years, the orginal branch creator
        may have moved on.  This copes with this situation.

   VVeerrssiioonn 33..11 ((1155--JJaann--11999988))
        Version 3.0 was not used by many sites.  It was available as beta
        software for about a year, in numerous incarnations.  Version 3.1 is
        the first completely stable version since adding full branching
        support.

   VVeerrssiioonn 33..00
        Version 3.0 is fully backwards compatible with earlier versions,
        however once a project has been used under 3.0, it will not be
        possible to revert, e.g. to version 2.3, without restoring the
        project's ``info'' directory from backup.  While this was generally
        true of previous releases, any additional state information was
        usually undo-able with _v_i(1).  This time the process is much more
        involved because the project state files and the change state files
        have been combined as a necessary step in implementing branches.

   VVeerrssiioonn 33..00 MMaajjoorr NNeeww FFeeaattuurreess
        * Aegis now has a feature known in the literature as long
        transactions, also known as branches.  This allows appropriately
        created changes to be treated as if they were projects, and thus to
        have changes made to them.  This allows a hierachy of changes within
        changes, to any desired depth.  See the _B_r_a_n_c_h_i_n_g chapter of the _A_e_g_i_s
        _U_s_e_r _G_u_i_d_e for more information.

        * The project state files have been merged with the change state
        files.  This is part of the implementation of branching.  If you have
        written your own reports, you may need to alter them slightly.  For
        example, in version 2.3 and earlier, reports accessed the project
        state file using
                auto p, ps;
                p = project[project_name()];
                ps = p.state;
        Because the project state has been moved into a change state, the
        _s_t_a_t_e field above now points at a change state description, and most
        of the old project information is contained in the _b_r_a_n_c_h field within
        it.  Reports access this information as
                auto p, ps;
                p = project[project_name()];
                ps = p.state.branch;
        Except for files, which were already present in the _c_s_t_a_t_e, so access
        to the project file list need not change.  See the new _a_e_c_s_t_a_t_e(5) for
        more information.

        * The new project command now creates branches to match the version
        number specified.  See _a_e_n_p_r(1) for more information.

        * The error messages of Aegis have been internationalized.  This
        affects how you build Aegis, and the environment Aegis runs in.  See
        the _B_U_I_L_D_I_N_G file for more information.  The _c_s_h_r_c and _p_r_o_f_i_l_e shipped
        with this release set the LANG environment variable to ``en'' (for
        English) if you have not set it; otherwise ther error messages would
        be terse and uninformative.

        * The _a_e_t _(_1_) command can now suggest tests to be run.  This is done
        by correlating the source files and test files from each change.  See
        _a_e_t(1) for more information.

        * There is now an _a_e_r_e_p_o_r_t(1) command.  The separates out the report
        functionality from the main body of the Aegis code, allowing the
        report generator to be used in places where more trust is required.

        * There is an intranet Web interface, which is installed automaticly
        when the install script discovers a web server.  This interface allows
        browsing of much of the Aegis meta-data, of all publicly accessible
        projects.

        * There is now an _a_e_f_i_n_d(1) command.  This is very similar to the UNIX
        _f_i_n_d(1) command, except that it finds in the unified directory stack
        of a change and its project.  The introduction of full branch support
        can sometimes mean that finding a file may require looking in more
        than two directories; the _a_e_f_i_n_d(1) command makes this simple again.

   VVeerrssiioonn 33..00 MMiinnoorr NNeeww FFeeaattuurreess
        * There is now a -No_Pager option, to prevent listings and help from
        being redirected to a pager.  There is also a user preference to more
        thoroughly disable paging, and a -PAGer option to override it.  See
        _a_e_g_i_s(1) and _a_e_u_c_o_n_f(5) for more information.

        * There is now a -No_PErsevere option to _a_e_t(1), allowing you to
        request that _a_e_t(1) stop after the first test failure.  There is also
        a user preference to set this permanently if desired, and a -PErsever
        option to override it.  See _a_e_t(1) and _a_e_u_c_o_n_f(5) for more
        information.

        * The copyright years attribute has been moved from being a project
        attribute to a change attribute.  This is consistent with a number of
        other fields which have transparently moved from the project state
        files into the change state files, as a result of branching support.
        See _a_e_c_a(1) and _a_e_c_a_t_t_r(5) for more information.

        * There is a new _S_e_a_r_c_h___P_a_t_h substitution, to support builds on
        branches.  See _a_e_s_u_b(5) for more information.  As a side effect, you
        can also use it in the _t_e_s_t___c_o_m_m_a_n_d field of the project _c_o_n_f_i_g file,
        and thus have a search path to look down for data files for your
        tests.

        * Test times are now remembered, so that tests are only run if they
        need to be.  This allows you to keep working on a test, and Aegis only
        runs those that have not yet passed.

        * Aegis now uses ``fingerprints'' to tell if files have changed,
        rather than simply relying on file modification time stamps.  While
        this makes Aegis more robust, there is one caveat: it is recommended
        that 3.0 be installed when there are no changes in the 'being
        reviewed' or 'awaiting integration' states, in any project.

        * There is now a log file prefernces control, allowing users to set
        their preferred logging behaviour.  See _a_e_u_c_o_n_f(5) for more
        information.

        * It is now possible to specify the filename for new tests on the
        command line.  See _a_e_n_t(1) for more information.

        * It is not possible to specify a pattern for test filesnames.  See
        _a_e_p_c_o_n_f(5) for more information.

        * There is now a --MMAAXXiimmuumm option to the _a_e_i_b command, allowing you to
        keep obsolete derived files at integrate begin.  This can avoid long
        integration build times for large projects.

   VVeerrssiioonn 33..00 BBuugg FFiixxeess
        * Architecture names are now checked a `develop end' time, to ensure
        there are no unknown variants.  This fixes the mysterious ``you must
        build again'' problem.

        * The _a_e_c_p(1) and _a_e_d(1) commands now take a baseline read lock, to be
        more symetric with the _a_e_b(1) command which has always done so.  The
        _a_e_i_p_a_s_s(1) command takes the complementary baseline write lock,
        ensuring the the baseline remains constant for the duration of builds,
        file copies, differences and merges.  The manual entries for these
        commands have all been improved to document this behaviour.  See
        _a_e_b(1), _a_e_c_p(1), _a_e_d(1) and _a_e_i_p_a_s_s(1) for more information.

        * There are now some reminder scripts in the library, which can be run
        from _c_r_o_n_t_a_b(1).  These are installed into the _/_r_e_m_i_n_d directory.
        These scripts can be used to remind users of changes in various
        states, such as those being developed or being reviewed.

        * All of the commands which accept the _-_E_d_i_t option now also accept a
        _-_E_d_i_t___B_a_c_k_G_r_o_u_n_d option, allowing edit commands to be piped in from
        the standard input.

        * The _a_e_c_p(1) command now accepts a _-_I_N_D_e_p_e_n_d_e_n_t option, allowing
        files to be copied independent of any change (similar to the
        _-_I_N_D_e_p_e_n_d_e_n_t option of the command.)  See _a_e_c_p(1) for more
        information.

        * The _a_e_c_p(1) command now accepts a _-_R_e_a_d___O_n_l_y option, allowing files
        to be copied into a change specifically to insulate it from baseline
        changes.  Such files must be uncopied before development may end.  See
        _a_e_c_p(1) for more information.

        * The _a_e_n_r_l_s(1) command is now used _o_n_l_y to convert pre-3.0 projects
        into post-3.0 projects.  This is because the full branching support in
        3.0 makes it more useful to create a new release of a project by
        ending development on the branch of the previous release and starting
        development of a new branch numbered for the new release.  See the
        _B_r_a_n_c_h_i_n_g chapter of the _U_s_e_r _G_u_i_d_e for more information.

   VVeerrssiioonn 22..33
        * The merging behaviour of the _a_e_d(1) command has changed.  If any
        files require merging, it only merges.  In this way, merged files are
        not lost in the rest of the output.  Also, there are now command line
        options and user preferences so that you can select to only merge or
        only difference.  See _a_e_d(1) and _a_e_u_c_o_n_f(5) for more nformation.

        * It is now possible to assign symbolic names to project deltas.  This
        means that you may now recreate earlier project baselines by name.

        * All commands which accept a --EEddiitt option now check for most errors
        before commencing the edit.  This avoids wasted edits in many error
        cases.

        * Fuzzy file name matches are now used to improve the error messages
        from aecp, aerm, etc.

        * Version number separators in project names are preserved across new
        releases.  Particularly, you can use a minus ('-') between the name
        and the major version number.

        * A new ``copyright_years'' project attribute has been added.  This is
        a list of years maintained at integrate begin time, to automate the
        insertion of list of copyright years into copyright messages and
        documentation.  There is a new ${Copyright_Years} substitution and the
        copyright years are also listed in the ``aegis -list version''
        listing.  See _a_e_s_u_b(5) and _a_e_l(1) for more information.

        * It is now possible to specify patterns for acceptable and
        unacceptable filenames in the project _c_o_n_f_i_g file.  See _a_e_p_c_o_n_f(5) for
        more information.

        * Four more functions have been added to the report language: _l_e_n_g_t_h,
        _s_p_l_i_t, _s_u_b_s_t_r and _w_r_a_p.  See _a_e_r(5) for more information.

        * The tests distributed with  are now more stable on very fast hosts.
        See the environment variables section of _a_e_b(1) for more information.

        * The _l_i_b_/_c_o_n_f_i_g_._e_x_a_m_p_l_e directory of the distribution now contains
        files with example portions of the project _c_o_n_f_i_g file.  May thanks to
        David R Shue <shue@ll.mit.edu> for this suggestion.

        Changes made in the previous release included:

   VVeerrssiioonn 22..22
        This release of Aegis provides 3 of the most commonly requested
        features: support for heterogeneous development, support for a greater
        range of DMTs, support for user-defined reports.

        * Aegis now supports heterogeneous development.  Now you can be sure
        that your project not only always builds and tests sucessfully, but
        that it does so across a configurable set of system or hardware
        architectures.  See the _H_e_t_e_r_o_g_e_n_e_o_u_s _D_e_v_e_l_o_p_m_e_n_t secion of the _T_i_p_s
        _a_n_d _T_r_a_p_s chapter of the User Guide for more information.

        * Aegis can now cope with a wider range of Dependency Maintenance
        Tools (DMTs).  It now has the ability to fill development directories
        with symbolic links to all files in the baseline which are not present
        in the development directory.  This allows DMTs to assume all files
        are present below the current directory, allowing DMTs such as _c_a_k_e
        and _G_N_U _M_a_k_e to be used.  See the _D_e_p_e_n_d_e_n_c_y _M_a_i_n_t_e_n_a_n_c_e _T_o_o_l section
        of the User Guide and _a_e_b(1) for more information.

        * Aegis now has a report generator, so you can create your own
        reports.  Many "canned" reports are included in this distribution; of
        particular interest to many will be the _F_i_l_e___A_c_t_i_v_i_t_y report, which
        details currently active files.  See _a_e_r(1) for more information.

        * Aegis is now configured using a shell script called _c_o_n_f_i_g_u_r_e,
        distributed with the package.  This shell script is generated using
        GNU Autoconf.  See the _B_U_I_L_D_I_N_G file for more information.

        * The _A_E_G_I_S environment variable has been renamed _A_E_G_I_S___P_A_T_H, to bring
        it in line with the AEGIS_PROJECT and AEGIS_CHANGE environment
        variable names.  The old name will keep working for some time, but
        aegis will warn you.

        * Filename lengths are now configurable.  The 14 character portability
        limit is still the default, but a higher limit is configurable for
        each project, up to the filesystem filename limit.  See _a_e_p_c_o_n_f(5) for
        more information.

        * It is now possible to specify that filenames must be within the
        minimum character set mandated by POSIX.  The default is as before, to
        allow any printing character.  See _a_e_p_c_o_n_f(5) for more information.

        * Limits on the length of project names have been relaxed.  Project
        names are now only limited by the filesystem filename limit.

        * It is now possible to specify the command to run tests, allowing a
        project to use a specialized test facility, rather than be forced to
        use shell scripts.  See _a_e_t(1) and for more information.

        * The commands which accept the _-_E_d_i_t now preserve the edited text in
        the event of a failure.

        * The commands which delete files now accept a _-_I_n_t_e_r_a_c_t_i_v_e option,
        which causes them to prompt the user for confirmation of file
        deletion.  This can be made the default by an appropriate setting of
        the aliases or individual users preferences files.  See _a_e_n_f_u(1),
        _a_e_n_t_u(1), _a_e_c_p_u(1), and _a_e_u_c_o_n_f(5) for more information.

        * The _a_e_c_p(1) command now accepts directory names, allowing whole
        directory trees to be copied into a change.  The _a_e_c_p_u(1) command now
        has a --UUNNCChhaannggeedd option which allows the unchanged files to be
        uncopied.

        * The _a_e_b command now accepts file names, allowing partial builds to
        be performed.  See _a_e_b(1) for more information.

        * There is a new _a_e_c_h_o_w_n(1) command to facilitate reassigning the
        developer of a change which is in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.

        * It is now possible for project administrators to assign changes to
        specific developers.  See _a_e_d_b(1) for more information.

   VVeerrssiioonn 22..11
        * Can now ask for history to maintained for file generated by the
        build.  This is useful for generating patch files.

   VVeerrssiioonn 22..00
        * A new command has been added to facilitate changing the name of a
        file as part of a change.  See _a_e_m_v(1) for more information.

        * It is now possible to list the locks currently held.  See _a_e_l(1) for
        more information.

        * If no other defaulting mechanism is specified, aegis will now
        attempt to guess the project name and change number from the pathname
        of the current directory.  This only works from within development
        directories.

        * The _a_e_n_c, _a_e_c_a, _a_e_r_f_a_i_l, _a_e_i_f_a_i_l and _a_e_p_a commands now accept a
        --EEddiitt command line argument.  See the relevant manual pages for more
        information.

        * The _a_e_n_p_r command now understands the --MMAAJJoorr and --MMIINNOOrr options,
        allowing the initial version of a project to be something other than
        1.0.

        * The _a_e_d command now understands the --AANNttiicciippaattee option.  See _a_e_d(1)
        for more information.

        * It is now possible to list all the outstanding changes of a project,
        or of all projects.  See _a_e_l(1) for more information.

   VVeerrssiioonn 11..44
        * Support has been added for systems without the _s_e_t_e_u_i_d system call,
        or those with crippled implementations.

        * Most of the unimplemented command variants have been finished.
        These include _N_e_w _C_h_a_n_g_e _U_n_d_o, _D_e_v_e_l_o_p _B_e_g_i_n _U_n_d_o and _R_e_M_o_v_e _P_R_o_j_e_c_t.
        Most notable of the exceptions is _-_A_N_t_i_c_i_p_a_t_e option for the
        _-_C_o_P_y___f_i_l_e and _-_D_I_F_F_e_r_e_n_c_e command.

        * The User Guide has been added to, making it a little more complete.
        It still needs more work, sigh.

        * The code to handle automounters has been made more robust.

        * The command substitutions have been vastly improved, and are now
Build(Aegis)                                                      Build(Aegis)



        documented.

NNAAMMEE
        aegis - project change supervisor
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

        The _a_e_g_i_s program is distributed under the terms of the GNU General
        Public License.  See the LICENSE section, below, for more details.

        aaeeggiiss (ee.j.iz) _n_._, a protection, a defence.

SSPPAACCEE RREEQQUUIIRREEMMEENNTTSS
        You will need up to 15MB to unpack and build the _a_e_g_i_s program.  (This
        is the worst case seen so far, most systems have binaries about 60% as
        big as this, 10MB is more typical.)  Your mileage may vary.

SSIITTEE CCOONNFFIIGGUURRAATTIIOONN
        The aaeeggiiss package is configured using the _c_o_n_f_i_g_u_r_e shell script
        included in this distribution.

        The _c_o_n_f_i_g_u_r_e shell script attempts to guess correct values for
        various system-dependent variables used during compilation, and
        creates the _M_a_k_e_f_i_l_e and _c_o_m_m_o_n_/_c_o_n_f_i_g_._h files.  It also creates a
        shell script _c_o_n_f_i_g_._s_t_a_t_u_s that you can run in the future to recreate
        the current configuration.

   UUppggrraaddiinngg
        The ./configure script will look for an existing install of Aegis and
        use the existing configuration settings.  This works best if the
        version you are upgrading is 4.11 or later.

        To disable looking for an existing installation (maybe because you
        want to change the prefix), use the ./configure --with-no-aegis-
        configured option.

   BBeeffoorree YYoouu SSttaarrtt
        Before you start configuring, it is worth reading the _O_T_H_E_R _U_S_E_F_U_L
        _S_O_F_T_W_A_R_E section, below.

        The _c_o_n_f_i_g_u_r_e script checks for the internationalization library and
        functions.  If your system does not have them, it is worth fetching
        and installing GGNNUU GGeetttteexxtt before you run the _c_o_n_f_i_g_u_r_e script.  Make
        sure that the _m_s_g_f_m_t command from GNU Gettext appears earlier in your
        command search PATH than the existing system ones, if any (this is
        very important for SunOS and Solaris).  You must do the GNU gettext
        install _b_e_f_o_r_e running the _c_o_n_f_i_g_u_r_e script, or the error messages,
        even for English speakers, will be terse and uninformative.  Remember
        to use the GNU gettext configure _-_-_w_i_t_h_-_g_n_u_-_g_e_t_t_e_x_t option if your
        system has native gettext tools.

        The _c_o_n_f_i_g_u_r_e script checks for the compression library and functions.
        If your system does not have them, it is worth fetching and installing
        GGNNUU zzlliibb compression library before you run the _c_o_n_f_i_g_u_r_e script.
        (See http://www.gzip.org/zlib/ for download.)  This is essential,
        becaise Aegis will not build.  without it.  (NNoottee:: tthhiiss iiss nnoott tthhee
        ssaammee tthhiinngg aass zlibcc wwhhiicchh ddooeess ssoommeetthhiinngg ccoommpplleetteellyy ddiiffffeerreenntt..))

        The _c_o_n_f_i_g_u_r_e script checks for the regular expression library and
        functions.  If your system does not have them, it is worth fetching
        and installing GGNNUU rrxx compression library before you run the _c_o_n_f_i_g_u_r_e
        script.  (Note: test 81 will fail if the POSIX regular expression
        functions are not available.)

   RRuunnnniinngg CCoonnffiigguurree
        Normally, you just _c_d to the directory containing _a_e_g_i_s' source code
        and type
                % ..//ccoonnffiigguurree
                _._._._l_o_t_s _o_f _o_u_t_p_u_t_._._.
                %
        If you're using _c_s_h on an old version of System V, you might need to
        type
                % sshh ccoonnffiigguurree
                _._._._l_o_t_s _o_f _o_u_t_p_u_t_._._.
                %
        instead to prevent _c_s_h from trying to execute _c_o_n_f_i_g_u_r_e itself.

        Running _c_o_n_f_i_g_u_r_e takes a minute or two.  While it is running, it
        prints some messages that tell what it is doing.  If you don't want to
        see the messages, run _c_o_n_f_i_g_u_r_e with its standard output redirected to
        _/_d_e_v_/_n_u_l_l; for example,
                % ./configure --quiet
                %

        There is a known problem with GCC 2.8.3 and HP/UX.  You will need to
        set CFLAGS = -O in the generated Makefile.  (The configure script sets
        it to CFLAGS = -O2.)  This is because the code optimization breaks the
        fingerprints.  If test 32 fails (see below) this is probably the
        reason.

        There is a known problem with IRIX builds.  You need to use the
        following configuration
                # systune ncargs 0x8000
        to increase the length of command lines.

        By default, _c_o_n_f_i_g_u_r_e will arrange for the _m_a_k_e _i_n_s_t_a_l_l command to
        install the aaeeggiiss package's files in _/_u_s_r_/_l_o_c_a_l_/_b_i_n,
        _/_u_s_r_/_l_o_c_a_l_/_c_o_m_/_a_e_g_i_s, _/_u_s_r_/_l_o_c_a_l_/_l_i_b_/_a_e_g_i_s, _/_u_s_r_/_l_o_c_a_l_/_m_a_n and
        _/_u_s_r_/_l_o_c_a_l_/_s_h_a_r_e_/_a_e_g_i_s.  There are a number of options which allow you
        to control the placement of these files.

        --prefix=_P_A_T_H
                This specifies the path prefix to be used in the installation.
                Defaults to _/_u_s_r_/_l_o_c_a_l unless otherwise specified.  The rest
                of these building instructions assume you are using the
                default _/_u_s_r_/_l_o_c_a_l as the install prefix.

        --exec-prefix=_P_A_T_H
                You can specify separate installation prefixes for
                architecture-specific files and architecture-independent
                files.  Defaults to _$_{_p_r_e_f_i_x_} unless otherwise specified.

        --bindir=_P_A_T_H
                This directory contains executable programs.  On a network,
                this directory may be shared between machines with identical
                hardware and operating systems; it may be mounted read-only.
                Defaults to _$_{_e_x_e_c___p_r_e_f_i_x_}_/_b_i_n unless otherwise specified.

        --datadir=_P_A_T_H
                This directory contains installed data, such as the
                documentation, reports and shell scripts distributed with
                Aegis.  On a network, this directory may be shared between all
                machines; it may be mounted read-only.  Defaults to
                _$_{_p_r_e_f_i_x_}_/_s_h_a_r_e_/_a_e_g_i_s unless otherwise specified.  An
                ``aegis'' directory will be appended if there is none in the
                specified path.

        --libdir=_P_A_T_H
                This directory contains installed data, such as the error
                message catalogues.  On a network, this directory may be
                shared between machines with identical hardware and operating
                systems; it may be mounted read-only.  Defaults to
                _$_{_e_x_e_c___p_r_e_f_i_x_}_/_l_i_b_/_a_e_g_i_s unless otherwise specified.  An
                ``aegis'' directory will be appended if there is none in the
                specified path.

        --mandir=_P_A_T_H
                This directory contains the on-line manual entries.  On a
                network, this directory may be shared between all machines; it
                may be mounted read-only.  Defaults to _$_{_p_r_e_f_i_x_}_/_m_a_n unless
                otherwise specified.

        --sharedstatedir=_P_A_T_H
                This directory contains share state information, such as the
                Aegis lock file, and information on the location of the
                various Aegis projects.  On a network, this directory may be
                shared between all machines; it MUST be mounted READ-WRITE.
                Defaults to _$_{_p_r_e_f_i_x_}_/_c_o_m_/_a_e_g_i_s unless otherwise specified.
                An ``aegis'' directory will be appended if there is none in
                the specified path.

        _c_o_n_f_i_g_u_r_e ignores any other arguments that you give it.

        On systems that require unusual options for compilation or linking
        that the _a_e_g_i_s package's _c_o_n_f_i_g_u_r_e script does not know about, you can
        give _c_o_n_f_i_g_u_r_e initial values for variables by setting them in the
        environment.  In Bourne-compatible shells, you can do that on the
        command line like this:
                $ CCCC==''ggcccc --ttrraaddiittiioonnaall'' LLIIBBSS==--llppoossiixx ..//ccoonnffiigguurree
                _._._._l_o_t_s _o_f _o_u_t_p_u_t_._._.
                $
        Here are the _m_a_k_e variables that you might want to override with
        environment variables when running _c_o_n_f_i_g_u_r_e.

        Variable: CC
                C compiler program.  The default is _c_c.

        Variable: INSTALL
                Program to use to install files.  The default is _i_n_s_t_a_l_l if
                you have it, _c_p otherwise.

        Variable: LIBS
                Libraries to link with, in the form -l_f_o_o -l_b_a_r.  The
                _c_o_n_f_i_g_u_r_e script will append to this, rather than replace it.

        If you need to do unusual things to compile the package, the author
        encourages you to figure out how _c_o_n_f_i_g_u_r_e could check whether to do
        them, and mail diffs or instructions to the author so that they can be
        included in the next release.

   CCoommmmoonn PPrroobblleemm
        It is very common that other packages, such as _g_e_t_t_e_x_t, _r_x and _z_l_i_b
        are installed using _/_u_s_r_/_l_o_c_a_l as the prefix.  However, the configure
        script can't work this out, even when it, too, is using _/_u_s_r_/_l_o_c_a_l as
        the prefix.

        To cope with this, you need to say
                $ CCPPPPFFLLAAGGSS==--II//uussrr//llooccaall//iinncclluuddee LLDDFFLLAAGGSS==--LL//uussrr//llooccaall//lliibb ..//ccoonnffiigguurree
                _._._._l_o_t_s _o_f _o_u_t_p_u_t_._._.
                $
        when running configure.  Substitute the appropriate prefix if you are
        using something other than the default _/_u_s_r_/_l_o_c_a_l prefix.  Watch the
        output... it should now find your installed packages correctly.

   AAIIXX CCoommmmaanndd LLiinnee LLeennggtthhss
        For some reason, AIX has a very short command line length limit by
        default.  You can extend this by using the command
                $ ssyyssttuunnee nnccaarrggss 00xx88000000
                $
        You will need to do this to build Aegis.  It has some very long link
        lines.

   PPRRIIVVIILLEEGGEESS
        There are a number of items in the generated _M_a_k_e_f_i_l_e and
        _c_o_m_m_o_n_/_c_o_n_f_i_g_._h file which affect the way _a_e_g_i_s works.  If they are
        altered too far, _a_e_g_i_s will not be able to function correctly.

        AEGIS_MIN_UID
                This specifies the minimum unprivileged uid on your system.
                UIDs less than this may not own projects, or play any other
                role in an aegis project.  The default value is 100.

        AEGIS_MIN_GID
                This specifies the minimum unprivileged GID on your system.
                GIDs less than this may not own projects, or play any other
                role in an aegis project.  The default value is 10.

        AEGIS_USER_UID
                This is the owner of files used by _a_e_g_i_s to record pointers to
                your projects.  It is _n_o_t used to own projects (i.e. it must
                be less than AEGIS_MIN_UID).  If possible, the _c_o_n_f_i_g_u_r_e
                script tries to work out what value was used previously, but
                you must specify the --prefix option correctly for this to
                work.  Because of operating system inconsistencies, this is
                specified numerically so that _a_e_g_i_s will work across NFS.  The
                default value is 3.

        AEGIS_USER_GID
                This is the group of files used by _a_e_g_i_s to record pointers to
                your projects.  It is _n_o_t used as the group for projects (i.e.
                it must be less than AEGIS_MIN_GID).  If possible, the
                _c_o_n_f_i_g_u_r_e script tries to work out what value was used
                previously, but you must specify the --prefix option correctly
                for this to work.  Because of operating system
                inconsistencies, this is specified numerically so that _a_e_g_i_s
                will work across NFS.  The default value is 3.

        DEFAULT_UMASK
                When _a_e_g_i_s runs commands for you, or creates files or
                directories for you, it will use the defined project umask.
                This is a project attribute, and may be altered using the
                _a_e_p_a(1) command.  The DEFAULT_UMASK is the umask initially
                given to all new projects created by the _a_e_n_p_r(1) command.
                The default value of DEFAULT_UMASK is 026.  See the comments
                in the _c_o_m_m_o_n_/_c_o_n_f_i_g_._h file for an explanation of the
                alternatives.

        It is required that _a_e_g_i_s run set-uid-root for all of its
        functionality to be available.  It is NOT possible to create an
        "aegis" account and make _a_e_g_i_s run set-uid-aegis.  This is because
        _a_e_g_i_s does things as various different user IDs, sometimes as many as
        3 in the one command.  This allows _a_e_g_i_s to use UNIX security rather
        than inventing its own, and also allows _a_e_g_i_s to work across NFS.  To
        be able to do these things, _a_e_g_i_s must be set-uid-root.  Appendix D of
        the _A_e_g_i_s _U_s_e_r _G_u_i_d_e explains why _a_e_g_i_s must run set-uid-root; please
        read it if you have concerns.

   RReemmeemmbbeerr YYoouurr SSeettttiinnggss
        It is important to remember your configuration settings.  This way, it
        will be a simple matter when it comes time to upgrade Aegis.

BBUUIILLDDIINNGG AAEEGGIISS
        All you should need to do is use the
                % mmaakkee
                _._._._l_o_t_s _o_f _o_u_t_p_u_t_._._.
                %
        command and wait.  When this finishes you should see a directory
        called _b_i_n containing several files: _a_e_g_i_s, _a_e_r_e_p_o_r_t, _a_e_f_i_n_d, _a_e_f_p,
        _f_i_n_d___s_i_z_e_s and _f_m_t_g_e_n.

        aaeeggiiss   The _a_e_g_i_s program is a project change supervisor.

        aaeeffpp    The _a_e_f_p program may be used to ``fingerprint'' files.  It is
                used to test Aegis (see the testing section, below) but it
                isn't installed.

        aereport
                The _a_e_r_e_p_o_r_t program is used to query Aegis' database.

        aefind  The _a_e_f_i_n_d program is used to find files.

        ffiinndd__ssiizzeess
                The _f_i_n_d___s_i_z_e_s program is a utility used to build the _a_e_g_i_s
                package; it is not intended for general use and should not be
                installed.

        ffmmttggeenn  The _f_m_t_g_e_n program is a utility used to build the _a_e_g_i_s
                package; it is not intended for general use and should not be
                installed.

        You can remove the program binaries and object files from the source
        directory by using the
                % mmaakkee cclleeaann
                _._._._l_o_t_s _o_f _o_u_t_p_u_t_._._.
                %
        command.  To remove all of the above files, and also remove the
        _M_a_k_e_f_i_l_e and _c_o_m_m_o_n_/_c_o_n_f_i_g_._h and _c_o_n_f_i_g_._s_t_a_t_u_s files, use the
                % mmaakkee ddiissttcclleeaann
                _._._._l_o_t_s _o_f _o_u_t_p_u_t_._._.
                %
        command.

        The file _a_u_x_/_c_o_n_f_i_g_u_r_e_._i_n is used to create _c_o_n_f_i_g_u_r_e by a GNU program
        called _a_u_t_o_c_o_n_f.  You only need to know this if you want to regenerate
        _c_o_n_f_i_g_u_r_e using a newer version of _a_u_t_o_c_o_n_f.

   UUppggrraaddiinngg
        When upgrading from one release to a newer one, it is important that
        all of the machines on your network are running the same release of
        Aegis.  This minimises the possibility of database incompatibilities.
        In general, Aegis is backwards compatible with earlier releases, but
        not forwards compatible in the face of new capabilities.

OOTTHHEERR UUSSEEFFUULL SSOOFFTTWWAARREE
        Before describing how to test _a_e_g_i_s, you may need to grab some other
        free software, because the tests require it in some cases, and because
        it is generally useful in others.

        ccooookk    This is a dependency maintenance tool (DMT).  An example of a
                well-known DMT is _m_a_k_e(1), however this old faithful is mostly
                not sufficiently capable to meet the demands placed on it by
                the _a_e_g_i_s program, but _c_o_o_k certainly is.  The _c_o_o_k package is
                written by the same author as _a_e_g_i_s.  The _c_o_o_k package is
                necessary if test 11 is to be meaningful.  It is also used in
                the documentation.  The _c_o_o_k program may be found at the same
                archive site as the _a_e_g_i_s program.  The _c_o_o_k program is
                available under the terms of the GNU General Public License.

        GNU diff
                If the _d_i_f_f(1) utility supplied by your flavor of unix does
                not have the --cc option, you will need GNU diff for _a_e_p_a_t_c_h(1)
                to work (and the _a_e_p_a_t_c_h(1) tests to pass).  Context
                differences are also helpful for reviewing changes.  GNU diff
                is essential for Solaris, because the Solaris diff has bugs
                that Aegis' tests uncover.

        RCS     This is a source control package, and is available from any of
                the GNU archives.  The tests use RCS as the history mechanism,
                so it is necessary to have RCS for most of the tests to pass.
                (It is best to compile and install RCS _a_f_t_e_r GNU diff.  This
                is because the RCS configuration hard-codes the pathnames of
                the GNU diff utilities it needs into the RCS executables.)

        GNU Gettext
                Many systems do not yet supply the _g_e_t_t_e_x_t(3) function.  Aegis
                uses this function to internationalize its error messages.  If
                your system does not have this function, you should fetch and
                install GNU Gettext _b_e_f_o_r_e running the _c_o_n_f_i_g_u_r_e script.  If
                you do not, Aegis will still work, but the error messages will
                be rather terse, even for English speakers.  (You will be able
                to tell if your system has the internationalization library
                and functions, because the _c_o_n_f_i_g_u_r_e script will report
                finding -lintl and _(_C_W_l_i_b_i_n_t_l_._h and msgfmt in its running
                commentary.)  Please note that the GNU Gettext implementation
                is likely to be superior to the one supplied with your system,
                if any.  Remember to use the GNU gettext configure _-_-_w_i_t_h_-_g_n_u_-
                _g_e_t_t_e_x_t option if your system has native gettext tools.

                Please note: if you install GNU gettext package into
                _/_u_s_r_/_l_o_c_a_l (for example) you must ensure that the Aegis
                _._/_c_o_n_f_i_g_u_r_e script is told to also look in _/_u_s_r_/_l_o_c_a_l_/_i_n_c_l_u_d_e
                for include files (CFLAGS), and _/_u_s_r_/_l_o_c_a_l_/_l_i_b for library
                files (LDFLAGS).  Otherwise the _._/_c_o_n_f_i_g_u_r_e script will
                incorrectly conclude that GNU Gettext has not been installed.

                GNU Gettext version 0.11.1 or later is recommended.

        GNU Groff
                This GNU software replaces the documentation tools which
                (sometimes) come with UNIX.  They produce superior error
                messages, and support a wider range of functionality and
                fonts.  The _A_e_g_i_s User Guide was prepared with GNU Groff.  You
                need GNU Groff 1.14 or later.

        bison   This GNU software is a replacement for _y_a_c_c(1).  Some systems
                have very sick yaccs, and _b_i_s_o_n may be necessary if your
                system include files disagree strongly with your system's
                yacc.  The generated _M_a_k_e_f_i_l_e will use bison if you have it.

        fhist   This software, available under the terms of the GNU General
                Public License, is a set of file history and comparison
                utilities.  It was originally written by David I. Bell, and is
                based on the minimal difference algorithm by Eugene W. Myers.
                This copy is enhanced and maintained by the same author as
                _A_e_g_i_s, and may be found at the same archive site, in the same
                directory.

        rx      This library provides POSIX regular expressions, for systems
                which don't have them.  (Note: test 81 will fail if the POSIX
                regular expression functions are not available.)

        zlib    This library provides access to the GNU Zip (de)compression
                algorithm(s).  It is essential to have this installed before
                you build Aegis.  The home page may be found at
                http://www.gzip.org/zlib/ if you need to download it.  Note:
                this is not the same as zzlliibbcc which is Linux specific.

        tkdiff  This program shows the difference between two text files,
                nicely highlighted in color.  This is used by the _t_k_a_e_r and
                _a_e_c_o_m_p scripts (and probably others as they are contributed).
                By John M. Klassa, http://www.ede.com/free/tkdiff

        libmagic
                If _l_i_b_m_a_g_i_c(3) is present, the _a_e_g_e_t(1) CGI handler will use
                it to determine the MIME type of files.  This is installed by
                ffiillee version 4.0 and later (ftp://ftp.astron.com/pub/file/),
                and uses the same database as the _f_i_l_e(1) command.  If this
                library is not present when Aegis is built, a much less
                accurate method will be used.

        The tests also depend on the presence of a number of common UNIX
        programs, including but not limited to: _c_c, _c_m_p, _d_i_f_f, eedd, _f_i_n_d, _m_a_k_e,
        the _R_C_S package, etc.  Depending on your version of UNIX, some or all
        of these programs may be in optional packages.  (This is especially
        true of Linux.)  You need to ensure that these programs are correctly
        installed before you run the tests.

TTEESSTTIINNGG AAEEGGIISS
        The _A_e_g_i_s program comes with a test suite.  To run this test suite,
        use the command
                % mmaakkee ssuurree
                _._._._l_o_t_s _o_f _o_u_t_p_u_t_._._.
                Passed All Tests
                %

        The tests take a minute or two each, with a few very fast, and a
        couple very slow, but it varies greatly depending on your CPU.

   KKnnoowwnn PPrroobblleemmss
        The tests assume that the RCS commands "ci", "co", "rlog" and "rcs"
        are somewhere in the command search PATH.

        The _t_e_s_t_/_0_0_/_t_0_0_1_1_a_._s_h file assumes the _c_o_o_k(1) command by the author
        is somewhere in the command search path.  This test reproduces the
        example used in Chapter 3 of the User Guide.  If the _c_o_o_k(1) command
        is not available, this test gives a pass result without testing
        anything.

        If you are using HPUX and GCC, test 32 fails if you use -O2.  You need
        to edit the Makefile to only optimize at -O, delete the objects and
        rebuild.

        If you are using Solaris' diff, test 133 will report ``no result''.
        You need to install GNU diff, because the Solaris diff has bugs.

        If you are using Sun's _t_m_p_f_s file system as your _/_t_m_p directory, the
        tests will fail.  This is because the _t_m_p_f_s file system does not
        support file locking.  Set the _A_E_G_I_S___T_M_P environment variable to
        somewhere else before running the tests.  Something like
                % sseetteennvv AAEEGGIISS__TTMMPP //uussrr//ttmmpp
                %
        is usually sufficient if you are using C shell, or
                $ AAEEGGIISS__TTMMPP==//uussrr//ttmmpp
                $ eexxppoorrtt AAEEGGIISS__TTMMPP
                $
        if you are using Bourne shell.  Remember, this must be done before
        running the tests.

        If the tests fail due to errors complaining of "user too privileged"
        you will need to adjust the _A_E_G_I_S___M_I_N___U_I_D defined in the
        _c_o_m_m_o_n_/_c_o_n_f_i_g_._h file.  Similarly for "group too privileged", although
        this is rarer.  This error message will also occur if you run the
        tests as root: the tests must be run as a mortal each time.

        If the POSIX regular expression functions are not available, test 81
        will fail.  The GNU rx library provides these.  Installing it and re-
        configuring and re-building Aegis will solve the problem.

TTEESSTTIINNGG SSEETT--UUIIDD--RROOOOTT
        If the _A_e_g_i_s program is not set-uid-root then it runs in "test" mode
        which gives you some confidence that _A_e_g_i_s is working before being
        tested again when it is set-uid-root.  Two pass testing like this
        means that you need not trust your system to a set-uid-root program
        which is not known to work.

        You will need to do a little of the install, to create the directory
        which will contain _A_e_g_i_s' lock file.  (Note that these building
        instructions assume you are using the default _/_u_s_r_/_l_o_c_a_l as the
        install prefix.  You will need to substitute as appropriate if you are
        using some other prefix.)
                # mmaakkee iinnssttaallll--lliibbddiirr
                mkdir /usr/local/lib/aegis
                chown 3 /usr/local/lib/aegis
                chgrp 3 /usr/local/lib/aegis
                chmod 0755 /usr/local/lib/aegis
                mkdir /usr/local/com/aegis
                chown 3 /usr/local/com/aegis
                chgrp 3 /usr/local/com/aegis
                chmod 0755 /usr/local/com/aegis
                chown root bin/aegis
                chmod 4755 bin/aegis
                #
        As you can see, the previous command also changed _A_e_g_i_s to be set-uid-
        root.  Once this has been done, _A_e_g_i_s should be tested again, in the
        same manner as before.
                % mmaakkee ssuurree
                _._._._l_o_t_s _o_f _o_u_t_p_u_t_._._.
                Passed All Tests
                %

        You should test _A_e_g_i_s as a mortal in both passes, rather than as root,
        to be sure the set-uid-root functionality is working correctly.

        It is required that _A_e_g_i_s run set-uid-root for all of its
        functionality to be available.  It is NOT possible to create an
        "aegis" account and make _A_e_g_i_s run set-uid-aegis.  This is because
        _A_e_g_i_s does things as various different user IDs, sometimes as many as
        3 in the one command.  This allows _A_e_g_i_s to use UNIX security rather
        than inventing its own, and also allows _A_e_g_i_s to work across NFS.  To
        be able to do these things, _A_e_g_i_s must be set-uid-root.  Appendix D of
        the _A_e_g_i_s _U_s_e_r _G_u_i_d_e explains why _A_e_g_i_s must run set-uid-root; please
        read it if you have concerns.

IINNSSTTAALLLLIINNGG AAEEGGIISS
        As explained in the _S_I_T_E _C_O_N_F_I_G_U_R_A_T_I_O_N section, above, the _A_e_g_i_s
        package is installed under the _/_u_s_r_/_l_o_c_a_l tree by default.  Use the
        --prefix=_P_A_T_H option to _c_o_n_f_i_g_u_r_e if you want some other path.

        All that is required to install the _A_e_g_i_s package is to use the
                % mmaakkee iinnssttaallll
                _._._._l_o_t_s _o_f _o_u_t_p_u_t_._._.
                %
        command.  Control of the directories used may be found in the first
        few lines of the _M_a_k_e_f_i_l_e file if you want to bypass the _c_o_n_f_i_g_u_r_e
        script.

        The above procedure assumes that the _s_o_e_l_i_m(1) command is somewhere in
        the command search _P_A_T_H.  The _s_o_e_l_i_m(1) command is available as part
        of the _G_N_U _G_r_o_f_f package, mentioned below in the _P_R_I_N_T_E_D _M_A_N_U_A_L_S
        section.  If you don't have it, but you do have the _c_o_o_k package, then
        a link from _r_o_f_f_p_p to _s_o_e_l_i_m will also work.

        The above procedure also assumes that the _$_(_p_r_e_f_i_x_)_/_m_a_n_/_m_a_n_1 and
        _$_(_p_r_e_f_i_x_)_/_m_a_n_/_m_a_n_5 directories already exist.  If they do not, you
        will need to _m_k_d_i_r them manually.

UUSSEERR CCOONNFFIIGGUURRAATTIIOONN
        The _A_e_g_i_s command is assumed to be in a generally accessible place,
        otherwise users will need to add the relevant directory to their PATH.
        Users should add
                source /usr/local/lib/aegis/cshrc
        to the end of their _._c_s_h_r_c file for the recommended aliases.  (Note
        that these building instructions assume you are using the default
        _/_u_s_r_/_l_o_c_a_l as the install prefix.  You will need to substitute as
        appropriate if you are using some other prefix.)

        There is also a _p_r_o_f_i_l_e for users of the Bourne shell (it assumes you
        have a version of the Bourne shell which has functions).  Users should
        add
                . /usr/local/share/aegis/profile
        to the end of their _._p_r_o_f_i_l_e file for the recommended aliases.  (This
        _p_r_o_f_i_l_e assumes that users are using a Bourne shell which understands
        functions.)

        The _/_u_s_r_/_l_o_c_a_l_/_c_o_m_/_a_e_g_i_s_/_s_t_a_t_e file contains pointers to "system"
        projects.  Users may add their own project pointers (to their own
        projects) by putting a search path into the _A_E_G_I_S___P_A_T_H environment
        variable.  The system part is always automatically appended by _A_e_g_i_s.
        The default, already set by the _/_u_s_r_/_l_o_c_a_l_/_l_i_b_/_a_e_g_i_s_/_c_s_h_r_c file, is
        _$_H_O_M_E_/_l_i_b_/_a_e_g_i_s.  Do not create this directory, _A_e_g_i_s is finicky and
        wants to do this itself.

        Where projects reside is completely flexible, be they system projects
        or user projects.  They are not kept under the _/_u_s_r_/_l_o_c_a_l_/_c_o_m_/_a_e_g_i_s
        directory, this directory only contains pointers.  (Note that these
        building instructions assume you are using the default _/_u_s_r_/_l_o_c_a_l as
        the install prefix.  You will need to substitute as appropriate if you
        are using some other prefix.)

   WWeebb IInntteerrffaaccee
        If you have a Web server, you may like to install the Aegis web
        interface.  You do this by copying the _a_e_g_i_s_._c_g_i script from
        _/_u_s_r_/_l_o_c_a_l_/_b_i_n_/_a_e_g_i_s_._c_g_i into your web server's _c_g_i_-_b_i_n directory.
        There is a _a_e_g_i_s_._c_g_i_._i helper script, if you don't know where your web
        server's _c_g_i_-_b_i_n directory is.

        You may prefer to use a symbolic link, as this will be more stable
        across Aegis upgrades.  However, this requires a corresponding _f_o_l_l_o_w_-
        _s_y_m_l_i_n_k_s setting in your web server's configuration file.  (Use the
        _a_e_g_i_s_._c_g_i_._i _-_s option.)

        Within the aegis.cgi script, can set the _A_E_G_I_S___P_A_T_H environment
        variable, if you want it to be able to see more projects than just the
        global projects.  You do this by creating a _/_u_s_r_/_l_o_c_a_l_/_l_i_b_/_-
        _a_e_g_i_s_._c_g_i_._c_o_n_f file (there isn't one, by default) and setting the
        _A_E_G_I_S___P_A_T_H environment variable in it.  This is a fragment of Bourne
        shell script, not just the name.

        (Note that these building instructions assume you are using the
        default _/_u_s_r_/_l_o_c_a_l as the install prefix.  You will need to substitute
        as appropriate if you are using some other prefix.)

PPRRIINNTTEEDD MMAANNUUAALLSS
        This distribution contains the sources to all of the documentation for
        _A_e_g_i_s, however the simplest way to get the documentation is by
        anonymous FTP; PostScript files of the User Guide and Reference Manual
        are available from the FTP sites listed in the README file.

        The Reference Manual contains the README and BUILDING files, as well
        as all of the section 1 and section 5 manual pages.  The Reference
        Manual is about 200 pages long.

        The User Guide contains information about how to use Aegis, including
        a fully worked example.  The User Guide is about 100 pages long.

TTIIMMEE SSYYNNCCHHRROONNIIZZAATTIIOONN
        The _A_e_g_i_s program uses time stamps to remember whether various events
        have happened and when.  If you are using _A_e_g_i_s in a networked
        environment, typically a server and data-less workstations, you need
        to make absolutely sure that all of the machines agree about the time.

        If possible, use the time daemon.  Otherwise, use _r_d_a_t_e(8) via _c_r_o_n(8)
        every hour or less.

GGEETTTTIINNGG HHEELLPP
        If you need assistance with _A_e_g_i_s, please do not hesitate to contact
        the author at
                Peter Miller <millerp@canb.auug.org.au>
        Any and all feedback is welcome.

        When reporting problems, please include the version number given by
        the
                % aaeeggiiss --vveerrssiioonn
                aegis version _4_._1_6
                _._._.
                %
        command.  Please run this command to get the exact number, do not send
        the text of this example.

   RRuunnttiimmee CChheecckkiinngg
        In the _c_o_m_m_o_n_/_m_a_i_n_._h file, there is a define of _D_E_B_U_G in comments.  If
        the comments are removed, extensive debugging is turned on.  This
        causes some performance loss, but performs much run-time checking and
        adds the --TTRRAAccee command line option.

        When the --TTRRAAccee command line option is followed by one or more file
        names, it turns on execution traces in those source files.  It is
        usually best to place this on the end of the command line so that
        names of the files to be traced are not confused with other file names
        or strings on the command line.

   PPrroobblleemm RReeppoorrttss
        If you send email to the author, please include the following
        information:

        1. The type of UNIX
                The author will need to know the brand and version of UNIX you
                are using, or if it is not UNIX but something else.  The
                output of "uname -sr" is usually sufficient (but not all
                systems have it).

        2. The Version Number
                In any information you send, please include the version number
                reported in the _c_o_m_m_o_n_/_p_a_t_c_h_l_e_v_e_l_._h file, or `aegis -vers` if
                you can get it to compile.

        3. The Archive Site
                When and where you obtained this version of _A_e_g_i_s.  If you
                tell me nothing else, tell me this (and, hopefully, why you
                did nothing else).

        4. Unpacking
                Did you have problems unpacking _A_e_g_i_s?  This probably isn't a
                problem with the .tar.Z distribution, but you could have
                obtained a shar format copy.

        5. Building
                Did you have problems building _A_e_g_i_s?  This could have been
                the instructions included, it could have been the configure
                script, it could have been the Makefile, or anything else.

        6. Testing, Non-Set-Uid
                Did you have problems with the tests?  You could have had
                problems running them, or some of them could have failed.  If
                some tests fail but not others, please let me know _w_h_i_c_h ones
                failed, and include the fact that _A_e_g_i_s was nnoott set-uid-root
                at the time.  The -k option to _m_a_k_e can be useful if some
                tests fail but not others.

        7. Testing, Set-Uid-Root
                Did you have problems with the tests when _A_e_g_i_s was set-uid-
                root?  You could have had problems running them, or some of
                them could have failed.  If some tests fail but not others,
                please let me know _w_h_i_c_h ones failed, and include the fact
                that _A_e_g_i_s was set-uid-root at the time.

        8. Installation
                Did you have problems installing _A_e_g_i_s?  This could have been
                the instructions, or anything else.

        At this point it would probably be a very good idea to print out the
        manual entries and read them carefully.  You will also want to print a
        copy of the User Guide; if you don't have groff, there should be a
        PostScript copy at the archive site.  It is a known flaw that the User
        Guide is incomplete, contributions are most welcome.

        9. The Example Project
                After reading the User Guide, it is often useful to manually
                run through the example in chapter 3.  You will need to do
                more than one change, hopefully several; the first change is
                not representative of the system.  Did you manually do the
                example?  Did you find flaws in the User Guide or manual
                entries?

        10. Using Aegis
                Did you have problems using _A_e_g_i_s?  This is a whole can of
                worms.  If possible, include a shell script similar to the
                tests which accompany _A_e_g_i_s, which reproduces the bug.  Exit
                code 1 on failure (bug), exit code 0 on success (for when bug
                is fixed).

        11. The Source Code
                Did you read the code?  Did you write some code?  If you read
                the code and found problems, fixed them, or extended _A_e_g_i_s,
                these contributions are most welcome.  I reserve the right to
                modify or reject such contributions.

        The above list is inclusive, not exclusive.  Any and all feedback is
        greatly appreciated, as is the effort and interest required to produce
        it.

LLIICCEENNSSEE
        The _A_e_g_i_s 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.

        The _A_e_g_i_s 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.

        It should be in the _L_I_C_E_N_S_E file included in this distribution.

AAUUTTHHOORR
        Peter Miller   E-Mail:   millerp@canb.auug.org.au
        /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/









































































WWIINNDDOOWWSS--NNTT
        It is possible to build Aegis for Windows-NT.  I have only done this
        using the Cygnus freeware CygWin32 system, though it may be possible
        with other Unix porting layers also.

   CCaavveeaatt
        This document only describes a ssiinnggllee uusseerr port of Aegis to Windows
        NT.

        Aegis depends on the underlying security provided by the operating
        system (rather than re-invent yet another security mechanism).
        However, in order to do this, Aegis uses the POSIX _s_e_t_e_u_i_d(2) system
        call, which has no direct equivalent on Windows NT.  This makes
        porting difficult.  SSiinnggllee uusseerr ports are possible (_e_._g_. using Cygwin
        (http://www.cygwin.com/), but are not usually what folks want.

        Compounding this is the fact that many sites want to develop their
        software for both Unix and Windows NT simultaneously.  This means that
        the security of the repository needs to be guaranteed to be handled in
        the same way by both operating systems, otherwise one can act as a
        ``back door'' into the repository.  Many sites do not have the same
        users and permissions (sourced from the same network register of
        users) on both Unix and Windows NT, making the mapping almost
        impossible even if the security models did actually correspond.

        Most sites using Aegis and Windows NT together do so by running Aegis
        on the Unix systems, but building and testing on the NT systems.  The
        work areas and repository are accessed via Samba or NFS.

   TThhee SSoouurrccee
        You need to FTP the Cygwin system from RedHat.  It can be found at
                http://www.cygwin.com/
        and then follow the links.  The original version used was B20.1, but
        more recently 1.1.7 has been used.

        It is _a_b_s_o_l_u_t_e_l_y _e_s_s_e_n_t_i_a_l to run the _m_k_p_a_s_s_w_d and _m_k_g_r_o_u_p commands,
        otherwise Aegis will give fatal errors about unknown users and groups.
        See the Cygwin README for instructions.

   MMoouunnttiinngg TThhiinnggss
        You need to mount a directory onto /tmp, or lots of things, and
        especially _b_a_s_h(1), don't work.  If you are in a heavily networked
        environment, like me, you need to know that using a networked drive
        for /tmp just doesn't work.  I have no idea why.  Use
                mount C:/temp /tmp
        instead.  (Or some other local drive.)

        Just a tip for all of you who, like me, know Unix much better than you
        know Windows-NT: the left-hand mount argument needs to be specified
        with a drive letter (_e_._g_. C:_) _r_a_t_h_e_r _t_h_a_n _w_i_t_h _a _d_o_u_b_l_e _s_l_a_s_h _(_e_._g_.
        _n_o_t //C_) _u_n_l_e_s_s _i_t_s _W_i_n_d_o_w_s_-_N_T _n_a_m_e _s_t_a_r_t_s _w_i_t_h _\_\_.

        You need to follow the install instructions about _/_b_i_n_/_s_h, otherwise
        shell scripts that start with #!/bin/sh don't work, among other
        things.  This includes the ./configure script, and the scripts it
        writes (_e_._g_. config.status).

        You will want to mount your various network drives onto the same
        places they appear on your Unix hosts.  This way you don't need to
        learn two names for all your files.

        Mounts persist across Cygwin sessions.  They are stored in a registry
        file somewhere.  You will not need to do all this every time!

   TToooo MMuucchh AAddmmiinniissttrraattoorr
        If you have administrator privilege on your Windows NT box, you need
        to get rid of it.  (Have a second admin account instead.)  This is
        because Windows NT will make the files belong to the wrong user for
        files on _s_o_m_e partitions, like _/_t_m_p.  (This took me days to work out!)
        This confuses both Aegis _a_n_d RCS.

        If you get weird ``Permission denied'' errors from amazingly unlikely
        causes, this is probably why.

   BBeeffoorree YYoouu SSttaarrtt
        There are several pieces of software you need before you can build
        Aegis on Cygwin.

        I'm going to keep mentioning ``your local GNU mirror''.  You can find
                GNU at http://www.gnu.org, however you are better off using a
                local mirror, and these are scattered around the globe.
                Follow the ``mirrors'' link on their front page to find your
                closest mirror.  Also, it's often a good idea to configure
                these packages with the ``--with-gnu-gettext'' option to their
                ./configure commands.

        DDoo nnoott uussee WWiinnZZiipp to unpack the tarball.  It has a nasty habit of
                turning all of the newlines into CRLFs.  This will confuse
                _l_o_t_s of utilities, especially GNU Groff.  Use the ``_t_a_r _x_z_f
                _a_e_g_i_s_-_4_._1_6_._t_a_r_._g_z'' command from within Cygwin.

        Make sure the Cygwin you are using has GNU Groff 1.15 or later
                (use a ``groff -v'' command).  Grab and install the latest
                from your local GNU mirror, if it isn't.

        util-linux
                You need to get GNU rx, but to make it work you have to find a
                _t_s_o_r_t command, so that GNU rx's _._/_c_o_n_f_i_g_u_r_e script works.  Try
                the latest copy of system/misc/util-linux-?.?.tar.gz from the
                metalab.unc.edu Linux archive (or a mirror).  Simply build and
                install _m_i_s_c_-_u_t_i_l_s_/_t_s_o_r_t_._c by hand.

        GNU rx  Once you have _t_s_o_r_t installed, you will be able to get GNU rx
                configured.  Get a copy from your local GNU mirror.

        zlib    You need to grab a copy of _z_l_i_b; the same source as works for
                Unix will work for Cygwin.  It will install as a static
                library.

        GNU diffutils
                You need GNU diffults, because when you come to configure GNU
                RCS (next) it would otherwise complain about a stupid _d_i_f_f and
                a missing _d_i_f_f_3 command.  The _i_n_s_t_a_l_l_-_s_h script is broken, so
                you'll need to do the final step in the install by hand.

        GNU RCS All of Aegis' tests assume RCS is present.  Also, you are
                going to need _s_o_m_e_t_h_i_n_g for a history tool.  The _i_n_s_t_a_l_l_-_s_h
                script is broken, so you'll need to do the final step in the
                install by hand.

   CCoonnffiigguurree
        The configure and build step should be the same as for Unix, as
        described above.  All the problems I encountered were to do with
        getting the mounts just right.  (But expect it to be dog slow compared
        to Linux or FreeBSD on the same box.)

        Sharutils
                You need the _u_u_d_e_c_o_d_e command for several of the tests, and
                this may be found in the GNU Sharutils package.  You can get a
                copy from your local GNU mirror.

        The configure step is almost the same as for Unix.  I know you are
        itching to get typing, but read through to the install section before
        you configure anything.
                bbaasshh$$ ./configure
                _._._._l_o_t_s _o_f _o_u_t_p_u_t_._._.
                bbaasshh$$

   BBuuiilldd
        The build step is exactly the same as for Unix, and you shouldn't
        notice any difference...
                bbaasshh$$ make
                bbaasshh$$

   TTeesstt
        The tests are run in the same way as the Unix tests, but you don't
        need to run the set-uid-root variants, because no such thing exists
        under Windows NT.
                bbaasshh$$ make sure
                _._._._l_o_t_s _o_f _o_u_t_p_u_t_._._.
                PPaasssseedd AAllll TTeessttss
                bbaasshh$$

        Unfortunately, it isn't that simple.  There are a number of things you
        will see go wrong...

        +o Several tests fail because _e_d isn't there.

        +o Several tests fail because _c_i (RCS 5.7) dumps core much too often
          for my liking.

        +o A couple of tests fail because they don't expect the ``.exe''
          extension on executable files.

        +o A couple of tests (notably, the _a_e_d_i_s_t tests) fail because of the
          CRLF _v_s NL dichotomy.  This means that the expected results don't
          match, not that it isn't working.

        Despite all the bad news, the vast majority of tests pass, and the
        others have good excuses.

   IInnssttaallll
        Installing the software works as usual, though you need to make some
        choices right at the start (I told you to read this all the way
        through first).  If you want to use the ``_/_u_s_r_/_l_o_c_a_l'' prefix (or any
        other install prefix) you mount it right at the start.  For anything
        other than the ``_/_u_s_r_/_l_o_c_a_l'' default prefix, you also needed to give
        a ``----pprreeffiixx==_b_l_a_h_b_l_a_h_'_' _a_r_g_u_m_e_n_t _t_o _t_h_e _c_o_n_f_i_g_u_r_e _s_c_r_i_p_t_, _r_i_g_h_t _a_t _t_h_e
        _s_t_a_r_t_.
                bbaasshh$$ _m_a_k_e _i_n_s_t_a_l_l
                _._._._l_o_t_s _o_f _o_u_t_p_u_t_._._.
                bbaasshh$$
aegis(1)                                                              aegis(1)



NNAAMMEE
       aegis - project change supervisor

SSYYNNOOPPSSIISS
       aaeeggiiss _f_u_n_c_t_i_o_n [ _o_p_t_i_o_n...  ]
       aaeeggiiss --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s program is a transaction base software configuration
       management system.  It is used to supervise the development and
       integration of changes into projects.

FFUUNNCCTTIIOONNSS
       The following functions are available:

       --BBuuiilldd
               The _a_e_g_i_s _-_B_u_i_l_d command is used to build a project.  See
               _a_e_b(1) for more information.

       --CChhaannggee__AAttttrriibbuutteess
               The _a_e_g_i_s _-_C_h_a_n_g_e___A_t_t_r_i_b_u_t_e_s command is used to modify the
               attributes of a change.  See _a_e_c_a(1) for more information.

       --CChhaannggee__DDiirreeccttoorryy
               The _a_e_g_i_s _-_C_h_a_n_g_e___D_i_r_e_c_t_o_r_y command is used to change
               directory.  See _a_e_c_d(1) for more information.

       --CChhaannggee__OOwwnneerr
               The _a_e_g_i_s _-_C_h_a_n_g_e___O_w_n_e_r command is used to facilitate
               reassignment of the developer of a change in the _b_e_i_n_g
               _d_e_v_e_l_o_p_e_d state.  See _a_e_c_h_o_w_n(1) for more information.

       --CCLLoonnee
               The _a_e_g_i_s _-_C_L_o_n_e command is used to exactly replicate a change,
               usually on another branch.  See _a_e_c_l_o_n_e(1) for more
               information.

       --CCooPPyy__ffiillee
               The _a_e_g_i_s _-_C_o_P_y___f_i_l_e command is used to copy a file into a
               change.  See _a_e_c_p(1) for more information.

       --CCooPPyy__ffiillee__UUnnddoo
               The _a_e_g_i_s _-_C_o_p_y___F_i_l_e___U_n_d_o command is used to remove a copy of a
               file from a change.  See _a_e_c_p_u(1) for more information.

       --DDEELLttaa__NNAAmmee
               The _a_e_g_i_s _-_D_E_L_t_a___N_A_m_e command is used to add a symbolic name to
               a project delta.  See _a_e_d_n(1) for more information.

       --DDeevveelloopp__BBeeggiinn
               The _a_e_g_i_s _-_D_e_v_e_l_o_p___B_e_g_i_n command is used to begin development
               of a change.  See _a_e_d_b(1) for more information.

       --DDeevveelloopp__BBeeggiinn__UUnnddoo
               The _a_e_g_i_s _-_D_e_v_e_l_o_p___B_e_g_i_n___U_n_d_o command is used to cease
               development of a change.  See _a_e_d_b_u(1) for more information.

       --DDeevveelloopp__EEnndd
               The _a_e_g_i_s _-_D_e_v_e_l_o_p___E_n_d command is used to complete development
               of a change.  See _a_e_d_e(1) for more information.

       --DDeevveelloopp__EEnndd__UUnnddoo
               The _a_e_g_i_s _-_D_e_v_e_l_o_p___E_n_d___U_n_d_o command is used to recall a change
               for further development.  See _a_e_d_e_u(1) for more information.

       --DDIIFFFFeerreennccee
               The _a_e_g_i_s _-_D_I_F_F_e_r_e_n_c_e command is used to find differences
               between development directory and baseline.  See _a_e_d(1) for
               more information.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --IInntteeggrraattee__BBeeggiinn
               The _a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___B_e_g_i_n command is used to begin integrating
               a change.  See _a_e_i_b(1) for more information.

       --IInntteeggrraattee__BBeeggiinn__UUnnddoo
               The _a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___B_e_g_i_n___U_n_d_o command is used to cease
               integrating a change.  See _a_e_i_b_u(1) for more information.

       --IInntteeggrraattee__FFaaiill
               The _a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___F_a_i_l command is used to fail a change
               integration.  See _a_e_i_f_a_i_l(1) for more information.

       --IInntteeggrraattee__PPaassss
               The _a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___P_A_S_S command is used to pass a change
               integration.  See _a_e_i_p_a_s_s(1) for more information.

       --LLiisstt
               The _a_e_g_i_s _-_L_i_s_t command is used to list interesting things.
               See _a_e_l(1) for more information.

       --MMooVVee__ffiillee
               The _a_e_g_i_s _-_M_o_V_e___f_i_l_e command is used to change the name of a
               file as part of a change.  See _a_e_m_v(1) for more information.

       --MMooVVee__ffiillee__UUnnddoo
               The _a_e_g_i_s _-_M_o_V_e___f_i_l_e___U_n_d_o command is used to undo a change to
               the name of a file as part of a change.  See _a_e_m_v_u(1) for more
               information.

       --NNeeww__AAddmmiinniissttrraattoorr
               The _a_e_g_i_s _-_N_e_w___A_d_m_i_n_i_s_t_r_a_t_o_r command is used to add new
               administrators to a project.  See _a_e_n_a(1) for more information.

       --NNeeww__BBRRaanncchh
               The _a_e_g_i_s _-_N_e_w___B_R_a_n_c_h command is used to add a new branch to a
               project.  See _a_e_n_b_r(1) for more information.

       --NNeeww__BBRRaanncchh__UUnnddoo
               The _a_e_g_i_s _-_N_e_w___B_R_a_n_c_h___U_n_d_o command is used to remove a new
               branch from a project.  See _a_e_n_b_r_u(1) for more information.

       --NNeeww__CChhaannggee
               The _a_e_g_i_s _-_N_e_w___C_h_a_n_g_e command is used to add a new change to a
               project.  See _a_e_n_c(1) for more information.

       --NNeeww__CChhaannggee__UUnnddoo
               The _a_e_g_i_s _-_N_e_w___C_h_a_n_g_e___U_n_d_o command is used to remove a new
               change from a project.  See _a_e_n_c_u(1) for more information.

       --NNeeww__DDeevveellooppeerr
               The _a_e_g_i_s _-_N_e_w___D_e_v_e_l_o_p_e_r command is used to add new developers
               to a project.  See _a_e_n_d(1) for more information.

       --NNeeww__FFiillee
               The _a_e_g_i_s _-_N_e_w___F_i_l_e command is used to add new files to a
               change.  See _a_e_n_f(1) for more information.

       --NNeeww__FFiillee__UUnnddoo
               The _a_e_g_i_s _-_N_e_w___F_i_l_e___U_n_d_o command is used to remove new files
               from a change.  See _a_e_n_f_u(1) for more information.

       --NNeeww__IInntteeggrraattoorr
               The _a_e_g_i_s _-_N_e_w___I_n_t_e_g_r_a_t_o_r command is used to add new
               integrators to a project.  See _a_e_n_i(1) for more information.

       --NNeeww__PPrroojjeecctt
               The _a_e_g_i_s _-_N_e_w___P_r_o_j_e_c_t command is used to create a new project
               to be watched over by aegis.  See _a_e_n_p_r(1) for more
               information.

       --NNeeww__PPrroojjeecctt__AAlliiaass
               The _a_e_g_i_s _-_N_e_w___P_r_o_j_e_c_t___A_l_i_a_s command is used to create a new
               project alias.  See _a_e_n_p_a(1) for more information.

       --NNeeww__RReeLLeeaaSSee
               The _a_e_g_i_s _-_N_e_w___R_e_L_e_a_S_e command is used to create a new project
               from an existing project.  See _a_e_n_r_l_s(1) for more information.

       --NNeeww__RReeVViieewweerr
               The _a_e_g_i_s _-_N_e_w___R_e_V_i_e_w_e_r command is used to add new reviewers to
               a project.  See _a_e_n_r_v(1) for more information.

       --NNeeww__TTeesstt
               The _a_e_g_i_s _-_N_e_w___T_e_s_t command is used to add a new test to a
               change.  See _a_e_n_t(1) for more information.

       --NNeeww__TTeesstt__UUnnddoo
               The _a_e_g_i_s _-_N_e_w___T_e_s_t___U_n_d_o command is used to remove new tests
               from a change.  See _a_e_n_t_u(1) for more information.

       --PPrroojjeecctt__AAttttrriibbuutteess
               The _a_e_g_i_s _-_P_r_o_j_e_c_t___A_t_t_r_i_b_u_t_e_s command is used to modify the
               attributes of a project.  See _a_e_p_a(1) for more information.

       --RReemmoovvee__AAddmmiinniissttrraattoorr
               The _a_e_g_i_s _-_R_e_m_o_v_e___A_d_m_i_n_i_s_t_r_a_t_o_r command is used to remove
               administrators from a project.  See _a_e_r_a(1) for more
               information.

       --RReemmoovvee__DDeevveellooppeerr
               The _a_e_g_i_s _-_R_e_m_o_v_e___D_e_v_e_l_o_p_e_r command is used to remove
               developers from a project.  See _a_e_r_d(1) for more information.

       --RReeMMoovvee__ffiillee
               The _a_e_g_i_s _-_R_e_M_o_v_e___f_i_l_e command is used to add files to be
               deleted to a change.  See _a_e_r_m(1) for more information.

       --RReeMMoovvee__ffiillee__UUnnddoo
               The _a_e_g_i_s _-_R_e_m_o_v_e___F_i_l_e___U_n_d_o command is used to remove files to
               be deleted from a change.  See _a_e_r_m_u(1) for more information.

       --RReemmoovvee__IInntteeggrraattoorr
               The _a_e_g_i_s _-_R_e_m_o_v_e___I_n_t_e_g_r_a_t_o_r command is used to remove
               integrators from a project.  See _a_e_r_i(1) for more information.

       --RReeMMoovvee__PPRRoojjeecctt
               The _a_e_g_i_s _-_R_e_M_o_v_e___P_R_o_j_e_c_t command is used to remove a project.
               See _a_e_r_m_p_r(1) for more information.

       --RReemmoovvee__PPrroojjeecctt__AAlliiaass
               The _a_e_g_i_s _-_R_e_m_o_v_e___P_r_o_j_e_c_t___A_l_i_a_s command is used to remove a
               project alias.  See _a_e_r_p_a(1) for more information.

       --RReemmoovvee__RReeVViieewweerr
               The _a_e_g_i_s _-_R_e_m_o_v_e___R_e_V_i_e_w_e_r command is used to remove reviewers
               from a project.  See _a_e_r_r_v(1) for more information.

       --RReePPoorrTT
               The _a_e_g_i_s _-_R_e_P_o_r_T command is used to generate reports from
               aegis' database.  These reports may be written by users, or be
               distributed with aegis.

       --RReevviieeww__FFaaiill
               The _a_e_g_i_s _-_R_e_v_i_e_w___F_a_i_l command is used to fail a change review.
               See _a_e_r_f_a_i_l(1) for more information.

       --RReevviieeww__BBeeggiinn
               The _a_e_g_i_s _-_R_e_v_i_e_w___B_e_g_i_n command is used to begin to review a
               change.  See _a_e_r_b(1) for more information.

       --RReevviieeww__BBeeggiinn__UUnnddoo
               The _a_e_g_i_s _-_R_e_v_i_e_w___B_e_g_i_n___U_n_d_o command is used to stop reviewing
               a change.  See _a_e_r_b_u(1) for more information.

       --RReevviieeww__PPaassss
               The _a_e_g_i_s _-_R_e_v_i_e_w___P_A_S_S command is used to pass a change review.
               See _a_e_r_p_a_s_s(1) for more information.

       --RReevviieeww__PPaassss__UUnnddoo
               The _a_e_g_i_s _-_R_e_v_i_e_w___P_a_s_s___U_n_d_o command is used to rescind a change
               review pass.  See _a_e_r_p_u(1) for more information.

       --TTeesstt
               The _a_e_g_i_s _-_T_e_s_t command is used to run tests.  See _a_e_t(1) for
               more information.

       --VVEERRSSiioonn
               The _a_e_g_i_s _-_V_E_R_S_i_o_n command is used to get copyright and version
               details.  See _a_e_v(1) for more information.

       All function selectors are case insensitive.  Function selectors may be
       abbreviated; the abbreviation is the upper case letters.  Function
       selectors must appear as the first command line argument.

   NNoottiiffiiccaattiioonn
       Many _a_e_g_i_s commands are capable of notification that they have been
       run.  The individual commands document those specific to them.  For
       documentation on the various configurable notifications, see _a_e_p_c_o_n_f(5)
       and _a_e_p_a_t_t_r(5) for more information.

OOPPTTIIOONNSS
       The following options are available to all functions.  These options
       may appear anywhere on the command line following the function
       selectors.

       --LLIIBBrraarryy _a_b_s_p_a_t_h
               This option may be used to specify a directory to be searched
               for global state files and user state files.  (See _a_e_g_s_t_a_t_e(5)
               and _a_e_u_s_t_a_t_e(5) for more information.)  Several library options
               may be present on the command line, and are search in the order
               given.  Appended to this explicit search path are the
               directories specified by the _A_E_G_I_S___P_A_T_H environment variable
               (colon separated), and finally, _/_u_s_r_/_l_o_c_a_l_/_l_i_b_/_a_e_g_i_s is always
               searched.  All paths specified, either on the command line or
               in the _A_E_G_I_S___P_A_T_H environment variable, must be absolute.

       --PPAAGGeerr  The output of listings and help is piped through the pager
               command given in the PAGER environment variable (or _m_o_r_e if not
               set).  This is the default if the command is in the foreground,
               and the output is a TTY.  This option may be used to override
               any preference specified in the _a_e_u_c_o_n_f(5) file.

       --NNoo__PPAAGGeerr
               This option may be used to ensure that the output of listings
               and help is not piped through a pager command.  This is the
               default if the command is in the background, or if the output
               is not a TTY.  This option may be used to override any
               preference specified in the _a_e_u_c_o_n_f(5) file.

       --PPaaggee__LLeennggtthh _n_u_m_b_e_r
               This option may be used to set the page length of listings.
               The default, in order of preference, is obtained from the
               system, from the _L_I_N_E_S environment variable, or set to 24
               lines.

       --PPaaggee__WWiiddtthh _n_u_m_b_e_r
               This option may be used to set the page width of listings and
               error messages.  The default, in order of preference, is
               obtained from the system, from the _C_O_L_S environment variable,
               or set to 79 characters.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       The following options are available to _m_o_s_t functions.  These options
       may appear anywhere on the command line following the function
       selectors.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  When no --CChhaannggee option is specified, the _A_E_G_I_S___C_H_A_N_G_E
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default change
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on one change within a
               project, that is the default change number.  Otherwise, it is
               an error.

       --CChhaannggee _p_r_o_j_e_c_t..CC_n_u_m_b_e_r
               As a shortcut, it is possible to combine the --PPrroojjeecctt and
               --CChhaannggee options into a single option.

       --CChhaannggee _b_r_a_n_c_h..CC_n_u_m_b_e_r
               Several functions accept a --BBRRaanncchh option; it is possible to
               combine the --BBRRaanncchh and --CChhaannggee options in a single option.
               (This intentinally has the same form as the _$_{_v_e_r_s_i_o_n_}
               substitution output for incomplete changes.)

       --CChhaannggee _b_r_a_n_c_h..DD_n_u_m_b_e_r
               Several functions accept both the --BBRRaanncchh and --DDeellttaa options
               (or --BBRRaanncchh and --CChhaannggee--FFrroomm--DDeellttaa options); it is possible to
               combine them in a single option.  (This intentinally has the
               same form as the _$_{_v_e_r_s_i_o_n_} substitution output for completed
               changes.)

       --CChhaannggee _p_r_o_j_e_c_t..DD_n_u_m_b_e_r
               It is possible to combine the --PPrroojjeecctt and --CChhaannggee--FFrroomm--DDeellttaa
               options as a single option.

LLiissttiinnggss
       The following options are available to all listings.  These options may
       appear anywhere on the command line following the function selectors.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --UUNNFFoorrmmaatttteedd
               This option may be used with most listings to specify that the
               column formatting is not to be performed.  This is useful for
               shell scripts.

AAbbbbrreevviiaattiioonnss
       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       The _a_e_g_i_s command understands the following environment variables:

       AEGIS_PATH
               A colon-separated list of library directories.  See the
               --LLIIBBrraarryy option for a description how this environment variable
               is used.

       AEGIS_PROJECT
               Names a default project.  See the --PPrroojjeecctt option for a
               description how this environment variable is used.

       AEGIS_CHANGE
               Specifies a default change.  See the --CChhaannggee option for a
               description how this environment variable is used.

       AEGIS_FLAGS
               This environment variable is used to hold _a_e_u_c_o_n_f(5)
               information, and over-rides the settings in the users _._a_e_g_i_s_r_c
               file.  This is intended to be used within the tests distributed
               with aegis, but can also be of use within some shell scripts.

       AEGIS_THROTTLE
               Specifies the number of seconds to delay execution within
               commands which set time stamps.  This is intended to be used
               within the tests distributed with aegis, but can also be of use
               within some shell scripts.

       AEGIS_AUTOMOUNT_POINTS
               A colon-separated list of directories which the automounter may
               use to mount file systems.  Use with extreme care, as this
               distorts Aegis' idea of the shape of the filesystem.

               This feature assumes that paths below the automounter's mount
               directory are echoes of paths without it.  _E_._g_. When /home is
               the trigger, and /tmp_mnt/home is where the on-demand NFS mount
               is performed, with /home appearing to processes to be a
               symlink.

               This is the behavior of the Sun automounter.  The AMD
               automounter is capable of being configured in this way, though
               it is not typical of the examples in the manual.  Nor is it
               typical of the out-of-the-box Linux AMD configuration in many
               distributions.

       COLS    Specifies the page width for errors and listings.  See the
               --PPaaggee__WWiiddtthh option for a description how this environment
               variable is used.

       EDITOR  Specifies the program use to edit files when the --EEddiitt or
               --EEddiitt__BBaacckkGGrroouunndd options are used.  (See also the _V_I_S_U_A_L
               environment variable.)  Defaults to _v_i if not set.  See the
               _e_d_i_t_o_r___c_o_m_m_a_n_d fields in _a_e_u_c_o_n_f(1) for how to override this
               specifically for Aegis.

       LINES   Specifies the page length for listings.  See the --PPaaggee__LLeennggtthh
               option for a description how this environment variable is used.

       PAGER   Specifies the program to use to view listings and help.  Not
               used if output is to a file or a pipe.  Defaults to _m_o_r_e if not
               set.

       VISUAL  Specifies the program use to edit files when the --EEddiitt option
               is used.  (See also the _E_D_I_T_O_R environment variable.)  Defaults
               to _v_i if not set.  See the _v_i_s_u_a_l___c_o_m_m_a_n_d fields in _a_e_u_c_o_n_f(1)
               for how to override this specifically for Aegis.

SSEEEE AALLSSOO
       _a_e_g_i_s(5)
               aegis file format syntax

       _a_e_c_a_t_t_r(5)
               change attributes file format

       _a_e_c_s_t_a_t_e(5)
               change state file format

       _a_e_d_i_r(5)
               directory structures

       _a_e_g_s_t_a_t_e(5)
               aegis state file format

       _a_e_p_a_t_t_r(5)
               project attributes file format

       _a_e_p_c_o_n_f(5)
               project configuration file format

       _a_e_p_s_t_a_t_e(5)
               project state file format

       _a_e_r(5)  report script language definition

       _a_e_s_u_b(5)
               available command substitutions

       _a_e_u_c_o_n_f(5)
               user configuration file format

       _a_e_u_s_t_a_t_e(5)
               user state file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
ae-sccs-put(1)                                                  ae-sccs-put(1)



NNAAMMEE
       ae-sccs-put - put sccs version

SSYYNNOOPPSSIISS
       aaee--ssccccss--ppuutt --yy_c_o_m_m_e_n_t --GG_i_n_p_u_t_-_f_i_l_e _h_i_s_t_o_r_y_-_f_i_l_e

DDEESSCCRRIIPPTTIIOONN
       The _a_e_-_s_c_c_s_-_p_u_t command is used to commit changes to an SCCS file.  It
       insulates against a number of SCCS's quirks, and maps to Aegis'
       expectations better than using the SCCS commands directory in the
       history commands in the project _c_o_n_f_i_g file.

       The file comments _m_u_s_t be specified on the command line.

       The source file _m_u_s_t be specified on the command line.

       It is expected that there is not lock current in the history file.
       This is consistent with Aegis' use of its history tool.

       The history file need to exist yet.  It will be created (with the _s_c_c_s
       _a_d_m_i_n command) if it does not.

OOPPTTIIOONNSS
       The following options are understood:

       --GG_s_o_u_r_c_e_-_f_i_l_e
               This option must be used to specify the source file to be
               checked into the history.

       --yy_c_o_m_m_e_n_t
               This option must be used to specify the comment to be attached
               to the file history.  You probably need to use quotes to
               insulate the white space in the comment.

EEXXIITT SSTTAATTUUSS
       The _a_e_-_s_c_c_s_-_p_u_t command will exit with a status of 1 on any error.  The
       _a_e_-_s_c_c_s_-_p_u_t command will only exit with a status of 0 if there are no
       errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

CCOOPPYYRRIIGGHHTT
       ae-sccs-put version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The ae-sccs-put program comes with ABSOLUTELY NO WARRANTY; for details
       use the '_a_e_-_s_c_c_s_-_p_u_t _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software
       and you are welcome to redistribute it under certain conditions; for
       details use the '_a_e_-_s_c_c_s_-_p_u_t _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
ae_c(1)                                                                ae_c(1)



NNAAMMEE
       ae_c - set change number

SSYYNNOOPPSSIISS
       aaee__cc _c_h_a_n_g_e_-_n_u_m_b_e_r

DDEESSCCRRIIPPTTIIOONN
       The _a_e___c command is an alias used to set the AEGIS_CHANGE environment
       variable.  No checking of the argument is performed.

       This can make changing the change you are working on quick and simple.

SSEEEE AALLSSOO
       _a_e_g_i_s(1)
               For information on environment variables.

       _a_e___p(1) Set project name.

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
ae_p(1)                                                                ae_p(1)



NNAAMMEE
       ae_p - set project name

SSYYNNOOPPSSIISS
       aaee__pp _p_r_o_j_e_c_t_-_n_a_m_e

DDEESSCCRRIIPPTTIIOONN
       The _a_e___p command is an alias used to set the AEGIS_PROJECT environment
       variable.  No checking of the argument is performed.

       This can make changing projects quick and simple.

SSEEEE AALLSSOO
       _a_e_g_i_s(1)
               For information on environment variables.

       _a_e___c(1) Set change number.

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aeannotate(1)                                                    aeannotate(1)



NNAAMMEE
       aeannotate - annotated source file listing

SSYYNNOOPPSSIISS
       aaeeaannnnoottaattee [ _o_p_t_i_o_n...  ] _f_i_l_e_n_a_m_e
       aaeeaannnnoottaattee --HHeellpp
       aaeeaannnnoottaattee --LLiisstt
       aaeeaannnnoottaattee --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_a_n_n_o_t_a_t_e command is used to produce an annotated listing of the
       named source file.

       The columns specified by the user (see the ----ccoolluummnn option, below) are
       used of the left hand side of the output.  Two additional columns are
       always added: the line number and the source code.

       If no columns are specified, the default columns are

                   -column   '${change date %Y-%m}'   Date      7
                   -column   '$version'               Version   9
                   -column   '${change developer}'    Who       8
       The _$_v_e_r_s_i_o_n string always contains enough information to reproduce the
       entire project baseline at the time of the delta.  The first portion is
       the project branch, and the second portion (following the `D') is the
       delta number; use these to form the -branch and -delta options for an
       _a_e_c_p(1) command.

       At the end of the listing, accumulated statistics are presented,
       correlated to the unique columns values see in the listing.

OOPPTTIIOONNSS
       The following options are understood:

       --CCOOLLuummnn _f_o_r_m_u_l_a  [[ _h_e_a_d_i_n_g ]][[ _w_i_d_t_h ]]
               This option may be used to specify columns you wish to see in
               the output.  The formula is in the for of an _a_e_s_u_b(5) string.
               The heading is a string to be used as the column heading;
               defaults to the formula if not specified.  The width is the
               width of the columns; defaults to 7 if not specified.

       --FFiillee__SSttaattiissttiiccss
               This option causes file statistics to be appended.  This lists
               the number of lines in the file were changed at the same time
               as another file.  For example, this allows you to see tests
               associated with source files, and _v_i_c_e _v_e_r_s_a.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_a_n_n_o_t_a_t_e program.

       --DDiiffff__OOppttiioonn _s_t_r_i_n_g
               This option may be used to pass addition arguments to the diff
               commands that is run between each delta of the file.  Use with
               caution: poor choice of options can render aeannotate
               inoperable, or yield meaningless results.  Probably the best
               use of this option is to pass the --bb option, to ignore white
               space changes, because this ignores the vast majority of
               cosmetic formatting changes, showing you the content changes
               instead.  The --ii option, to ignore case, can also be useful for
               case-insensitive languages.

       --OOuuttppuutt _f_i_l_e_n_a_m_e
               This option may be used to specify the output file.  The output
               is sent to the standard output by default.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_a_n_n_o_t_a_t_e are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

EEXXIITT SSTTAATTUUSS
       The _a_e_a_n_n_o_t_a_t_e command will exit with a status of 1 on any error.  The
       _a_e_a_n_n_o_t_a_t_e command will only exit with a status of 0 if there are no
       errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

EEXXAAMMPPLLEESS
       If you wanted to list only the year against the lines of the file, use
       this column specification:

                      -column   '${change date %Y}'   Year   4

       If you wanted to list the developer and the reviewer against the lines
       of the file (commonly called a ``blame'' listing) use this column
       specification:

                   -column   '${change developer}'   Develop.   8
                   -column   '${change reviewer}'    Reviewer   8

       If you wanted to see the change cause of each line, use this column
       specification:

                     -column   '$version'          Version   9
                     -column   '${change cause}'   Cause     20

       All of the _a_e_s_u_b(5) substitutions are available, however only the
       _$_{_c_h_a_n_g_e _._._._} variants are particularly useful.

       To see only content changes, and ignore changes in indentation
       (assuming you are using GNU diff), use this command:
              aeannotate -diff-opt -b _f_i_l_e_n_a_m_e

CCOOPPYYRRIIGGHHTT
       aeannotate version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aeannotate program comes with ABSOLUTELY NO WARRANTY; for details
       use the '_a_e_a_n_n_o_t_a_t_e _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software
       and you are welcome to redistribute it under certain conditions; for
       details use the '_a_e_a_n_n_o_t_a_t_e _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Build(1)                                                aegis -Build(1)



NNAAMMEE
       aegis -Build - build a change

SSYYNNOOPPSSIISS
       aaeeggiiss --BBuuiilldd [ _o_p_t_i_o_n...  ][ _f_i_l_e_n_a_m_e...  ]
       aaeeggiiss --BBuuiilldd --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --BBuuiilldd --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_B_u_i_l_d command is used to build a project.  The project
       configuration file is consulted for the appropriate build command, and
       that command is executed (see the _b_u_i_l_d__ _c_o_m_m_a_n_d and _i_n_t_e_g_r_a_t_i_o_n___-
       _b_u_i_l_d___c_o_m_m_a_n_d fields in _a_e_p_c_o_n_f(5) for more information.)  Output of
       the command is automatically logged to the _a_e_g_i_s_._l_o_g file at the root
       of the development directory tree.  The build command will be executed
       with its current directory being the root of the development directory,
       irrespective of there the _a_e_g_i_s _-_B_u_i_l_d command was executed.

       If the change is in the _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d state, references to the
       development directory, above, should be read as the integration
       directory.  Integration build commands are executed with the user and
       group set to the project's owning user and group.  That is, it is not
       necessary for an integrator to log in as someone else, the project
       account for instance, in order to do an integration.

   PPrroocceessss SSiiddee EEffffeeccttss
       This command will cancel any test registrations, because building the
       project logically invalidates them.  If the project _c_o_n_f_i_g file was
       deleted, any diff registration will also be canceled.

   NNoottiiffiiccaattiioonn
       The actions of the command are controlled by the _b_u_i_l_d__ _c_o_m_m_a_n_d and
       _i_n_t_e_g_r_a_t_i_o_n___b_u_i_l_d___c_o_m_m_a_n_d fields of the project _c_o_n_f_i_g file.  See
       _a_e_p_c_o_n_f(5) for more information.

PPAARRTTIIAALL BBUUIILLDD
       If files are named on the command line, these files are appended to the
       build command.  This is known as a partial build.  Partial builds are
       not legal in the _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d state, but can often be useful in the
       _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.  Partial builds are not recorded in the change
       status, because builds are decoupled from aegis it is not possible for
       aegis to know if any set of partial builds is equivalent to a full
       build.

       Warning: no change state lock is taken for a partial build, only a
       baseline read lock.

   FFiillee NNaammee IInntteerrpprreettaattiioonn
       The aegis program will attempt to determine the project file names from
       the file names given on the command line.  All file names are stored
       within aegis projects as relative to the root of the baseline directory
       tree.  The development directory and the integration directory are
       shadows of this baseline directory, and so these relative names apply
       here, too.  Files named on the command line are first converted to
       absolute paths if necessary.  They are then compared with the baseline
       path, the development directory path, and the integration directory
       path, to determine a baseline-relative name.  It is an error if the
       file named is outside one of these directory trees.

       The --BBAAssee__RREEllaattiivvee option may be used to cause relative filenames to be
       interpreted as relative to the baseline path; absolute filenames will
       still be compared with the various paths in order to determine a
       baseline-relative name.

       The _r_e_l_a_t_i_v_e___f_i_l_e_n_a_m_e___p_r_e_f_e_r_e_n_c_e in the user configuration file may be
       used to modify this default behavior.  See _a_e_u_c_o_n_f(5) for more
       information.

SSYYMMBBOOLLIICC LLIINNKKSS
       Many dependency maintenance tools, and indeed some compilers, have
       little or no support for include file search paths, and thus for the
       concept of the two-level directory hierarchy employed by _a_e_g_i_s.  (It
       becomes multi-level when aegis' branching functionality is used.)  To
       allow these tools to be used, _a_e_g_i_s provides the ability to maintain a
       set of symbolic links between the development directory of a change and
       the baseline of a project, so it appears to these tools that all of the
       project's files are present in the development directory.

   PPrroojjeecctt CCoonnffiigguurraattiioonn
       Two boolean fields of the project _c_o_n_f_i_g file control the behavior of
       this feature.  They are the _c_r_e_a_t_e___s_y_m_l_i_n_k_s___b_e_f_o_r_e___b_u_i_l_d and _r_e_m_o_v_e___-
       _s_y_m_l_i_n_k_s___a_f_t_e_r___b_u_i_l_d fields.  See _a_e_p_c_o_n_f(5) for more information.

       If both fields are set to _t_r_u_e, the user never sees the symbolic links,
       because they are added purely for the benefit of the dependency
       maintenance tool during the execution of the _a_e_b(1) command.

       If only the _c_r_e_a_t_e___s_y_m_l_i_n_k_s___b_e_f_o_r_e___b_u_i_l_d field is set to _t_r_u_e (the
       other will default to false) the symbolic links will be created at
       develop begin time (see _a_e_d_b(1) for more information) and also
       maintained by each _a_e_b(1) invocation.  Note that the symbolic links are
       only maintained at these times, so project integrations during the
       course of development may leave the symbolic links in an inconsistent
       state until the next build.

       When files are copied from the baseline into a change, using the
       _a_e_c_p(1) command, the symbolic link pointing into the baseline, if any,
       will be removed before the file is copied.

       NNoottee:: Using this functionality in either form has implications for how
       the rules file of the dependency maintenance tool is written.  Rules
       must _r_e_m_o_v_e their targets before creating them.  (Usually with an _r_m _-_f
       command.)  This is to avoid attempting to write the result on the
       symbolic link, which will point at a read-only file in the project
       baseline.  This is similar to the same requirement for using the _l_i_n_k___-
       _i_n_t_e_g_r_a_t_i_o_n___d_i_r_e_c_t_o_r_y field of the project _c_o_n_f_i_g file.

   UUsseerr CCoonnffiigguurraattiioonn
       There is a _s_y_m_b_o_l_i_c___l_i_n_k___p_r_e_f_e_r_e_n_c_e field in the user configuration
       file (see _a_e_u_c_o_n_f(5) for more information).  This controls whether
       _a_e_b(1) will verify the symbolic links before the build (default) or
       whether it will assume they are up-to-date.  (This field is only
       relevant if _c_r_e_a_t_e___s_y_m_l_i_n_k_s___b_e_f_o_r_e___b_u_i_l_d is true.)

       For medium-to-large projects, verifying the symbolic links can take as
       long as the build itself.  Assuming the symbolic links are up-to-date
       can be a large time-saving for these projects.  It may be advisable to
       review your choice of DMT in such a situation.

       The _a_e_d_b(1) command ddooeess nnoott consult this preference.  Thus, in most
       situations, the symbolic links will be up-to-date when the build is
       performed.  The only Aegis function which may result in the symbolic
       links becoming out-of-date is the integration of another change, as
       this may alter the presence or absence of files in the baseline.  In
       this situation, the default _a_e_b(1) action is to ignore the user
       preference and the verify symbolic links.

       There are two command line options which modify _a_e_b(1) behavior
       further: the ----VVeerriiffyy__SSyymmbboolliicc__LLiinnkkss option says to verify the symbolic
       links; and the ----AAssssuummee__SSyymmbboolliicc__LLiinnkkss option says to assume the
       symbolic links are up-to-date.  In each case the option over-rides the
       default and the user preference.

TTHHEE BBAASSEELLIINNEE LLOOCCKK
       The baseline lock is used to ensure that the baseline remains in a
       consistent state for the duration of commands which need to read the
       contents of files in the baseline.

       The commands which require the baseline to be consistent (these include
       the _a_e_b(1), _a_e_c_p(1) and _a_e_d(1) commands) take a baseline _r_e_a_d lock.
       This is a non-exclusive lock, so the concurrent development of changes
       is not hindered.

       The command which modifies the baseline, _a_e_i_p_a_s_s(1), takes a baseline
       _w_r_i_t_e lock.  This is an exclusive lock, forcing _a_e_i_p_a_s_s(1) to block
       until there are no active baseline read locks.

       It is possible that one of the above development commands will block
       until an in-progress _a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___P_A_S_S completes.  This is usually
       of short duration while the project history is updated.  The delay is
       essential so that these commands receive a consistent view of the
       baseline.  No other integration command will cause the above
       development commands to block.

       When aegis' branch functionality is in use, a read (non-exclusive) lock
       is taken on the branch baseline and also each of the "parent"
       baselines.  However, a baseline write (exclusive) lock is only taken on
       the branch baseline; the "parent" baselines are only read (non-
       exclusive) locked.

MMEETTRRIICCSS
       Aegis is capable of recording metrics as part of the file attributes of
       a change.  This allows various properties of files to be recorded for
       later trend analysis, or other uses.

       The specific metrics are not dictated by Aegis.  It is expected that
       the integration build will create a metrics file for each of the source
       files the change.  These metrics files must be in the format specified
       by _a_e_m_e_t_r_i_c_s(5).

       The name of the metrics file defaults to ``_f_i_l_e_n_a_m_e,,SS'', however it may
       be varied, by setting the _m_e_t_r_i_c_s___f_i_l_e_n_a_m_e___p_a_t_t_e_r_n field of the project
       _c_o_n_f_i_g file.  See _a_e_p_c_o_n_f(5) for more information.

       If such a metrics file exists, for each source file in a change, it
       will be read and remembered at integrate pass time.  If it does not
       exist, Aegis assumes there are no relevant metrics for that file, and
       proceeds silently; it is not an error.

OOPPTTIIOONNSS
       The following options are understood:

       _n_a_m_e==_v_a_l_u_e
               Command line arguments of this form are assumed to be variable
               assignments for the build tool.  They are passed through
               unchanged.  They imply a partial build.

       --BBAAssee__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the base of the source tree.  See
               _a_e_u_c_o_n_f(5) for the corresponding user preference.

       --CCUUrrrreenntt__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the current directory.  This is usually
               the default.  See _a_e_u_c_o_n_f(5) for the corresponding user
               preference.

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --MMIINNIImmuumm
               This option may be used to request a minimum set of symbolic
               links, when the _c_r_e_a_t_e___s_y_m_l_i_n_k_s___t_o___b_a_s_e_l_i_n_e functions are being
               used.  This is useful if you want to simulate something like
               _a_e_i_b _-_m_i_n_i_m_u_m in the development directory.  This option is not
               meaningful if symbolic links are not being used.  If the change
               is in the _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d state, and the developer specified
               --MMIINNIImmuumm when issuing the _a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___B_e_g_i_n command, then
               this option is set by default.

       --NNoott__LLooggggiinngg
               This option may be used to disable the automatic logging of
               output and errors to a file.  This is often useful when several
               aegis commands are combined in a shell script.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --VVeerriiffyy__SSyymmbboolliicc__LLiinnkkss
               This option may be used to request a scan for up-to-date
               symbolic links before and after the build.  This is the
               default.  See also the ``symbolic_links_preference'' field of
               _a_e_u_c_o_n_f(5).  This option is not meaningful if symbolic links
               are not being used.

       --AAssssuummee__SSyymmbboolliicc__LLiinnkkss
               This option may be used to request no scan for up-to-date
               symbolic links before and after the build, this is useful when
               you have just done a build and you know they are already up-to-
               date.  See also the ``symbolic_links_preference'' field of
               _a_e_u_c_o_n_f(5).  This option is not meaningful if symbolic links
               are not being used.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aeb 'aegis -b \!* -v'
       sh$     aeb(){aegis -b "$@" -v}

EERRRROORRSS
       It is an error if the change is not assigned to the current user.
       It is an error if the change is not in one of the _b_e_i_n_g _d_e_v_e_l_o_p_e_d or
       _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d states.
       It is an error if a partial build is requested and the change is in the
       _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d state.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_d_b(1) begin development of a change

       _a_e_c_p(1) file copy also takes a baseline read lock (non-exclusive)

       _a_e_i_b(1) begin integration of a change

       _a_e_i_p_a_s_s(1)
               integrate pass takes a baseline write lock (exclusive)

       _a_e_t(1)  run tests

       _a_e_m_e_t_r_i_c_s(5)
               metrics values file format

       _a_e_p_c_o_n_f(5)
               project configuration file format

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aebuffy(1)                                                          aebuffy(1)


NNAAMMEE
       aebuffy - watch for changes

SSYYNNOOPPSSIISS
       aaeebbuuffffyy [ _p_r_o_j_e_c_t_-_n_a_m_e ]

DDEESSCCRRIIPPTTIIOONN
       The _a_e_b_u_f_f_y command is used to watch for changes which the current user
       may be able to act upon.  These include changes being developed by the
       user, and changes which could be reviewed or integrated by the user.

       If you don't use the _p_r_o_j_e_c_t_-_n_a_m_e command line option, you need to set
       the AEGIS_PROJECT environment variable, or the default_project field of
       the _._a_e_g_i_s_r_c file before you invoke this command.  This is especially
       important if you launch it from your X11 session start-up file.

       At the moment it can only watch one project.  If you are good at
       Tcl/Tk, improvements are most welcome.

CCOOPPYYRRIIGGHHTT
       aebuffy version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aebuffy program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_b_u_f_f_y _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_b_u_f_f_y _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Change_Attributes(1)                        aegis -Change_Attributes(1)



NNAAMMEE
       aegis -Change_Attributes - modify the attributes of a change

SSYYNNOOPPSSIISS
       aaeeggiiss --CChhaannggee__AAttttrriibbuutteess --FFiillee _a_t_t_r_-_f_i_l_e [ _o_p_t_i_o_n...  ]
       aaeeggiiss --CChhaannggee__AAttttrriibbuutteess --EEddiitt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --CChhaannggee__AAttttrriibbuutteess --FFiixx__AAttttrriibbuutteess
       aaeeggiiss --CChhaannggee__AAttttrriibbuutteess --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --CChhaannggee__AAttttrriibbuutteess --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_C_h_a_n_g_e___A_t_t_r_i_b_u_t_e_s command is used to set, edit or list the
       attributes of a change.

       The output of the --LLiisstt variant is suitable for use as input at a later
       time.

       See _a_e_c_a_t_t_r(5) for a description of the file format.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --DDeessccrriippttiioonn__OOnnllyy
               This option may be used to specify that only the change
               description is the subject of this command.  It will be
               presented as plain text, without any of the quotes or escapes
               present when this command is not used.

       --EEddiitt
               Edit the attributes with a text editor, this is usually more
               convenient than supplying a text file.  The _V_I_S_U_A_L and then
               _E_D_I_T_O_R environment variables are consulted for the name of the
               editor to use; defaults to _v_i(1) if neither is set.  See the
               _v_i_s_u_a_l___c_o_m_m_a_n_d and _e_d_i_t_o_r___c_o_m_m_a_n_d fields in _a_e_u_c_o_n_f(1) for how
               to override this specifically for Aegis.

               Warning: Aegis tries to be well behaved when faced with errors,
               so the temporary file is left in your home directory where you
               can edit it further and re-use it with a --ffiillee option.

               The --eeddiitt option may not be used in the background, or when the
               standard input is not a terminal.

       --EEddiitt__BBaacckkGGrroouunndd
               Edit the attributes with a dumb text editor, this is most often
               desired when edit commands are being piped into the editor via
               the standard input.  Only the EEDDIITTOORR environment variable is
               consulted for the name of the editor to use; it is a fatal
               error if it is not set.  See the _e_d_i_t_o_r___c_o_m_m_a_n_d field in
               _a_e_u_c_o_n_f(1) for how to override this specifically for Aegis.

       --FFiillee _f_i_l_e_n_a_m_e
               Take the attributes from the specified file.  The filename `-'
               is understood to mean the standard input.

       -Fix_Architecture
               This option may be used to replace change change's architecture
               list with all of the mandatory architectures from the project
               _c_o_n_f_i_g file, plus any of the optional architectures that match
               the current machine.  May not be used with -file or -edit
               options.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aeca 'aegis -ca \!* -v'
       sh$     aeca(){aegis -ca "$@" -v}

EERRRROORRSS
       It is an error if the current user is not an administrator of the
       specified project.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _t_k_a_e_c_a(1)
               GUI interface to the _a_e_c_a(1) command.

       _a_e_p_a(5) modify the attributes of a project

       _a_e_c_a_t_t_r(5)
               change attributes file format

       _a_e_c_s_t_a_t_e(5)
               change state file format

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Change_Directory(1)                          aegis -Change_Directory(1)



NNAAMMEE
       aegis -Change_Directory - change directory

SSYYNNOOPPSSIISS
       aaeeggiiss --CChhaannggee__DDiirreeccttoorryy [ _o_p_t_i_o_n...  ][ _r_e_l_a_t_i_v_e_-_p_a_t_h ]
       aaeeggiiss --CChhaannggee__DDiirreeccttoorryy --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --CChhaannggee__DDiirreeccttoorryy --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_C_h_a_n_g_e___D_i_r_e_c_t_o_r_y command is used to obtain a path to change
       directory to.  If the _r_e_l_a_t_i_v_e_-_p_a_t_h is supplied, this will be added to
       the output.

       This command is usually used to calculate an argument for _c_d(1),
       however it can also be used to obtain an absolute path for change and
       project files.

OOPPTTIIOONNSS
       The following options are understood:

       --BBaasseeLLiinnee
               This option may be used to specify that the project baseline is
               the subject of the command.

       --BBRRaanncchh _n_u_m_b_e_r
               This option may be used to specify a different branch for the
               origin file, rather than the baseline.  (See also --TTRRuunnkk
               option.  Please Note: the --BBRRaanncchh option does not take a
               project name, just the branch number suffix.

       --GGrraannddPPaarreenntt
               This option may be used to specify the grandparent branch (one
               up from the current branch) for the origin file, rather than
               the baseline.  (The -grandparent option is the same as the
               ``-branch ..'' option.)

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --DDeevveellooppmmeenntt__DDiirreeccttoorryy
               This option is used to specify that the development directory
               is the subject of the command.  This is only useful for a
               change which is in the _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d state, when the default
               is the integration directory.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --TTRRuunnkk
               This option may be used to specify the project trunk for the
               origin file, rather than the baseline.  (See also --BBRRaanncchh
               option, the -trunk option is the same as the ``-branch -''
               option.)

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aecd 'cd `aegis -cd \!* -v`'
       sh$     aecd(){cd `aegis -cd "$@" -v`}

EERRRROORRSS
       It is an error if the specified change is not in a state where it has a
       directory to change to.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_d_b(1) begin development of a change

       _a_e_i_b(1) begin integration of a change

       _a_e_r_p_a_s_s(1)
               pass review of a change

       _a_e_r_f_a_i_l(1)
               fail review of a change

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Change_Owner(1)                                  aegis -Change_Owner(1)



NNAAMMEE
       aegis -Change_Owner - set change owner

SSYYNNOOPPSSIISS
       aaeeggiiss --CChhaannggee__OOwwnneerr _c_h_a_n_g_e_-_n_u_m_b_e_r _u_s_e_r_-_n_a_m_e [ _o_p_t_i_o_n...  ]
       aaeeggiiss --CChhaannggee__OOwwnneerr --HHeellpp
       aaeeggiiss --CChhaannggee__OOwwnneerr --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_C_h_a_n_g_e___O_w_n_e_r command is used to reassign a change from one
       developer to another.

       A new development directory is created for the change in the new
       developers default area (see _a_e_d_b(1) for more information) and the
       change files are copied across.  Derived files are ignored, so a new
       build will be required.  The old development directory will be deleted.

       This command must be performed by a project administrator, and the new
       assignee must be a developer.

       Warning: capricious use of this command will alienate developers very
       rapidly.

   NNoottiiffiiccaattiioonn
       This command mimics many of the actions of the _a_e_b_d_u(1) and _a_e_d_b(1)
       command.  In particular, it invokes the _d_e_v_e_l_o_p___b_e_g_i_n___u_n_d_o___c_o_m_m_a_n_d and
       _d_e_v_e_l_o_p___b_e_g_i_n___c_o_m_m_a_n_d of the project _c_o_n_f_i_g file.  See _a_e_p_c_o_n_f(5) for
       more information.

   DDeevveellooppmmeenntt DDiirreeccttoorryy LLooccaattiioonn
       PPlleeaassee NNoottee:: Aegis also consults the underlying file system, to
       determine its notion of maximum file size.  Where the file system's
       maximum file size is less than _m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h, the filesystem
       wins.  This can happen, for example, when you are using the Linux
       UMSDOS file system, or when you have an NFS mounted an ancient V7
       filesystem.  Setting _m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h to 255 in these cases does
       not alter the fact that the underlying file systems limits are far
       smaller (12 and 14, respectively).

       If your development directories (or your whole project) is on
       filesystems with filename limitations, or a portion of the
       heterogeneous builds take place in such an environment, it helps to
       tell Aegis what they are (using the project _c_o_n_f_i_g file's fields) so
       that you don't run into the situation where the project builds on the
       more permissive environments, but fails with mysterious errors in the
       more limited environments.

       If your development directories are routinely on a Linux UMSDOS
       filesystem, you would probably be better off setting
       _d_o_s___f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d _= _t_r_u_e, and also changing the
       _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___t_e_m_p_l_a_t_e field.  Heterogeneous development with
       various Windows environments may also require this.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --DDIIRReeccttoorryy _p_a_t_h
               This option may be used to specify which directory is to be
               used.  It is an error if the current user does not have
               appropriate permissions to create the directory path given.
               This must be an absolute path.

               Caution: If you are using an automounter do not use `pwd` to
               make an absolute path, it usually gives the wrong answer.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --IInntteerraaccttiivvee
               Specify that aegis should ask the user for confirmation before
               deleting each file.  Answer the question _y_e_s to delete the
               file, or _n_o to keep the file.  You can also answer _a_l_l to
               delete the file and all that follow, or _n_o_n_e to keep the file
               and all that follow.

               Defaults to the user's _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

               If aegis is running in the background, the question will not be
               asked, and the files will be deleted.

       --KKeeeepp
               This option may be used to retain files and/or directories
               usually deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --NNoo__KKeeeepp
               This option may be used to ensure that the files and/or
               directories are deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --UUsseerr _n_a_m_e
               This option is used to specify the user who is to develop the
               change.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aechown 'aegis -chown \!* -v'
       sh$     aechown(){aegis -chown "$@" -v}

EERRRROORRSS
       It is an error if the user issuing the command is not a project
       administrator.
       It is an error if the change is not in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
       It is an error if the user given is not a developer.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -CLEan(1)                                                aegis -CLEan(1)



NNAAMMEE
       aegis -CLEan - clean files from development directory

SSYYNNOOPPSSIISS
       aaeeggiiss --CCLLEEaann [ _o_p_t_i_o_n...  ]
       aaeeggiiss --CCLLEEaann --HHeellpp
       aaeeggiiss --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_C_L_E_a_n command is used to remove all files which are not
       change source files from a development directory.  This can be used to
       obtain a ``clean'' development directory before a final build, to
       ensure that a change is ready to end development.  A new build will be
       required.

       This command is only allowed in the ``_b_e_i_n_g _d_e_v_e_l_o_p_e_d'' state, and only
       the change's developer may issue it.  It may not be applied to
       branches.

       All symbolic links will be removed from the development directory, even
       if _r_e_m_o_v_e___s_y_m_l_i_n_k_s___a_f_t_e_r___b_u_i_l_d _= _f_a_l_s_e in the project _c_o_n_f_i_g file.  The
       symbolic links will be re-installed, if _c_r_e_a_t_e___s_y_m_l_i_n_k_s___b_e_f_o_r_e___b_u_i_l_d _=
       _t_r_u_e.  This is to ensure that the symlinks are accurate, and that
       unnecessary ones are removed.

       All special device files, pipes and sockets will be removed.  These
       files cannot be source files, and it is expected that the following
       build will restore them.

       All derived files created by previous builds of the change will be
       removed.  It is expected that the following build will recreate them.
       Any temporary files you may have created in the development directory
       will also be removed.

       The _d_e_v_e_l_o_p___b_e_g_i_n___c_o_m_m_a_n_d in the project config file (see _a_e_p_c_o_n_f(5)
       for more information) will be run, if there is one.  The
       _c_h_a_n_g_e___f_i_l_e___c_o_m_m_a_n_d will be run, if there is one.  The
       _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d will be run, if there is one.

       You will be warned if any of the files are out-of-date and need to be
       merged.  You will be warned if any files need to be differenced.

SSYYMMBBOOLLIICC LLIINNKKSS
       Many dependency maintenance tools, and indeed some compilers, have
       little or no support for include file search paths, and thus for the
       concept of the two-level directory hierarchy employed by _a_e_g_i_s.  (It
       becomes multi-level when aegis' branching functionality is used.)  To
       allow these tools to be used, _a_e_g_i_s provides the ability to maintain a
       set of symbolic links between the development directory of a change and
       the baseline of a project, so it appears to these tools that all of the
       project's files are present in the development directory.

   PPrroojjeecctt CCoonnffiigguurraattiioonn
       Two boolean fields of the project _c_o_n_f_i_g file control the behavior of
       this feature.  They are the _c_r_e_a_t_e___s_y_m_l_i_n_k_s___b_e_f_o_r_e___b_u_i_l_d and _r_e_m_o_v_e___-
       _s_y_m_l_i_n_k_s___a_f_t_e_r___b_u_i_l_d fields.  See _a_e_p_c_o_n_f(5) for more information.

       If both fields are set to _t_r_u_e, the user never sees the symbolic links,
       because they are added purely for the benefit of the dependency
       maintenance tool during the execution of the _a_e_b(1) command.

       If only the _c_r_e_a_t_e___s_y_m_l_i_n_k_s___b_e_f_o_r_e___b_u_i_l_d field is set to _t_r_u_e (the
       other will default to false) the symbolic links will be created at
       develop begin time (see _a_e_d_b(1) for more information) and also
       maintained by each _a_e_b(1) invocation.  Note that the symbolic links are
       only maintained at these times, so project integrations during the
       course of development may leave the symbolic links in an inconsistent
       state until the next build.

       When files are copied from the baseline into a change, using the
       _a_e_c_p(1) command, the symbolic link pointing into the baseline, if any,
       will be removed before the file is copied.

       NNoottee:: Using this functionality in either form has implications for how
       the rules file of the dependency maintenance tool is written.  Rules
       must _r_e_m_o_v_e their targets before creating them.  (Usually with an _r_m _-_f
       command.)  This is to avoid attempting to write the result on the
       symbolic link, which will point at a read-only file in the project
       baseline.  This is similar to the same requirement for using the _l_i_n_k___-
       _i_n_t_e_g_r_a_t_i_o_n___d_i_r_e_c_t_o_r_y field of the project _c_o_n_f_i_g file.

   UUsseerr CCoonnffiigguurraattiioonn
       There is a _s_y_m_b_o_l_i_c___l_i_n_k___p_r_e_f_e_r_e_n_c_e field in the user configuration
       file (see _a_e_u_c_o_n_f(5) for more information).  This controls whether
       _a_e_b(1) will verify the symbolic links before the build (default) or
       whether it will assume they are up-to-date.  (This field is only
       relevant if _c_r_e_a_t_e___s_y_m_l_i_n_k_s___b_e_f_o_r_e___b_u_i_l_d is true.)

       For medium-to-large projects, verifying the symbolic links can take as
       long as the build itself.  Assuming the symbolic links are up-to-date
       can be a large time-saving for these projects.  It may be advisable to
       review your choice of DMT in such a situation.

       The _a_e_d_b(1) command ddooeess nnoott consult this preference.  Thus, in most
       situations, the symbolic links will be up-to-date when the build is
       performed.  The only Aegis function which may result in the symbolic
       links becoming out-of-date is the integration of another change, as
       this may alter the presence or absence of files in the baseline.  In
       this situation, the default _a_e_b(1) action is to ignore the user
       preference and the verify symbolic links.

       There are two command line options which modify _a_e_b(1) behavior
       further: the ----VVeerriiffyy__SSyymmbboolliicc__LLiinnkkss option says to verify the symbolic
       links; and the ----AAssssuummee__SSyymmbboolliicc__LLiinnkkss option says to assume the
       symbolic links are up-to-date.  In each case the option over-rides the
       default and the user preference.

   NNoottiiffiiccaattiioonn
       The notification commands that would be run by the _a_e_c_p(1), _a_e_d_b(1),
       _a_e_n_f(1), _a_e_n_t(1) and _a_e_r_m(1) commands are run, as appropriate.  The
       _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d is also run, if set.  See _a_e_p_c_o_n_f(5) for more
       information.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --NNoott__LLooggggiinngg
               This option may be used to disable the automatic logging of
               output and errors to a file.  This is often useful when several
               aegis commands are combined in a shell script.

       --TTOOuucchh  This option may be used to request that each change source file
               have its last-modified time-stamp be updated to the current
               time.  This is the default.  Derived files and other non-source
               file are left alone.

       --NNoo__TTOOuucchh
               This option may be used to request that the last-modified time-
               stamp of each source file be left unmodified.

       --MMIINNIIMMuumm
               This option may be used to request a minimum set of symbolic
               links, when the _c_r_e_a_t_e___s_y_m_l_i_n_k_s___t_o___b_a_s_e_l_i_n_e functions are being
               used.  This is useful if you want to simulate something like
               _a_e_i_b _-_m_i_n_i_m_u_m in the development directory.  This option is not
               meaningful if symbolic links are not being used.

               This option also says not to remove normal files which occlude
               project source files.  This is a common technique used to
               temporarily over-ride project source files.  The ``_a_e_c_p _-_r_e_a_d_-
               _o_n_l_y_'_' _c_o_m_m_a_n_d _w_o_u_l_d _h_a_v_e _b_e_e_n _m_o_r_e _a_p_p_r_o_p_r_i_a_t_e_.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -clone(1)                                                aegis -clone(1)



NNAAMMEE
       aegis -clone - make an exact copy of a change

SSYYNNOOPPSSIISS
       aaeeggiiss --CCLLoonnee [ _o_p_t_i_o_n...  ] _c_h_a_n_g_e_-_n_u_m_b_e_r [ change-number ]
       aaeeggiiss --CCLLoonnee --HHeellpp
       aaeeggiiss --CCLLoonnee --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_C_L_o_n_e command is used to create exact replicas of changes.
       This is of most use when a change need to be applied to several
       parallel branches.

       One change number _m_u_s_t be supplied.  This is the change to be
       replicated.  If any branch options are given (see below) the mandatory
       change number applies to the branch specified.  If no branch is
       specified, the change applies to the project (implicit or explicit).

       If the optional second change number is supplied, this is the change
       number to be created to hold the replica; if it is not supplied, the
       next available change number will be used.

       If the change to be replicated has been completed, the appropriate file
       revisions will be extracted from history; otherwise the files will be
       copied from the development directory of the change to be copied.  Be
       warned: if a file in the change which was cloned subsequently changes,
       those changes _w_i_l_l _n_o_t automagically be tracked.  It is best if changes
       are cloned at a stable time, such as one of the states after develop
       end, or even after integrate pass.

   DDeevveellooppmmeenntt DDiirreeccttoorryy LLooccaattiioonn
       PPlleeaassee NNoottee:: Aegis also consults the underlying file system, to
       determine its notion of maximum file size.  Where the file system's
       maximum file size is less than _m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h, the filesystem
       wins.  This can happen, for example, when you are using the Linux
       UMSDOS file system, or when you have an NFS mounted an ancient V7
       filesystem.  Setting _m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h to 255 in these cases does
       not alter the fact that the underlying file systems limits are far
       smaller (12 and 14, respectively).

       If your development directories (or your whole project) is on
       filesystems with filename limitations, or a portion of the
       heterogeneous builds take place in such an environment, it helps to
       tell Aegis what they are (using the project _c_o_n_f_i_g file's fields) so
       that you don't run into the situation where the project builds on the
       more permissive environments, but fails with mysterious errors in the
       more limited environments.

       If your development directories are routinely on a Linux UMSDOS
       filesystem, you would probably be better off setting
       _d_o_s___f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d _= _t_r_u_e, and also changing the
       _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___t_e_m_p_l_a_t_e field.  Heterogeneous development with
       various Windows environments may also require this.

WWHHIITTEEOOUUTT
       Aegis provides you with what is often called a ``view path'' which
       indicates to development tools (compilers, build systems, _e_t_c) look
       first in the development directory, then in the branch baseline, and so
       on up to the trunk baseline.

       The problem with view paths is that in order to remove files, you need
       some kind of "whiteout" to say ``stop looking, it's been removed.''

       When you user the _a_e_r_m(1) or _a_e_m_v(1) commands, this means "add
       information to this change which will remove the file from the baseline
       when this change is integrated".  _I_._e_. while the change is in the _b_e_i_n_g
       _d_e_v_e_l_o_p_e_d state, the file is only "removed" in the development
       directory - it's still present in the baseline, and will be until the
       change is successfully integrated.

       When you use the _a_e_r_m(1) or _a_e_m_v(1) commands, Aegis will create a 1K
       file to act as the whiteout.  It's contents are rather ugly so that if
       you compile or include the "removed" file accidentally, you get a fatal
       error.  This will remind you to remove obsolete references.

       When the change in integrated, the removed file is _n_o_t copied/linked
       from the baseline to the integration directory, and is _n_o_t copied from
       the development directory.  At this time it is physically gone (no
       whiteout).  It is assumed that because of the error inducing whiteout
       all old references were found and fixed while the change was in the
       _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.

   FFiillee MMaanniiffeessttss
       When generating list of files to be compiled or linked, it is important
       that the file manifest be generated from information known by Aegis,
       rather than from the file system.  This is for several reasons:

       (a) Aegis knows exactly what (source) files are where, whereas
           everything else is inferring Aegis' knowledge; and

       (b) looking in the file system is hard when the view path is longer
           that 2 directories (and Aegis' branching method can make it
           arbitrarily long); and

       (c) The whiteout files, and anything else left ``lying around'', will
           confuse any method which interrogates the file system.

       The easiest way to use Aegis' file knowledge is with something like an
       _a_w_k(1) script processing the Aegis file lists.  For example, you can do
       this with _m_a_k_e(1) as follows:
              # generate the file manifest
              manifest.make.inc: manifest.make.awk
                   ( aegis -l cf -ter ; aegis -l pf -ter ) | \
                   awk -f manifest.make.awk > manifest.make.inc
              # now include the file manifest
              include manifest.make.inc
       Note: this would be inefficient of you did it once per directory, but
       there is nothing stopping you writing numerous assignments into the
       _m_a_n_i_f_e_s_t_._m_a_k_e_._i_n_c file, all in one pass.

       It is possible to do the same thing with Aegis' report generator (see
       _a_e_r(1) for more information), but this is more involved than the _a_w_k(1)
       script.  However, with the information "straight from the horse's
       mouth" as it were, it can also be much smarter.

       This file manifest would become out-of-date without an interlock to
       Aegis' file operations commands.  By using the _p_r_o_j_e_c_t_-_f_i_l_e___c_o_m_m_a_n_d and
       _c_h_a_n_g_e___f_i_l_e___c_o_m_m_a_n_d fields of the project _c_o_n_f_i_g file (see _a_e_p_c_o_n_f(5)
       for more information), you can delete this file at strategic times.
              /* run when the change file manifest is altered */
              change_file_command = "rm -f manifest.make.inc";
              /* run when the project file manifest is altered */
              project_file_command = "rm -f manifest.make.inc";
       The new file manifest will thus be re-built during the next _a_e_b(1)
       command.

   OOppttiioonnss aanndd PPrreeffeerreenncceess
       There is a --NNoo--WWhhiitteeOOuutt option, which may be used to suppress whiteout
       files when you use the _a_e_r_m(1) and _a_e_m_v(1) commands.  There is a
       corresponding --WWhhiitteeOOuutt option, which is usually the default.

       There is a _w_h_i_t_e_o_u_t___p_r_e_f_e_r_e_n_c_e field in the user preferences file (see
       _a_e_u_c_o_n_f(5) for more information) if you want to set this option more
       permanently.

   WWhhiitteeoouutt FFiillee TTeemmppllaatteess
       The _w_h_i_t_e_o_u_t___t_e_m_p_l_a_t_e field of the project _c_o_n_f_i_g file may be used to
       produce language-specific error files.  If no whiteout template entry
       matches, a very ugly 1KB file will be produced - it should induce
       compiler errors for just about any language.

       If you want a more human-readable error message, entries such as
              whiteout_template =
              [
                   {
                   pattern = [ "*.[ch]" ];
                   body = "#error This file has been removed.";
                   }
              ];
       can be very effective (this example assumes _g_c_c(1) is being used).

       If it is essential that _n_o whiteout file be produced, say for C source
       files, you could use a whiteout template such as
              whiteout_template =
              [
                   { pattern = [ "*.c" ]; }
              ];
       because an absent _b_o_d_y sub-field means generate no whiteout file at
       all.

       You may have more than one whiteout template entry, but note that the
       order of the entries is important.  The first entry which matches will
       be used.

   NNoottiiffiiccaattiioonn
       The notification commands that would be run by the _a_e_c_p(1), _a_e_d_b(1),
       _a_e_n_f(1), _a_e_n_t(1) and _a_e_r_m(1) commands are run, as appropriate.  The
       _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d is also run, if set.  See _a_e_p_c_o_n_f(5) for more
       information.

OOPPTTIIOONNSS
       The following options are understood:

       --BBRRaanncchh _n_u_m_b_e_r
               This option may be used to specify a different branch for the
               origin file, rather than the baseline.  (See also --TTRRuunnkk
               option.  Please Note: the --BBRRaanncchh option does not take a
               project name, just the branch number suffix.

       --GGrraannddPPaarreenntt
               This option may be used to specify the grandparent branch (one
               up from the current branch) for the origin file, rather than
               the baseline.  (The -grandparent option is the same as the
               ``-branch ..'' option.)

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --DDIIRReeccttoorryy _p_a_t_h
               This option may be used to specify which directory is to be
               used.  It is an error if the current user does not have
               appropriate permissions to create the directory path given.
               This must be an absolute path.

               Caution: If you are using an automounter do not use `pwd` to
               make an absolute path, it usually gives the wrong answer.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --WWhhiitteeOOuutt
               This option may be used to request that deleted files be
               replaced by a ``whiteout'' file in the development directory.
               The idea is that compiling such a file will result in a fatal
               error, in order that all references may be found.  This is
               usually the default.

       --NNoo__WWhhiitteeOOuutt
               This option may be used to request that no ``whiteout'' file be
               placed in the development directory.

       --OOuuttppuutt _f_i_l_e_n_a_m_e
               This option may be used to specify a filename which is to be
               written with the automatically determined change number.
               Useful for writing scripts.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTRRuunnkk
               This option may be used to specify the project trunk for the
               origin file, rather than the baseline.  (See also --BBRRaanncchh
               option, the -trunk option is the same as the ``-branch -''
               option.)

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

EERRRROORRSS
       It is an error if the current user is not an administrator of the
       project.  (In some cases it is possible for developers of a project to
       create changes, see _a_e_p_a_t_t_r(5) for more information.)

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_n_c(1) Create a new change.

       _a_e_c_a(1) modify the attributes of a change

       _a_e_n_a(1) add a new administrator to a project

       _a_e_p_a(1) modify the attributes of a project

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aecomp(1)                                                            aecomp(1)



NNAAMMEE
       aecomp - compare two changes

SSYYNNOOPPSSIISS
       aaeeccoommpp _n_u_m_b_e_r [ _n_u_m_b_e_r ]

DDEESSCCRRIIPPTTIIOONN
       The _a_e_c_o_m_p script is used to compare two changes, using _t_k_d_i_f_f(1) to
       display the changes.  If you give one change on the command line, the
       other change is determined in the usual way.  If you give two changes,
       those are the two compared.  Both changes must be in the _b_e_i_n_g
       _d_e_v_e_l_o_p_e_d state (it's only a script, after all).

       Basically, aecomp allows you to specify two project/change pairs (ie
       the compared changes don't have to be in the same branch or project).
       aecomp attempts to use defaults (for project and change number) where
       possible.  As a minimum, it needs a single change number as an option.
       A list of files which are common between the two changes is constructed
       and presented.  Double clicking on any of the file names will _t_k_d_i_f_f
       the two versions (ie the files in each change).

       It is useful after you have used _a_e_c_l_o_n_e(1), then modified a change and
       subsequently are wondering what on earth you did.  Files are considered
       to be "common" if they have the same name.  In the case of a file which
       has been moved, it's original filename is used (the diff of course
       takes place against the new file name).

AAUUTTHHOORR
aecomplete(1)                                                    aecomplete(1)



       Scott Finneran <scottf@lucent.com>

NNAAMMEE
       aecomplete - command completion

SSYYNNOOPPSSIISS
       aaeeccoommpplleettee _c_m_d_-_n_a_m_e _i_n_c_o_m_p_l_e_t_e_-_w_o_r_d _p_r_e_v_i_o_u_s_-_w_o_r_d

DDEESSCCRRIIPPTTIIOONN
       The _a_e_c_o_m_p_l_e_t_e command is used to perform command completion for
       shells.

       See _b_a_s_h(1) for more information about Bash command completion, and how
       this command is expected to be executed.

       At present, this is the only shell supported.  The code has been
       written to be extensible, should other shells have programmable
       completion by external programs.

EEXXIITT SSTTAATTUUSS
       The _a_e_c_o_m_p_l_e_t_e command will exit with a status of 1 on any error.  The
       _a_e_c_o_m_p_l_e_t_e command will only exit with a status of 0 if there are no
       errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

CCOOPPYYRRIIGGHHTT
       aecomplete version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aecomplete program comes with ABSOLUTELY NO WARRANTY; for details
       use the '_a_e_c_o_m_p_l_e_t_e _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software
       and you are welcome to redistribute it under certain conditions; for
       details use the '_a_e_c_o_m_p_l_e_t_e _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -CoPy_file(1)                                        aegis -CoPy_file(1)



NNAAMMEE
       aegis -CoPy_file - copy a file into a change

SSYYNNOOPPSSIISS
       aaeeggiiss --CCooPPyy__ffiillee [ _o_p_t_i_o_n...  ] _f_i_l_e_n_a_m_e...
       aaeeggiiss --CCooPPyy__ffiillee --IINNDDeeppeennddeenntt [ _o_p_t_i_o_n...  ] _f_i_l_e_n_a_m_e...
       aaeeggiiss --CCooPPyy__ffiillee --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --CCooPPyy__ffiillee --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_C_o_P_y___f_i_l_e command is used to copy a file into a change.  The
       named files will be copied from the baseline into the development
       directory, and added to the list of files in the change.  The version
       of files copied from the baseline is remembered.

       This command may be used to copy tests into a change, not just source
       files.  Tests are treated just like any other source file, and are
       subject to the same process.

       Warning: If there are files in the development directory of the same
       name they will be overwritten by this command.

       You may also name directories.  All of the source files in the
       directories named, and all directories below them, will be copied from
       the baseline into the development directory, and added to the list of
       files in the change.

       When copying files explicitly, it is an error if the file is already
       part of the change.  When you name a directory, all of the source files
       in the project below that directory are copied, except any which are
       already in the change.  It is an error if none of the files implicitly
       named by the directory can be used.

       If you want to change a copied source file to be executable (shell
       scripts, for example) then you simply use the normal _c_h_m_o_d(1) command;
       the reverse to make it not executable.  If any of the file's executable
       bits are set at _a_e_d_e(1) time the file is remembered as executable and
       all execute bits (minus the project's umask) will be set by subsequent
       _a_e_c_p(1) commands.

   FFiillee NNaammee IInntteerrpprreettaattiioonn
       The aegis program will attempt to determine the project file names from
       the file names given on the command line.  All file names are stored
       within aegis projects as relative to the root of the baseline directory
       tree.  The development directory and the integration directory are
       shadows of this baseline directory, and so these relative names apply
       here, too.  Files named on the command line are first converted to
       absolute paths if necessary.  They are then compared with the baseline
       path, the development directory path, and the integration directory
       path, to determine a baseline-relative name.  It is an error if the
       file named is outside one of these directory trees.

       The --BBAAssee__RREEllaattiivvee option may be used to cause relative filenames to be
       interpreted as relative to the baseline path; absolute filenames will
       still be compared with the various paths in order to determine a
       baseline-relative name.

       The _r_e_l_a_t_i_v_e___f_i_l_e_n_a_m_e___p_r_e_f_e_r_e_n_c_e in the user configuration file may be
       used to modify this default behavior.  See _a_e_u_c_o_n_f(5) for more
       information.

   PPrroocceessss SSiiddee EEffffeeccttss
       This command will cancel any build or test registrations, because
       adding another file logically invalidates them.  If the project _c_o_n_f_i_g
       file was added, any diff registration will also be canceled.

       When the change files are listed (_a_e_g_i_s _-_L_i_s_t _C_h_a_n_g_e___F_i_l_e_s _-_T_E_R_s_e) the
       copied files will appear in the listing.  When the project files are
       listed with an explicit change number (_a_e_g_i_s _-_L_i_s_t _P_r_o_j_e_c_t___F_i_l_e_s _-_T_E_R_s_e
       _-_C_h_a_n_g_e N) none of the change's files, including the copied files, will
       appear in the terse listing.  These two features are very helpful when
       calling aegis from within a DMT to generate the list of source files.

TTHHEE BBAASSEELLIINNEE LLOOCCKK
       The baseline lock is used to ensure that the baseline remains in a
       consistent state for the duration of commands which need to read the
       contents of files in the baseline.

       The commands which require the baseline to be consistent (these include
       the _a_e_b(1), _a_e_c_p(1) and _a_e_d(1) commands) take a baseline _r_e_a_d lock.
       This is a non-exclusive lock, so the concurrent development of changes
       is not hindered.

       The command which modifies the baseline, _a_e_i_p_a_s_s(1), takes a baseline
       _w_r_i_t_e lock.  This is an exclusive lock, forcing _a_e_i_p_a_s_s(1) to block
       until there are no active baseline read locks.

       It is possible that one of the above development commands will block
       until an in-progress _a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___P_A_S_S completes.  This is usually
       of short duration while the project history is updated.  The delay is
       essential so that these commands receive a consistent view of the
       baseline.  No other integration command will cause the above
       development commands to block.

       When aegis' branch functionality is in use, a read (non-exclusive) lock
       is taken on the branch baseline and also each of the "parent"
       baselines.  However, a baseline write (exclusive) lock is only taken on
       the branch baseline; the "parent" baselines are only read (non-
       exclusive) locked.

TTEESSTT CCOORRRREELLAATTIIOONNSS
       The ``aegis -Test -SUGgest'' command may be used to have aegis suggest
       suitable regression tests for your change, based on the source files in
       your change.  This automatically focuses testing effort to relevant
       tests, reducing the number of regression tests necessary to be
       confident that you have not introduced a bug.

       The test correlations are generated by the ``aegis -Integrate_Pass''
       command, which associates each test in the change with each source file
       in the change.  Thus, each source file accumulates a list of tests
       which have been associated with it in the past.  This is not as exact
       as code coverage analysis, but is a reasonable approximation in
       practice.

       The _a_e_c_p(1) and _a_e_n_f(1) commands are used to associate files with a
       change.  While they do not actively perform the association, these are
       the files used by _a_e_i_p_a_s_s(1) and _a_e_t(1) to determine which source files
       are associated with which tests.

   TTeesstt CCoorrrreellaattiioonn AAccccuurraaccyy
       Assuming that the testing correlations are accurate and that the tests
       are evenly distributed across the function space, there will be a less
       than _1_/_n_u_m_b_e_r chance that a relevant test has not been run by the
       ``aegis -Test -SUGgest _n_u_m_b_e_r'' command.  A small amount of noise is
       added to the test weighting, so that unexpected things are sometimes
       tested, and the same tests are not run every time.

       Test correlation accuracy can be improved by ensuring that:

       +o Each change should be strongly focused, with no gratuitous file
         inclusions.  This avoids spurious correlations.

       +o Each item of new functionality should be added in an individual
         change, rather than several together.  This strongly correlates tests
         with functionality.

       +o Each bug should be fixed in an individual change, rather than several
         together.  This strongly correlates tests with functionality.

       +o Test correlations will be lost if files are moved.  This is because
         correlations are by name.

       The best way for tests to correlate accurately with source files is
       when a change contains a test and exactly those files relating to the
       functionality under test.  Too many spurious files will weaken the
       usefulness of the testing correlations.

   NNoottiiffiiccaattiioonn
       The _c_o_p_y___f_i_l_e___c_o_m_m_a_n_d in the project _c_o_n_f_i_g file is run, if set.  The
       _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d is also run, if set, and if there has been an
       integration recently.  See _a_e_p_c_o_n_f(5) for more information.

OOPPTTIIOONNSS
       The following options are understood:

       --BBAAssee__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the base of the source tree.  See
               _a_e_u_c_o_n_f(5) for the corresponding user preference.

       --CCUUrrrreenntt__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the current directory.  This is usually
               the default.  See _a_e_u_c_o_n_f(5) for the corresponding user
               preference.

       --BBRRaanncchh _n_u_m_b_e_r
               This option may be used to specify a different branch for the
               origin file, rather than the baseline.  (See also --TTRRuunnkk
               option.  Please Note: the --BBRRaanncchh option does not take a
               project name, just the branch number suffix.

       --GGrraannddPPaarreenntt
               This option may be used to specify the grandparent branch (one
               up from the current branch) for the origin file, rather than
               the baseline.  (The -grandparent option is the same as the
               ``-branch ..'' option.)

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --DDEELLttaa _n_u_m_b_e_r
               This option may be used to specify a particular delta in the
               project's history to copy the file from, rather than the most
               current version.  If the delta has been given a name (see
               _a_e_d_n(1) for how) you may use a delta name instead of a delta
               number.  It is an error if the delta specified does not exist.
               Delta numbers start from 1 and increase; delta 0 is a special
               case meaning ``when the branch started''.

       --DDEELLttaa__DDaattee _s_t_r_i_n_g
               This option may be used to specify a particular date and time
               in the project's history to copy the file from, rather than the
               most current version.  It is an error if the string specified
               cannot be interpreted as a valid date and time.  Quote the
               string if you need to use spaces.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --IINNDDeeppeennddeenntt
               This option is used to specify that the copy is to be run
               independent of any particular change.  The files will be copied
               relative to the current directory.

       --KKeeeepp
               This option may be used to retain files and/or directories
               usually deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --NNoo__KKeeeepp
               This option may be used to ensure that the files and/or
               directories are deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --NNoott__LLooggggiinngg
               This option may be used to disable the automatic logging of
               output and errors to a file.  This is often useful when several
               aegis commands are combined in a shell script.

       --OOuuttppuutt _f_i_l_e_n_a_m_e
               This option may be used to specify an output file of a file
               being copied from the baseline.  Only one baseline file may be
               named when this option is used.  The file name "-" is
               understood to mean the standard output.  This option does not
               add the file to the set of change files.  _N_o _l_o_c_k_s are taken
               when this option is used, not even the baseline read lock.

       --OOvveerrWWrriittiinngg
               This option may be used to force overwriting of files.  The
               default action is to give an error if an existing file would be
               overwritten.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --RReeaadd__OOnnllyy
               This option may be used to specify that the file is to be used
               to insulate the change from the baseline.  The user does not
               intend to edit the file.  These files must be uncopied before
               development may end.

       --RREESScciinndd
               This option may be used to rescind (roll back) a completed
               change.  The change to rescind (roll back) is specified in the
               usual way, with one of the --delta options.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --TTRRuunnkk
               This option may be used to specify the project trunk for the
               origin file, rather than the baseline.  (See also --BBRRaanncchh
               option, the -trunk option is the same as the ``-branch -''
               option.)

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aecp 'aegis -cp \!* -v'
       sh$     aecp(){aegis -cp "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
       It is an error if the change is not assigned to the current user.
       It is an error if the file is already in the change and the --OOvveerrWWrriittee
       option is not specified.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

EEXXAAMMPPLLEESS
       Here are some simple examples.  Remember that most commands are
       relative to the current directory, even though these examples assume
       you are at the base of the development directory tree.

   CCooppyy WWhhoollee PPrroojjeecctt
       To copy the whole project into your change, use the command
              aecp .
       The trailing dot is part of the command, it means "the currect
       directory and everything below it".  This works for any directory in
       your project source tree, if you want to be more seledctive.

   PPrrrroodduuccee EEaarrlliieerr PPrroojjeecctt VVeerrssiioonn
       You you wish to exactly reproduces the sources for an earlier version
       of your project, you need to know the edelta number (use _a_e_l _p_r_o_j_-
       _h_i_s_t_o_r_y to find it).  Then use this command:
              aecp -delta _n .
       where _n is the delta number from the project history.  Again, the
       trailing dot is part of the command.  By using the _$_v_e_r_s_i_o_n
       substitution (see _a_e_s_u_b(5) for more information) you can embed this
       delta number into your program before distributing it.

       It is also possible to give a previous change number, instead, using
       this command:
              aecp -delta-from-change _n .
       where _n is the change number of interest.  Again, the trailing dot is
       part of the command.

   RReesscciinndd aa CChhaannggee
       When you need to rescind (back out) a completed change, it will
       probably have been some time ago, so you need to know the delta number
       or change number.  Use this command:
              aecp -delta _n -rescind .
       where _n is the delta number of interest.  All of the other -delta
       variantrs also work, so if you know the change number, you can be more
       selective about which files to copy:
              aecp -delta-from-change _n `aegis -l cf -ter -c _n`
       where _n is the change number of interest.  This only copies the files
       which were in the offending change.

SSEEEE AALLSSOO
       _a_e_b(1)  build also takes a baseline read lock (non-exclusive)

       _a_e_c_p_u(1)
               reverse action of aecp

       _a_e_d_b(1) begin development of a change

       _a_e_d_n(1) assign a name to a delta

       _a_e_i_p_a_s_s(1)
               integrate pass takes a baseline write lock (exclusive)

       _a_e_m_v(1) rename a file as part of a change

       _a_e_n_f(1) add a new file to a change

       _a_e_r_m(1) add files to be deleted to a change

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -CoPy_file_Undo(1)                              aegis -CoPy_file_Undo(1)



NNAAMMEE
       aegis -CoPy_file_Undo - reverse action of aecp

SSYYNNOOPPSSIISS
       aaeeggiiss --CCooPPyy__ffiillee__UUnnddoo [ _o_p_t_i_o_n...  ] _f_i_l_e_n_a_m_e...
       aaeeggiiss --CCooPPyy__ffiillee__UUnnddoo --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --CCooPPyy__ffiillee__UUnnddoo --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_C_o_P_y___f_i_l_e___U_n_d_o command is used to delete files previously
       copied into a change.  The named files will be removed from the list of
       files in the change.

       The file is deleted from the development directory unless the --KKeeeepp
       option is specified.  The --KKeeeepp option should be used with great care,
       as you can confuse tools such as _m_a_k_e(1) by leaving these files in
       place.

       You may name a directory to delete from the change all files in that
       directory tree previously copied into the change, other files in the
       tree will be ignored.  It is an error if there are no relevant files.

   BBrraanncchh _v_s CChhaannggee
       The _a_e_c_p_u(1) command may only be applied to a change.  If you wish to
       perform the same operation on a branch, use the _a_e_m_t(1) command,
       through the agency of a change.

   FFiillee NNaammee IInntteerrpprreettaattiioonn
       The aegis program will attempt to determine the project file names from
       the file names given on the command line.  All file names are stored
       within aegis projects as relative to the root of the baseline directory
       tree.  The development directory and the integration directory are
       shadows of this baseline directory, and so these relative names apply
       here, too.  Files named on the command line are first converted to
       absolute paths if necessary.  They are then compared with the baseline
       path, the development directory path, and the integration directory
       path, to determine a baseline-relative name.  It is an error if the
       file named is outside one of these directory trees.

       The --BBAAssee__RREEllaattiivvee option may be used to cause relative filenames to be
       interpreted as relative to the baseline path; absolute filenames will
       still be compared with the various paths in order to determine a
       baseline-relative name.

       The _r_e_l_a_t_i_v_e___f_i_l_e_n_a_m_e___p_r_e_f_e_r_e_n_c_e in the user configuration file may be
       used to modify this default behavior.  See _a_e_u_c_o_n_f(5) for more
       information.

   PPrroocceessss SSiiddee EEffffeeccttss
       This command will cancel any build or test registrations, because
       deleting a file logically invalidates them.  If the project _c_o_n_f_i_g file
       was deleted, any diff registration will also be canceled.

       The difference file (,D) will also be removed, however any DMT derived
       files (e.g a .o file from a .c file) will not be removed.  This is
       because aegis is decoupled from the DMT, and cannot know what these
       derived file may be called.  You may need to delete derived files
       manually.

   NNoottiiffiiccaattiioonn
       The _c_o_p_y___f_i_l_e___u_n_d_o___c_o_m_m_a_n_d in the project _c_o_n_f_i_g file is run, if set.
       The _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d is also run, if set, and if there has been an
       integration recently.  See _a_e_p_c_o_n_f(5) for more information.

OOPPTTIIOONNSS
       The following options are understood:

       --BBAAssee__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the base of the source tree.  See
               _a_e_u_c_o_n_f(5) for the corresponding user preference.

       --CCUUrrrreenntt__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the current directory.  This is usually
               the default.  See _a_e_u_c_o_n_f(5) for the corresponding user
               preference.

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --IInntteerraaccttiivvee
               Specify that aegis should ask the user for confirmation before
               deleting each file.  Answer the question _y_e_s to delete the
               file, or _n_o to keep the file.  You can also answer _a_l_l to
               delete the file and all that follow, or _n_o_n_e to keep the file
               and all that follow.

               Defaults to the user's _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

               If aegis is running in the background, the question will not be
               asked, and the files will be deleted.

       --KKeeeepp
               This option may be used to retain files and/or directories
               usually deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --NNoo__KKeeeepp
               This option may be used to ensure that the files and/or
               directories are deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --UUNNCChhaannggeedd
               Examine the named files to see if they are unchanged.  Only
               remove the unchanged files from the change, and leave the files
               which have changed.  If no files are named on the command line
               all change files are checked.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aecpu 'aegis -cpu \!* -v'
       sh$     aecpu(){aegis -cpu "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
       It is an error if the change is not assigned to the current user.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_c_p(1) copy files into a change

       _a_e_m_t(1) make branch files transparent

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -DIFFerence(1)                                      aegis -DIFFerence(1)


NNAAMMEE
       aegis -DIFFerence - find differences between a change and the baseline

SSYYNNOOPPSSIISS
       aaeeggiiss --DDIIFFFFeerreennccee [ _f_i_l_e_n_a_m_e...  ] [ _o_p_t_i_o_n...  ]
       aaeeggiiss --DDIIFFFFeerreennccee --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --DDIIFFFFeerreennccee --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_D_I_F_F_e_r_e_n_c_e command is used to generate difference listings
       between source files in the the development directory and the baseline.
       The purpose is to enable reviewers to find each and every edit
       performed on the source files.  The difference listings will be placed
       into files named for the sources files but with an additional ",D"
       suffix.

       The command used to perform the differences is specified in the
       _d_i_f_f___c_o_m_m_a_n_d field of the project _c_o_n_f_i_g file (see _a_e_p_c_o_n_f(5) for more
       information).

       If no files are named on the command line, all files in the change will
       be differenced.

       You may name a directory on the command line, and all files in the
       change in that directory tree will be differenced.

   FFiillee NNaammee IInntteerrpprreettaattiioonn
       The aegis program will attempt to determine the project file names from
       the file names given on the command line.  All file names are stored
       within aegis projects as relative to the root of the baseline directory
       tree.  The development directory and the integration directory are
       shadows of this baseline directory, and so these relative names apply
       here, too.  Files named on the command line are first converted to
       absolute paths if necessary.  They are then compared with the baseline
       path, the development directory path, and the integration directory
       path, to determine a baseline-relative name.  It is an error if the
       file named is outside one of these directory trees.

       The --BBAAssee__RREEllaattiivvee option may be used to cause relative filenames to be
       interpreted as relative to the baseline path; absolute filenames will
       still be compared with the various paths in order to determine a
       baseline-relative name.

       The _r_e_l_a_t_i_v_e___f_i_l_e_n_a_m_e___p_r_e_f_e_r_e_n_c_e in the user configuration file may be
       used to modify this default behavior.  See _a_e_u_c_o_n_f(5) for more
       information.

TTHHEE BBAASSEELLIINNEE LLOOCCKK
       The baseline lock is used to ensure that the baseline remains in a
       consistent state for the duration of commands which need to read the
       contents of files in the baseline.

       The commands which require the baseline to be consistent (these include
       the _a_e_b(1), _a_e_c_p(1) and _a_e_d(1) commands) take a baseline _r_e_a_d lock.
       This is a non-exclusive lock, so the concurrent development of changes
       is not hindered.

       The command which modifies the baseline, _a_e_i_p_a_s_s(1), takes a baseline
       _w_r_i_t_e lock.  This is an exclusive lock, forcing _a_e_i_p_a_s_s(1) to block
       until there are no active baseline read locks.

       It is possible that one of the above development commands will block
       until an in-progress _a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___P_A_S_S completes.  This is usually
       of short duration while the project history is updated.  The delay is
       essential so that these commands receive a consistent view of the
       baseline.  No other integration command will cause the above
       development commands to block.

       When aegis' branch functionality is in use, a read (non-exclusive) lock
       is taken on the branch baseline and also each of the "parent"
       baselines.  However, a baseline write (exclusive) lock is only taken on
       the branch baseline; the "parent" baselines are only read (non-
       exclusive) locked.

   NNoottiiffiiccaattiioonn
       The actions of the command are controlled by the _d_i_f_f___c_o_m_m_a_n_d and
       _m_e_r_g_e___c_o_m_m_a_n_d fields of the project _c_o_n_f_i_g file.  See _a_e_p_c_o_n_f(5) for
       more information.

CCOONNFFLLIICCTT RREESSOOLLUUTTIIOONN
       If the version of a file in the change is not the same as the version
       of the file in the baseline, it is out-of-date; some other change has
       altered the file while this change was being developed.

       When a difference is requested for an out-of-date file, a merge is
       performed between the common ancestor, the version in the baseline, and
       the version in the development directory.  The command used to perform
       the merge is specified by the _m_e_r_g_e___c_o_m_m_a_n_d field of the project _c_o_n_f_i_g
       file (see _a_e_p_c_o_n_f(5) for more information).

       After the merge is performed the version of the file will be changed to
       be the current version, marking the file as up to date, and a new build
       will be required.

       The difference output in the _,_D files contains the result of the merge.
       You should edit them, to make sure the automatic merge has produced
       sensible results, and then rename them to be the corresponding source
       file.

       This merge process works most of the time.  Usually two changes to two
       logically separate areas of functionality will alter two logically
       separate parts of any files they may have in common.  There are
       pathological cases where this merge process is spectacularly useless,
       but these are surprisingly rare in practice.

       If any merges are required no differences will be performed.  An error
       message and a non-zero exit status will also result.  This is to ensure
       that developers notice that merges have been done, and that they
       reconcile the sources and the merged _,_D files before the next
       difference.  See the --NNoo__MMeerrggee and --OOnnllyy__MMeerrggee options, below, for
       exact control of when merging is performed.

IINNTTEEGGRRAATTIIOONN
       During integration, it is also necessary to difference a change.  This
       provides the difference between the branch and its parent, for when
       development on a branch is completed and it is to be reviewed.  The
       baseline of a branch is the development directory of the composite
       change it represents.

OOPPTTIIOONNSS
       The following options are understood:

       --AANNttiicciippaattee _c_h_a_n_g_e_-_n_u_m_b_e_r
               This option is used to nominate a source for the reference
               files, rather than the baseline.  This may be used to
               synchronize with a change without having to wait for it to
               arrive in the baseline.  It is an error if the anticipated
               change is not in one of the _'_b_e_i_n_g _r_e_v_i_e_w_e_d_' or _'_a_w_a_i_t_i_n_g
               _i_n_t_e_g_r_a_t_i_o_n_' or _'_b_e_i_n_g _i_n_t_e_g_r_a_t_e_d_' states.  A merge is always
               performed, because the anticipated change is "about" to make
               any common file out-of-date.  You will still have to perform a
               "real" merge later.

       --BBRRaanncchh _n_u_m_b_e_r
               This option may be used to specify a different branch for the
               origin file, rather than the baseline.  (See also --TTRRuunnkk
               option.  Please Note: the --BBRRaanncchh option does not take a
               project name, just the branch number suffix.

       --GGrraannddPPaarreenntt
               This option may be used to specify the grandparent branch (one
               up from the current branch) for the origin file, rather than
               the baseline.  (The -grandparent option is the same as the
               ``-branch ..'' option.)

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --NNoott__LLooggggiinngg
               This option may be used to disable the automatic logging of
               output and errors to a file.  This is often useful when several
               aegis commands are combined in a shell script.

       --TTRRuunnkk
               This option may be used to specify the project trunk for the
               origin file, rather than the baseline.  (See also --BBRRaanncchh
               option, the -trunk option is the same as the ``-branch -''
               option.)

       --NNoo__MMeerrggee
               This option is used to cause only file differences to be
               generated, even when file versions are out-of-date.  If not
               set, the default is to use the _d_i_f_f___p_r_e_f_e_r_e_n_c_e field of the
               _a_e_u_c_o_n_f(5) file.

       --OOnnllyy__MMeerrggee
               This option is used to cause only file merges to be performed
               on files with out-of-date versions.  Other source files are
               ignored.  If not set, the default is to use the _d_i_f_f___p_r_e_f_e_r_e_n_c_e
               field of the _a_e_u_c_o_n_f(5) file.

       --AAuuttoommaattiicc__MMeerrggee
               This option is used to perform _-_O_n_l_y___M_e_r_g_e if any source files
               have out-of-date versions, otherwise _-_N_o___M_e_r_g_e _i_s _p_e_r_f_o_r_m_e_d_.
               Only merges or differences will be performed, it will never use
               a mixture.  If not set, the default is to use the
               _d_i_f_f___p_r_e_f_e_r_e_n_c_e field of the _a_e_u_c_o_n_f(5) file.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aed 'aegis -diff \!* -v'
       sh$     aed(){aegis -diff "$@" -v}
       For user's convenience, particularly when they have selected the ``no
       merge'' preference, there is also a merge alias:
       csh%    alias aem 'aegis -diff -only_merge \!* -v'
       sh$     aem(){aegis -diff -only_merge $* -v}

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d or _b_e_i_n_g
       _i_n_t_e_g_r_a_t_e_d states.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_b(1)  build also takes a baseline read lock (non-exclusive)

       _a_e_c_p(1) copy file also takes a baseline read lock (non-exclusive)

       _a_e_d_b(1) begin development of a change

       _a_e_i_p_a_s_s(1)
               integrate pass takes a baseline write lock (exclusive)

       _a_e_p_c_o_n_f(5)
               project configuration file format

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Develop_Begin(1)                                aegis -Develop_Begin(1)



NNAAMMEE
       aegis -Develop_Begin - begin development of a change

SSYYNNOOPPSSIISS
       aaeeggiiss --DDeevveelloopp__BBeeggiinn _c_h_a_n_g_e_-_n_u_m_b_e_r [ _o_p_t_i_o_n...  ]
       aaeeggiiss --DDeevveelloopp__BBeeggiinn --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --DDeevveelloopp__BBeeggiinn --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_D_e_v_e_l_o_p___B_e_g_i_n command is used to commence development of a
       change.

       The development directory for the change will be created automatically;
       below the directory specified in the default_development_directory
       field of _a_e_u_c_o_n_f(5), or if not set below the directory specified in the
       default_development_directory field of _a_e_p_a_t_t_r(5), or if not set below
       the current user's home directory.  It is rare to need to know the
       exact pathname of the development directory, as the _a_e_c_d(1) command can
       take you there at any time.

       Successful execution of this command will move the specified change
       from the _a_w_a_i_t_i_n_g _d_e_v_e_l_o_p_m_e_n_t state to the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
                           
                                   awaiting
                                  development
                                       |
                            develop    |develop
                            begin      |begin
                            undo       |
                                     being
                                   developed



   NNoottiiffiiccaattiioonn
       The _d_e_v_e_l_o_p___b_e_g_i_n___c_o_m_m_a_n_d in the project config file (see _a_e_p_c_o_n_f(5)
       for more information) will be run, if specified.  This is run after the
       aegis locks are released, so additional aegis commands may be run from
       here, if used with care.  The symbolic links (see below) have _n_o_t yet
       been created.

   DDeevveellooppmmeenntt DDiirreeccttoorryy LLooccaattiioonn
       PPlleeaassee NNoottee:: Aegis also consults the underlying file system, to
       determine its notion of maximum file size.  Where the file system's
       maximum file size is less than _m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h, the filesystem
       wins.  This can happen, for example, when you are using the Linux
       UMSDOS file system, or when you have an NFS mounted an ancient V7
       filesystem.  Setting _m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h to 255 in these cases does
       not alter the fact that the underlying file systems limits are far
       smaller (12 and 14, respectively).

       If your development directories (or your whole project) is on
       filesystems with filename limitations, or a portion of the
       heterogeneous builds take place in such an environment, it helps to
       tell Aegis what they are (using the project _c_o_n_f_i_g file's fields) so
       that you don't run into the situation where the project builds on the
       more permissive environments, but fails with mysterious errors in the
       more limited environments.

       If your development directories are routinely on a Linux UMSDOS
       filesystem, you would probably be better off setting
       _d_o_s___f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d _= _t_r_u_e, and also changing the
       _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___t_e_m_p_l_a_t_e field.  Heterogeneous development with
       various Windows environments may also require this.

AADDMMIINNIISSTTRRAATTOORR OOVVEERRRRIIDDEE
       It is possible for project administrators to use the --UUsseerr option to
       force a developer to start developing a change.  Some sites prefer to
       work this way.  Note that developers still have the ability to use the
       _a_e_d_b_u(1) command.

       Warning: capricious use of this command will rapidly alienate
       developers.  The defaulting rules, particularly for the change number,
       depend on aegis and the developer agreeing on what the developer is
       currently working on.

       The _f_o_r_c_e_d___d_e_v_e_l_o_p___b_e_g_i_n___n_o_t_i_f_y___c_o_m_m_a_n_d project attribute (see
       _a_e_p_a_t_t_r(5) for more information) will be run when an administrator uses
       the --UUsseerr option, in an attempt to minimize the surprises for
       developers.  A suitable command is
              forced_develop_begin_notify_command =
                  "$datadir/db_forced.sh $p $c $developer";
       This command will send e-mail to the developer, informing her that the
       change has been assigned to her.

SSYYMMBBOOLLIICC LLIINNKKSS
       Many dependency maintenance tools, and indeed some compilers, have
       little or no support for include file search paths, and thus for the
       concept of the two-level directory hierarchy employed by _a_e_g_i_s.  (It
       becomes multi-level when aegis' branching functionality is used.)  To
       allow these tools to be used, _a_e_g_i_s provides the ability to maintain a
       set of symbolic links between the development directory of a change and
       the baseline of a project, so it appears to these tools that all of the
       project's files are present in the development directory.

   PPrroojjeecctt CCoonnffiigguurraattiioonn
       Two boolean fields of the project _c_o_n_f_i_g file control the behavior of
       this feature.  They are the _c_r_e_a_t_e___s_y_m_l_i_n_k_s___b_e_f_o_r_e___b_u_i_l_d and _r_e_m_o_v_e___-
       _s_y_m_l_i_n_k_s___a_f_t_e_r___b_u_i_l_d fields.  See _a_e_p_c_o_n_f(5) for more information.

       If both fields are set to _t_r_u_e, the user never sees the symbolic links,
       because they are added purely for the benefit of the dependency
       maintenance tool during the execution of the _a_e_b(1) command.

       If only the _c_r_e_a_t_e___s_y_m_l_i_n_k_s___b_e_f_o_r_e___b_u_i_l_d field is set to _t_r_u_e (the
       other will default to false) the symbolic links will be created at
       develop begin time (see _a_e_d_b(1) for more information) and also
       maintained by each _a_e_b(1) invocation.  Note that the symbolic links are
       only maintained at these times, so project integrations during the
       course of development may leave the symbolic links in an inconsistent
       state until the next build.

       When files are copied from the baseline into a change, using the
       _a_e_c_p(1) command, the symbolic link pointing into the baseline, if any,
       will be removed before the file is copied.

       NNoottee:: Using this functionality in either form has implications for how
       the rules file of the dependency maintenance tool is written.  Rules
       must _r_e_m_o_v_e their targets before creating them.  (Usually with an _r_m _-_f
       command.)  This is to avoid attempting to write the result on the
       symbolic link, which will point at a read-only file in the project
       baseline.  This is similar to the same requirement for using the _l_i_n_k___-
       _i_n_t_e_g_r_a_t_i_o_n___d_i_r_e_c_t_o_r_y field of the project _c_o_n_f_i_g file.

   UUsseerr CCoonnffiigguurraattiioonn
       There is a _s_y_m_b_o_l_i_c___l_i_n_k___p_r_e_f_e_r_e_n_c_e field in the user configuration
       file (see _a_e_u_c_o_n_f(5) for more information).  This controls whether
       _a_e_b(1) will verify the symbolic links before the build (default) or
       whether it will assume they are up-to-date.  (This field is only
       relevant if _c_r_e_a_t_e___s_y_m_l_i_n_k_s___b_e_f_o_r_e___b_u_i_l_d is true.)

       For medium-to-large projects, verifying the symbolic links can take as
       long as the build itself.  Assuming the symbolic links are up-to-date
       can be a large time-saving for these projects.  It may be advisable to
       review your choice of DMT in such a situation.

       The _a_e_d_b(1) command ddooeess nnoott consult this preference.  Thus, in most
       situations, the symbolic links will be up-to-date when the build is
       performed.  The only Aegis function which may result in the symbolic
       links becoming out-of-date is the integration of another change, as
       this may alter the presence or absence of files in the baseline.  In
       this situation, the default _a_e_b(1) action is to ignore the user
       preference and the verify symbolic links.

       There are two command line options which modify _a_e_b(1) behavior
       further: the ----VVeerriiffyy__SSyymmbboolliicc__LLiinnkkss option says to verify the symbolic
       links; and the ----AAssssuummee__SSyymmbboolliicc__LLiinnkkss option says to assume the
       symbolic links are up-to-date.  In each case the option over-rides the
       default and the user preference.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --DDIIRReeccttoorryy _p_a_t_h
               This option may be used to specify which directory is to be
               used.  It is an error if the current user does not have
               appropriate permissions to create the directory path given.
               This must be an absolute path.

               Caution: If you are using an automounter do not use `pwd` to
               make an absolute path, it usually gives the wrong answer.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --UUsseerr _n_a_m_e
               This option is used to specify the user who is to develop the
               change.  This option may only be used by a project
               administrator.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aedb 'aegis -db \!* -v'
       sh$     aedb(){aegis -db "$@" -v}

EERRRROORRSS
       It is an error if the change does not exist.
       It is an error if the change is not in the _a_w_a_i_t_i_n_g _d_e_v_e_l_o_p_m_e_n_t state.
       It is an error if the current user is not a developer of the specified
       project.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_b(1)  build a change

       _a_e_c_d(1) change directory

       _a_e_c_p(1) copy files into a change

       _a_e_d(1)  find differences between a change and the baseline

       _a_e_d_b_u(1)
               undo the effects of aedb

       _a_e_d_e(1) complete development of a change

       _a_e_m_v(1) rename a file as part of a change

       _a_e_n_c(1) add a new change to a project

       _a_e_n_d(1) add a new developer to a project

       _a_e_n_f(1) add new files to a change

       _a_e_n_t(1) add a new test to a change

       _a_e_p_a(1) modify the attributes of a project

       _a_e_r_m(1) add files to be deleted to a change

       _a_e_t(1)  run tests

       _a_e_p_a_t_t_r(5)
               project attributes file format

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Develop_Begin_Undo(1)                      aegis -Develop_Begin_Undo(1)



NNAAMMEE
       aegis -Develop_Begin_Undo - undo the effects of aedb

SSYYNNOOPPSSIISS
       aaeeggiiss --DDeevveelloopp__BBeeggiinn__UUnnddoo _c_h_a_n_g_e_-_n_u_m_b_e_r [ _o_p_t_i_o_n...  ]
       aaeeggiiss --DDeevveelloopp__BBeeggiinn__UUnnddoo --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --DDeevveelloopp__BBeeggiinn__UUnnddoo --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_D_e_v_e_l_o_p___B_e_g_i_n___U_n_d_o command is used to reverse the effects of
       the 'aegis -Develop_Begin' command.  The development directory is
       discarded, even if the change has files associated with it, and even if
       the development directory is not empty; all files in the development
       directory will be lost.  The change is returned to the _a_w_a_i_t_i_n_g
       _d_e_v_e_l_o_p_m_e_n_t state.
                           
                                   awaiting
                                  development
                                       |
                            develop    |develop
                            begin      |begin
                            undo       |
                                     being
                                   developed



   NNoottiiffiiccaattiioonn
       The _d_e_v_e_l_o_p___b_e_g_i_n___u_n_d_o___c_o_m_m_a_n_d field of the project _c_o_n_f_i_g file is run,
       if set.  See _a_e_p_c_o_n_f(5) for more information.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --IInntteerraaccttiivvee
               Specify that aegis should ask the user for confirmation before
               deleting each file.  Answer the question _y_e_s to delete the
               file, or _n_o to keep the file.  You can also answer _a_l_l to
               delete the file and all that follow, or _n_o_n_e to keep the file
               and all that follow.

               Defaults to the user's _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

               If aegis is running in the background, the question will not be
               asked, and the files will be deleted.

       --KKeeeepp
               This option may be used to retain files and/or directories
               usually deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --NNoo__KKeeeepp
               This option may be used to ensure that the files and/or
               directories are deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --UUsseerr _n_a_m_e
               This option may be used by project administrators to undo the
               effects of using the same option with the _a_e_d_b(1) command.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aedbu 'aegis -dbu \!* -v'
       sh$     aedbu(){aegis -dbu "$@" -v}

EERRRROORRSS
       It is an error if the change is no assigned to the current user.
       It is an error if the change is not in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_d_b(1) begin development of a change

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Develop_End(1)                                    aegis -Develop_End(1)


NNAAMMEE
       aegis -Develop_End - complete development of a change

SSYYNNOOPPSSIISS
       aaeeggiiss --DDeevveelloopp__EEnndd [ _o_p_t_i_o_n...  ]
       aaeeggiiss --DDeevveelloopp__EEnndd --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --DDeevveelloopp__EEnndd --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_D_e_v_e_l_o_p___E_n_d command is used to notify aegis of the
       completion of the development of a change.

       This command checks that you have successfully completed an 'aegis
       -Build' command since any change source file was edited.  See _a_e_b(1)
       for more information.

       This command checks that you have successfully completed an 'aegis
       -DIFFerence' command since any change source file was edited.  See
       _a_e_d(1) for more information.

       This command checks that you have successfully completed an 'aegis
       -Test' command since the last successful build, unless the change has a
       _t_e_s_t___e_x_e_m_p_t attribute.  This command checks that you have successfully
       completed an 'aegis -Test -BaseLine' command, unless the change has a
       _t_e_s_t___b_a_s_e_l_i_n_e___e_x_e_m_p_t attribute.  This command checks that you have
       successfully completed an 'aegis -Test -REGression' command, unless the
       change has a _t_e_s_t___r_e_g_r_e_s_s_i_o_n___e_x_e_m_p_t attribute.  See _a_e_t(1) and
       _a_e_c_a_t_t_r(5) for more information.

       If the change includes the project _c_o_n_f_i_g file, this command checks
       project file names, to make sure they conform to the
       _m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h and _p_o_s_i_x___f_i_l_e_n_a_m_e___c_h_a_r_s_e_t field settings.  See
       _a_e_p_c_o_n_f(5) for more information.

       Successful execution of the command advances the change from the _b_e_i_n_g
       _d_e_v_e_l_o_p_e_d state to the _b_e_i_n_g _r_e_v_i_e_w_e_d state, by default.  The _d_e_v_e_l_o_p___-
       _e_n_d___a_c_t_i_o_n project attribute controls which of the following 3 paths
       are taken.
               
           _d_e_v_e_l_o_p___e_n_d___a_c_t_d_i_e_o_v_n_e_:_l_o_p___e_n_d___a_c_t_i_d_o_e_n_v_:_e_l_o_p___e_n_d___a_c_t_i_o_n_:
          _g_o_t_o___a_w_a_i_t_i_n_g___r_e_g_v_o_i_t_e_o_w___b_e_i_n_g___r_e_g_v_o_i_t_e_o_w___e_a_d_w_a_i_t_i_n_g___i_n_t_e_g_r_a_t_i_o_n

                 being          being          being
               developed      developed      developed
                    |              |              |
                    |develop       |              |
                    |end           |              |
                    |              |              |
                awaiting           |develop       |
                 review            |end           |
                    |              |              |
                    |review        |              |develop
                    |begin         |              |end
                    |              |              |
                 being          being             |
                reviewed       reviewed           |
                    |              |              |
                    |review        |review        |
                    |pass          |pass          |
                    |              |              |
                awaiting       awaiting       awaiting
               integration   integration    integration


                        _(_T_h_i_s _i_s _t_h_e _d_e_f_a_u_l_t_._)


       PPlleeaassee NNoottee:: the third alternative, skipping reviews altogether, should
       only be used for single person projects.  All self-respecting
       commercial enterprise will avoid this alternative.

       Because branches may extend for many months or even years, it is common
       for the user who initiated the branch to be no longer with the project,
       or even the company.  For this reason, project administrators may end
       the development of branches.  For normal changes in this situation, use
       the _a_e_c_h_o_w_n(1) command.

       The change is no longer considered assigned to the developer.

   BBrraanncchheess
       If you get an error message telling you that you can't end a branch
       because a file needs to be merged, see the Branching chapter of the
       Aegis User Guide for more information.

       While changes and branches are almost identical in the ways you
       manipulate them within Aegis, actual file changes must always be done
       in a change.  Thus, it is necessary to create a new change on the
       branch and do a cross-branch grandparent merge before you will be able
       to develop-end a branch which is giving you this error.

   NNoottiiffiiccaattiioonn
       On successful completion of the command, the _d_e_v_e_l_o_p___e_n_d___n_o_t_i_f_y___c_o_m_m_a_n_d
       field of the project attributes file is run, if set.  See _a_e_p_a(1) and
       _a_e_p_a_t_t_r(5) for more information.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aede 'aegis -de \!* -v'
       sh$     aede(){aegis -de "$@" -v}

EERRRROORRSS
       It is an error if the change is not assigned to the current user.
       It is an error if The change is not in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
       It is an error if there has been no successful _'_a_e_g_i_s _-_B_u_i_l_d_' command
       since a change file was last edited.
       It is an error if there has been no successful _'_a_e_g_i_s _-_D_I_F_F_e_r_e_n_c_e_'
       command since a change file was last edited.
       It is an error if there has been no successful _'_a_e_g_i_s _-_T_e_s_t_' command
       since a change file was last edited.
       It is an error if there has been no successful _'_a_e_g_i_s _-_T_e_s_t _-_B_a_s_e_L_i_n_e_'
       command since a change file was last edited.

       It is an error if an read-only file is still copied into the change.
       Read-only files are to insulate a change from the baseline during
       development; they must be removed before development may end.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_b(1)  build a change

       _a_e_c_a(1) list or modify attributes of a change

       _a_e_d(1)  difference a change

       _a_e_d_b(1) begin development of a change

       _a_e_d_e_u(1)
               recall a change for further development

       _a_e_r_f_a_i_l(1)
               fail a change review

       _a_e_r_p_a_s_s(1)
               pass a change review

       _a_e_t(1)  test a change

       _a_e_p_c_o_n_f(5)
               project configuration file format

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Develop_End_Undo(1)                          aegis -Develop_End_Undo(1)



NNAAMMEE
       aegis -Develop_End_Undo - recall a change for further development

SSYYNNOOPPSSIISS
       aaeeggiiss --DDeevveelloopp__EEnndd__UUnnddoo _c_h_a_n_g_e_-_n_u_m_b_e_r [ _o_p_t_i_o_n...  ]
       aaeeggiiss --DDeevveelloopp__EEnndd__UUnnddoo --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --DDeevveelloopp__EEnndd__UUnnddoo --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_D_e_v_e_l_o_p___E_n_d___U_n_d_o command is used to recall a change for
       further development.

       Successful execution of this command returns the change to the _b_e_i_n_g
       _d_e_v_e_l_o_p_e_d state.
                          
                       develop end   being
                              undo developed
                                        |
                                        |develop
                                        |end
                                        |
                                    awaiting
                                     review
                                        |
                                        |review
                                        |begin
                                        |
                                     being
                                    reviewed
                                        |
                                        |review
                                        |pass
                                        |
                                    awaiting
                                  integration



       The files are changed back to being owned by the current user, and
       cease to be read-only.

   NNoottiiffiiccaattiioonn
       On successful completion of the command, the _d_e_v_e_l_o_p___e_n_d___u_n_d_o___n_o_t_i_f_y___-
       _c_o_m_m_a_n_d field of the project attributes file is run, if set.  See
       _a_e_p_a(1) and _a_e_p_a_t_t_r(5) for more information.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aedeu 'aegis -deu \!* -v'
       sh$     aedeu(){aegis -deu "$@" -v}

EERRRROORRSS
       It is an error if the change is not in one of the _b_e_i_n_g _r_e_v_i_e_w_e_d or
       _a_w_a_i_t_i_n_g _i_n_t_e_g_r_a_t_i_o_n states.
       It is an error if the change was not developed by the current user.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_d_e1   complete development of a change

       _a_e_r_p_a_s_s1
               pass review of a change

       _a_e_r_f_a_i_l1
               fail review of a change

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aedist(1)                                                            aedist(1)



NNAAMMEE
       aedist - remotely distribute a change

SSYYNNOOPPSSIISS
       aaeeddiisstt --SSeenndd [ _o_p_t_i_o_n...  ]
       aaeeddiisstt --RReecceeiivvee [ _o_p_t_i_o_n...  ]
       aaeeddiisstt --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeddiisstt --HHeellpp
       aaeeddiisstt --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_d_i_s_t command is used to send and receive change sets to
       facilitate geographically distributed development.  The expected
       transport mechanism is e-mail, however other mechanisms are equally
       possible.

       The basic function is to reproduce a change, so a command like
              aedist -send | aedist -receive
       may be used to clone a change, though less efficiently than _a_e_c_l_o_n_e(1).
       The file format used is designed to withstand mail servers, so
       activities such as
              aedist -send | _e_-_m_a_i_l | aedist -receive
       (where _e_-_m_a_i_l represents sending, transporting and receiving your e-
       mail) will reproduce the change on a remote system.  With suitable
       tools (such as PGP) is it possible to
              aedist -send | encrypt | _e_-_m_a_i_l | decrypt | aedist -receive
       The mechanism is also designed to allow web-based distribution such as
              aedist -send | _w_e_b_-_s_e_r_v_e_r _-_> _w_e_b_-_b_r_o_w_s_e_r | aedist -receive
       by the use of appropriate CGI scripts and mailcap entries.

       It is possible to support both a ``push'' model and a ``pull'' model
       using this command.  For suggestions and ideas for various ways to do
       this, see the Aegis Users Guide.

SSEENNDD
       The send variant takes a specified change, or baseline, and constructs
       a distribution package containing all of the change attributes and
       source file attributes and source file contents.  The result is
       compressed, and encoded into a text format which can be sent as e-mail
       without being corrupted by the mail transfer agents along the way.

   OOppttiioonnss
       The following options are understood by the send variant:

       --BBaasseeLLiinnee
               This option may be used to specify the source of a project,
               rather than a change.  Implies the _-_E_n_t_i_r_e___S_o_u_r_c_e option,
               unless over-ridden.

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --CCOOmmpprreessss
               This option may be used to specify that the output is to be
               compressed.  This is the default.

       --NNoo__CCOOmmpprreessss
               This option may be used to specify that the output is not to be
               compressed.

       --CCoonntteenntt__TTrraannssffeerr__EEnnccooddiinngg _n_a_m_e
               This option may be used to specify the content transfer
               encoding to be used.  It may take one of the following values:

               None    No content transfer encoding is to be performed.

               Base64  The MIME base 64 encoding is to be used.  This is the
                       default.

               Quoted_Printable
                       The MIME quoted printable encoding is to be used.

               Unix_to_Unix_encode
                       The ancient unix-to-unix encoding is to be used.

               These encodings may be abbreviated in the same way as comment
               line options.

       --AAsscciiii__AArrmmoorr
               This means the same as the ``-cte=base64'' option above.

       --NNoo__AAsscciiii__AArrmmoorr
               This means the same as the ``-cte=none'' option above.

       --DDEELLttaa _n_u_m_b_e_r
               This option may be used to specify a particular delta in the
               project's history to copy the file from, rather than the most
               current version.  If the delta has been given a name (see
               _a_e_d_n(1) for how) you may use a delta name instead of a delta
               number.  It is an error if the delta specified does not exist.
               Delta numbers start from 1 and increase; delta 0 is a special
               case meaning ``when the branch started''.

       --DDEELLttaa__DDaattee _s_t_r_i_n_g
               This option may be used to specify a particular date and time
               in the project's history to copy the file from, rather than the
               most current version.  It is an error if the string specified
               cannot be interpreted as a valid date and time.  Quote the
               string if you need to use spaces.

       --DDeessccrriippttiioonn__HHeeaaddeerr
               This option may be used to add an RFC 822 style header to the
               change description being sent, with a From and Date line.  This
               is the default.

       --NNoo__DDeessccrriippttiioonn__HHeeaaddeerr
               This option suppresses the description header.

       --EEnnttiirree__SSoouurrccee
               This option may be used to send the entire source of the
               project, as well as the change source files.

       --PPaarrttiiaall__SSoouurrccee
               This option may be used to send only source files of a change.
               This is the default, except for the _-_B_a_s_e_L_i_n_e option.

       --OOuuttppuutt _f_i_l_e_n_a_m_e
               This option may be used to specify the output file.  The output
               is sent to the standard output by default.

       --PPAATTcchh  This option may be used to add patches for modified files to
               the output, in addition to complete files sources.  This is the
               default.

       --NNoo__PPAATTcchh
               This option may be used to omit patches for modified files to
               the output.  The result will contain only complete files
               sources.  (It also supresses the change number.)

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

RREECCEEIIVVEE
       The receive variant takes a change package created by the send variant
       and creates an Aegis change (see _a_e_n_c(1)) to implement the change
       within.  Files are added to the change (see _a_e_r_m(1), _a_e_c_p(1), _a_e_n_f(1)
       and _a_e_n_t(1)) and then the file contents are unpackaged into the
       development directory.

       The change is then built (see _a_e_b(1)), differenced (see _a_e_d(1)), and
       tested (see _a_e_t(1)).  If all of this is successful, development of the
       change is ended (see _a_e_d(1)).  The automatic process stops at this
       point, so that a local reviewer can confirm that the change is desired.

   NNoottiiffiiccaattiioonn
       The _a_e_d_i_s_t command invokes various other Aegis commands.  The usual
       notifications that these commands would issue are issued.

   OOppttiioonnss
       The following options are understood by the receive variant:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to choose the change number to be used,
               otherwise one will be chosen automatically.

       --DDEELLttaa _n_u_m_b_e_r
               This option may be used to specify a particular delta in the
               project's history to copy the file from, just as for the
               _a_e_c_p(1) command.  You may also use a delta name instead of a
               delta number.

       --DDIIRReeccttoorryy _p_a_t_h
               This option may be used to specify which directory is to be
               used.  It is an error if the current user does not have
               appropriate permissions to create the directory path given.
               This must be an absolute path.

               Caution: If you are using an automounter do not use `pwd` to
               make an absolute path, it usually gives the wrong answer.

       --FFiillee _f_i_l_e_n_a_m_e
               Read the change set from the specified file.  The default is to
               read it from the standard input.  The filename `-' is
               understood to mean the standard input.

               If your system has _l_i_b_c_u_r_l(3), and Aegis was configured to use
               it at compile time (this is the default if it is available) you
               will also be able to specify a Uniform Resource Locator (URL)
               in place of the file name.  The relevant data will be
               downloaded.  (The --VVeerrbboossee option will provide a progress bar.)

       --PPAATTcchh  This option may be used to apply patches from the input, if
               available.  This generally results in fewer merge problems, but
               it requires the two repositories to be well synchronized.  This
               is the default.

       --NNoo__PPAATTcchh
               This option may be used to ignore patches in the input, if any
               are present.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to set the project name.  If not
               specified, the project name in the input package will be used,
               rather than the usual project name defaulting mechanism.

       --TTrroojjaann This option may be used to treat the change set as if it had a
               Trojan horse attack in it.

       --NNoo__TTrroojjaann
               This option may be used to treat the change set as if it
               definitely does not have a Trojan horse attack in it.  _U_s_e _w_i_t_h
               _e_x_t_r_e_m_e _c_a_r_e_.  You need to have authenticated the message with
               something like PGP first aanndd know the the author well.

   SSeeccuurriittyy
       Receiving changes by e-mail, and automatically committing them to the
       baseline without checking them, would be a recipe for disaster.  A
       number of safeguards are provided:

       +o The format of the package is confirmed to be correct, and the package
         verified for internal consistency, before it is unpacked and acted
         upon.

       +o The automatic portion of the process stops when development ends.
         This ensures that a local reviewer validates the change before it is
         committed, preventing accidental or malicious damage.

       +o If the change seeks to update the project _c_o_n_f_i_g file, the automatic
         process terminates before the build or difference occurs.  This is
         because this file could contain trojans for these operations, so a
         human must examine the file before the change proceeds any further.

       +o There is a _p_o_t_e_n_t_i_a_l___t_r_o_j_a_n___h_o_r_s_e _= _[ _s_t_r_i_n_g _]_; field in the
         project_c_o_n_f_i_g file.  Nominate build config files, shell scripts, code
         generators, _e_t_c here to specify files in addition to the config file
         which should cause the automatic processing to halt.

       +o The use of e-mail authentication and encryption systems, such as PGP
         and GPG, are encouraged.  However, it is expected that this
         processing will occur after _a_e_d_i_s_t _-_-_s_e_n_d has constructed the package
         and before _a_e_d_i_s_t _-_-_r_e_c_e_i_v_e examines and acts on the package.
         Verification of the sender is the surest defense against trojan
         horses.

       +o Automatic sending and receiving of packages is supported, but not
         implemented within the aedist command.  It is expected that the
         aedist command will be used within shell scripts customized for your
         site and its unique security requirements.  See the Aegis User Guide
         for several different ways to do this.

       +o The more you use Aegis' test management facilities (see _a_e_n_t(1) and
         _a_e_t(1)) the harder it is for an inadequate change to get into the
         baseline.

   DDuupplliiccaattee SSttoorrmmss
       In a distributed development environment, it is common for change sets
       to eventually be propagated back to the originator.  There are
       situations (particularly in some star topologies) where several copies
       of the package will return to the originator.

       If these change sets are not detected at the review stage, and are
       propagated out yet again, there is the possibility of an exponential
       explosion of redundant packages being distributed again and again.

       To combat this, changes are checked after the files are unpacked, but
       before and build or difference or test is performed.  The ``_a_e_c_p_u
       _-_-_u_n_c_h_a_n_g_e_d'' command is used to exclude all files that the local
       repository already has in the desired form.  If no change files remain
       after this, the change is dropped entirely (see _a_e_d_b_u(1) and _a_e_n_c_u(1)).

LLIISSTT
       The list variant can be used to list the contents of a package without
       actually unpacking it first.  The output is reminiscent of the _a_e_g_i_s
       _-_l_i_s_t _c_h_a_n_g_e_-_d_e_t_a_i_l_s output.

   OOppttiioonnss
       The following options are understood by the list variant:

       --FFiillee _f_i_l_e_n_a_m_e
               Read the change set from the specified file.  The default is to
               read it from the standard input.  The filename `-' is
               understood to mean the standard input.

               If your system has _l_i_b_c_u_r_l(3), and Aegis was configured to use
               it at compile time (this is the default if it is available) you
               will also be able to specify a Uniform Resource Locator (URL)
               in place of the file name.  The relevant data will be
               downloaded.  (The --VVeerrbboossee option will provide a progress bar.)

       --OOuuttppuutt _f_i_l_e_n_a_m_e
               This option may be used to specify the output file.  The output
               is sent to the standard output by default.  Only useful with
               the -List option.

OOPPTTIIOONNSS
       The following options to this command haven't been mentioned yet:

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_d_i_s_t program.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_d_i_s_t are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

FFIILLEE FFOORRMMAATT
       The file format re-uses existing formats, rather than introduce
       anything new.  This means it is possible to extract the contents of a
       package even when aedist is unavailable.

       +o The source files and other information is stored as a _c_p_i_o(1)
         archive.

       +o The archive is compressed using the GNU gzip format.  Typically
         primary source files are ASCII text, resulting in significant
         compression.

       +o The compressed result is encoded using the MIME base64 encoding.
         This makes the result approximately 33% larger than the compressed
         binary would be, but still smaller than the primary sources.

       The _c_p_i_o archive is used to store

       etc/project-name
               This contains the project name to apply the package to, unless
               over-ridden by the --project command line option.

       etc/change-set
               This contains the change attributes and the list of source
               files and usages, in _a_e_c_s_t_a_t_e(5) format.

       src/_f_i_l_e_n_a_m_e
               Each source file in the package (named in _e_t_c_/_c_h_a_n_g_e_-_s_e_t)
               appears under the _s_r_c_/ directory.

       Extra files, or files out of order, are a fatal error.

EEXXIITT SSTTAATTUUSS
       The _a_e_d_i_s_t command will exit with a status of 1 on any error.  The
       _a_e_d_i_s_t command will only exit with a status of 0 if there are no
       errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

CCOOPPYYRRIIGGHHTT
       aedist version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aedist program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_d_i_s_t _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_d_i_s_t _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/

CCRREEDDIITTSS
       This program evolved through discussion with a number of people.  If I
       have forgotten anyone, it wasn't intentional.

       Ralf Fassel       <ralf@akutech.de>            Catching trojan horses.
       Florian Xhumari   <Florian.Xhumari@inria.fr>   On the need for pull interfaces.
       Graham Wheeler    <gram@cdsec.com>             HTTP pull interfacing.
aegis -DELta_NAme(1)                                      aegis -DELta_NAme(1)



NNAAMMEE
       aegis -DELta_NAme - assign a symbolic name to a project delta

SSYYNNOOPPSSIISS
       aaeeggiiss --DDEELLttaa__NNAAmmee [ _o_p_t_i_o_n...  ] _n_a_m_e
       aaeeggiiss --HHeellpp
       aaeeggiiss --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_D_E_L_t_a___N_A_m_e command is used to add a symbolic name to a
       project delta.  This is so that this name may be used, rather than the
       number, when extracting previous versions of the file using the _a_e_c_p(1)
       command.

       The --DDEELLttaa _n_u_m_b_e_r option on the command line specifies a delta number
       of the project.  That is, it is the delta number assigned to an
       integration.  Delta names may only be applied to project baselines.  If
       no delta number is given on the command line, the current baseline is
       the default.

       A name must be given on the command line.  This is the name which will
       be assigned to the delta.  If the name has already been used, you will
       be given a fatal error message.  If you also specify the --OOvveerrWWrriittiinngg
       option the name will be removed from its previous delta and assigned to
       the requested delta.

OOPPTTIIOONNSS
       The following options are understood:

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --DDEELLttaa _n_u_m_b_e_r
               This option may be used to specify a particular delta in the
               project's history to name.

       --DDEELLttaa__DDAAttee _s_t_r_i_n_g
               This option may be used to specify a particular date and time
               in the project's history.

       --DDeellttaa__FFrroomm__CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular delta in the
               project's history, based on when the given change was
               successfully integrated.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --OOvveerrWWrriittiinngg
               This option may be used to force overwriting of files.  The
               default action is to give an error if an existing file would be
               overwritten.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_c_p(1) copy a file into a change, particularly the --DDEELLttaa option

       _a_e_i_b(1) start the integration of a change

       _a_e_l(1)  list interesting this, particularly the _p_r_o_j_e_c_t___h_i_s_t_o_r_y listing

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aeedit(1)                                                            aeedit(1)



NNAAMMEE
       aeedit - edit a change's files

SSYYNNOOPPSSIISS
       aaeeeeddiitt [ --pp _p_r_o_j_e_c_t_-_n_a_m_e ] [ --cc _c_h_a_n_g_e_-_n_u_m_b_e_r ]

DDEESSCCRRIIPPTTIIOONN
       The _a_e_e_d_i_t command is used to edit all of the files in a change.  For
       editors with one buffer per file, this can be very useful except for
       changes with huge numbers of files.

       The editor's current directory is changed to the top of the change's
       development directory tree.

       If you have PlasticFS installed, the editor's environment will be
       configured to present the development directory as the complete search
       path.

OOPPTTIIOONNSS
       The following options are understood:

       --pp _p_r_o_j_e_c_t_-_n_a_m_e
               This option may be used to set the project name.

       --cc _c_h_a_n_g_e_-_n_u_m_b_e_r
               This option may be used to set the change number.

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/

CCOOPPYYRRIIGGHHTT
       aeedit version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Scott Finneran

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
aefind(1)                                                            aefind(1)



       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

NNAAMMEE
       aefind - search for files in directory hierarchy

SSYYNNOOPPSSIISS
       aaeeffiinndd [ _o_p_t_i_o_n...  ] _p_a_t_h...  _e_x_p_r_e_s_s_i_o_n
       aaeeffiinndd --HHeellpp
       aaeeffiinndd --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_f_i_n_d command is used to search the combined directory tree of a
       change and its project.  It is intentionally similar to _f_i_n_d _(_1_)_,
       however it unifies the directory stack of a change and its branch
       baseline, and the branch's ancestors' baselines if any.

       For each file found in the directory tree, the given expression is
       evaluated from left to right, according to the rules of precedence (see
       the section on OPERATORS, below), only until the outcome is known, at
       which point aefind moves on to the next file name.

       If no directory is named on the command line, the current directory is
       assumed.

       Files which have been removed from the project, even if they somehow
       remain in the directory tree, will not be reported.

OOPPTTIIOONNSS
       The following options are understood:

       --BBaasseeLLiinnee
               This option may be used to specify that the project baseline is
               the subject of the command.

       --BBAAssee__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the base of the source tree.  See
               _a_e_u_c_o_n_f(5) for the corresponding user preference.

       --CCUUrrrreenntt__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the current directory.  This is usually
               the default.  See _a_e_u_c_o_n_f(5) for the corresponding user
               preference.

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_f_i_n_d program.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --RReessoollvvee
               This option may be used to request that filenames be absolute
               paths, referring to the fully resolved file name.  This is the
               default.

       --NNoo__RReessoollvvee
               This option may be used to request that filenames be base
               relative names, relative to the root of the ``stacked''
               directory tree.

       --VVeerrbboossee
               This option may be used to request that the expression be
               printed again on the standard output.  This is the expression
               as understood by _a_e_f_i_n_d, to assist you in ensuring that you and
               the command agree.  The expression is fully parenthesized, and
               all implicit operators made explicit.  Where possible, constant
               expressions will have been folded.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_f_i_n_d are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

EEXXPPRREESSSSIIOONNSS
       The expression is made up of basic elements, tests (which return a true
       or false value), and actions (which have side effects and return a true
       or false value), all separated by operators.

   BBAASSIICC EELLEEMMEENNTTSS
       {{}}      The value of this expression is the full file name of the file
               currently being considered.  The value is affected the the
               --RReessoollvvee option.

       _n_u_m_b_e_r  Numbers may be specified directly, for use with other tests and
               operators.  In the style of C, they may be hexadecimal with a
               ``0x'' prefix, octal with a ``0'' prefix, or decimal otherwise.

       _s_t_r_i_n_g  Strings may be specified directly, for use with other tests and
               operators.  If the string contains shell meta-characters, you
               may need to quote it.

       --FFAAllssee  The value of this expression is always false.

       --NNOOWW    The value of this expression is the current time, at the start
               of execution.

       --TTRRuuee   The value of this expression is always true.

   OOPPEERRAATTOORRSS
       The --aanndd operator is assumed where the operator is omitted.  You will
       need to quote many of the operators, to protect them from
       interpretation by the shell.  Each operator must be a separate command
       line argument.

       (( _e_x_p_r ))
               Force precedence.

       ++ _e_x_p_r  Unary plus.  Is is an error if the argument cannot be coerced
               to a number.

       -- _e_x_p_r  Unary minus.  Result is the numeric negative of the argument.
               Is is an error if the argument cannot be coerced to a number.

       !! _e_x_p_r  Logical negation of the sense of the expression.  Is is an
               error if the argument cannot be coerced to a boolean.
               Synonym: --NNoott

       ~~ _e_x_p_r  Bitwise not of the argument.  Is is an error if the argument
               cannot be coerced to an integer.

       _e_x_p_r_1 ** _e_x_p_r_2
               This operation multiplies the two values.  Is is an error if
               the arguments cannot be coerced to numbers.

       _e_x_p_r_1 // _e_x_p_r_2
               This operation divides the argument value by the second.  Is is
               an error if the arguments cannot be coerced to numbers.  Is is
               an error if the second argument is zero.

       _e_x_p_r_1 %% _e_x_p_r_2
               This operation produces the remainder of the division of the
               first argument by the argument.  Is is an error if the
               arguments cannot be coerced to numbers.  Is is an error if the
               second argument is zero.

       _e_x_p_r_1 ~~ _e_x_p_r_2
               Is is an error if the arguments cannot be coerced to strings.
               Is is an error if the first argument is not a valid pattern.
               The first argument is the pattern, and the second is the string
               The result is true if the pattern matches, and false if it does
               not.  This operation performs a shell file pattern comparison.
               to be compared.

       _e_x_p_r_1 ++ _e_x_p_r_2
               This operation adds the two values.  Is is an error if the
               values cannot be coerced to numbers.

       _e_x_p_r_1 -- _e_x_p_r_2
               This operation subtracts the second values from the first.  Is
               is an error if the values cannot be coerced to numbers.

       _e_x_p_r_1 #### _e_x_p_r_2
               This operation concatenates the arguments.  Is is an error if
               the arguments cannot be coerced to strings.  (Note: this is _n_o_t
               the same as the :: operator of the _e_x_p_r(1) command.)

       _e_x_p_r_1 <<<< _e_x_p_r_2
               Shift the first argument left by the number of bits specified
               by the second argument.  The left argument is treated as an
               _u_n_s_i_g_n_e_d number.  Is is an error if the values cannot be
               coerced to numbers.

       _e_x_p_r_1 >>>> _e_x_p_r_2
               Shift the first argument right by the number of bits specified
               by the second argument.  The left argument is treated as an
               _u_n_s_i_g_n_e_d number.  Is is an error if the values cannot be
               coerced to numbers.

       _e_x_p_r_1 << _e_x_p_r_2
               Compare the values and produce true if the first value is less
               than the second value, false otherwise.  If both values can be
               coerced to numbers, the comparison is numeric; if both values
               can be coerced to strings, the comparison is lexicographic;
               otherwise is it an error.

       _e_x_p_r_1 <<== _e_x_p_r_2
               Compare the values and produce true if the first value is less
               than or equal to the second value, false otherwise.  If both
               values can be coerced to numbers, the comparison is numeric; if
               both values can be coerced to strings, the comparison is
               lexicographic; otherwise is it an error.

       _e_x_p_r_1 >> _e_x_p_r_2
               Compare the values and produce true if the first value is
               greater than the second value, false otherwise.  If both values
               can be coerced to numbers, the comparison is numeric; if both
               values can be coerced to strings, the comparison is
               lexicographic; otherwise is it an error.

       _e_x_p_r_1 >>== _e_x_p_r_2
               Compare the values and produce true if the first value is
               greater than or equal to the second value, false otherwise.  If
               both values can be coerced to numbers, the comparison is
               numeric; if both values can be coerced to strings, the
               comparison is lexicographic; otherwise is it an error.

       _e_x_p_r_1 ==== _e_x_p_r_2
               Compare the values and produce true if the first value is equal
               to the second value, false otherwise.  If both values can be
               coerced to numbers, the comparison is numeric; if both values
               can be coerced to strings, the comparison is lexicographic;
               otherwise is it an error.

       _e_x_p_r_1 !!== _e_x_p_r_2
               Compare the values and produce true if the first value is not
               equal to the second value, false otherwise.  If both values can
               be coerced to numbers, the comparison is numeric; if both
               values can be coerced to strings, the comparison is
               lexicographic; otherwise is it an error.

       _e_x_p_r_1 && _e_x_p_r_2
               This operation produces the bitwise-and of the two values.  Is
               is an error if the values cannot be coerced to numbers.

       _e_x_p_r_1 || _e_x_p_r_2
               This operation produces the bitwise-or of the two values.  Is
               is an error if the values cannot be coerced to numbers.

       _e_x_p_r_1 &&&& _e_x_p_r_2
               Result is true if both expressions are true.  Short circuit
               evaluation is used, and so _e_x_p_r_2 is not evaluated if _e_x_p_r_1 is
               false.  Is is an error if the arguments cannot be coerced to
               booleans.
               Synonym: --AAnndd

       _e_x_p_r_1 _e_x_p_r_2
               Logical and (implied).  Result is true if both expressions are
               true.  Short circuit evaluation is used, and so _e_x_p_r_2 is not
               evaluated if _e_x_p_r_1 is false.  Please note that implicit
               operator plays merry hell with operator precedence, because
               there is no operator.  If you are getting odd results, use
               explicit operators.

       _e_x_p_r_1 |||| _e_x_p_r_2
               Result is true if either expression is true.  Short circuit
               evaluation is used, and so _e_x_p_r_2 is not evaluated if _e_x_p_r_1 is
               true.  Is is an error if the arguments cannot be coerced to
               booleans.
               Synonym: --OOrr

       _e_x_p_r_1 ?? _e_x_p_r_2 :: _e_x_p_r_3
               The value of this expression is _e_x_p_r_2 if _e_x_p_r_1 is true, and
               _e_x_p_r_3 otherwise.  The _e_x_p_r_1 is always evaluated, but only one
               of _e_x_p_r_2 or _e_x_p_r_3 will be evaluated.  It is an error if the
               value of _e_x_p_r_1 cannot be coerced to boolean.

       _e_x_p_r_1 ,, _e_x_p_r_2
               Both _e_x_p_r_1 and _e_x_p_r_2 are always evaluated.  The value of _e_x_p_r_1
               is discarded; the value of the expression is the value of
               _e_x_p_r_2.

       Operators have precedence as described by the following table, highest
       to lowest:

                            +----------------------------+
                            |   Operator       Direction |
                            +----------------------------+
                            |_(_u_n_a_r_y_) + - ~ !      <-     |
                            |* / % ~              ->     |
                            |+ - :                ->     |
                            |<< >>                ->     |
                            |< <= > >=            ->     |
                            |== !=                ->     |
                            |&                    ->     |
                            |^                    ->     |
                            ||                    ->     |
                            |&&                   ->     |
                            |||                   ->     |
                            |? :                  ->     |
                            |,                    ->     |
                            +----------------------------+
   FFUUNNCCTTIIOONNSS
       There are a number of built-in functions which may be used in the
       expression.  Functions may be invoked using a syntax similar to C
       functions.

                                 _n_a_m_e (( _a_r_g_u_m_e_n_t_s ))
       You need to leave spaces around the parentheses so that they are
       separate command line arguments.

       atime   This function may be used to determine the last-accessed-time
               of a file.  It takes one argument.

       basename
               This function returns the basename of the string argument
               passed to it.  It takes one argument.

       ctime   This function may be used to determine the last-change-time of
               an inode.  It takes one argument.

       execute This function may be used to execute a command.  The arguments
               are assembled into the command to be executed.  Use the special
               ``{}'' argument to insert the name of the current file.  The
               function returns true of the command's exist status is zero.
               All following arguments to find are taken to  be  arguments  to
               the command until an argument consisting of `;' is encountered.
               The command  is  executed in the starting directory.

       gid     This function may be used to determine the gid of a file.  It
               takes one argument.

       inode   This function may be used to determine the inode number of a
               file.  It takes one argument.

       mode    This function may be used to determine the access mode
               (permissions) of a file.  It takes one argument.

       mtime   This function may be used to determine the last-modified-time
               of a file.  It takes one argument.

       print   This function may be used to print a value.  It takes one
               argument.  Always returns true.

       size    This function may be used to determine the size in bytes of a
               file.  It takes one argument.

       type    This function may be used to determine the type of a file.  It
               takes one argument.  It returns a string: "block_special",
               "character_special", "directory", "file", "named_pipe",
               "socket" or "symbolic_link".

       uid     This function may be used to determine the uid of a file.  It
               takes one argument.

   TTEESSTTSS
       Most tests exist to provide compatibility with _f_i_n_d(1).

       --AAcccceessss__MMiinnuutteess [ _r_e_l_a_t_i_v_e_-_o_p_e_r_a_t_o_r ] _n_u_m_b_e_r
               True if the current file was accessed exactly _n_u_m_b_e_r minutes
               ago, false otherwise.  If a relative operator is given (<, <=,
               ==, !=, > or >=) a relative comparison will be made, rather
               than the implicit equality test.  This is _n_o_t identical to the
               similar _f_i_n_d(1) test.  This is shorthand for the ``( now -
               atime ( {} )) / 60 _r_e_l_a_t_i_v_e_-_o_p_e_r_a_t_o_r _n_u_m_b_e_r'' expression.

       --AAcccceessss__TTiimmee [ _r_e_l_a_t_i_v_e_-_o_p_e_r_a_t_o_r ] _n_u_m_b_e_r
               True if the current file was accessed exactly _n_u_m_b_e_r days ago,
               false otherwise.  If a relative operator is given (<, <=, ==,
               !=, > or >=) a relative comparison will be made, rather than
               the implicit equality test.  This is _n_o_t identical to the
               similar _f_i_n_d(1) test.  This is shorthand for the ``( now -
               atime ( {} )) / 86400 _r_e_l_a_t_i_v_e_-_o_p_e_r_a_t_o_r _n_u_m_b_e_r'' expression.

       --CChhaannggee__MMiinnuutteess _n_u_m_b_e_r
               True if the current file's inode was changed exactly _n_u_m_b_e_r
               minutes ago, false otherwise.  If a relative operator is given
               (<, <=, ==, !=, > or >=) a relative comparison will be made,
               rather than the implicit equality test.  This is _n_o_t identical
               to the similar _f_i_n_d(1) test.  This is shorthand for the ``( now
               - ctime ( {} )) / 60 _r_e_l_a_t_i_v_e_-_o_p_e_r_a_t_o_r _n_u_m_b_e_r'' expression.

       --CChhaannggee__TTiimmee _n_u_m_b_e_r
               True if the current file's inode was changed exactly _n_u_m_b_e_r
               days ago, false otherwise.  If a relative operator is given (<,
               <=, ==, !=, > or >=) a relative comparison will be made, rather
               than the implicit equality test.  This is _n_o_t identical to the
               similar _f_i_n_d(1) test.  This is shorthand for the ``( now -
               ctime ( {} )) / 86400 _r_e_l_a_t_i_v_e_-_o_p_e_r_a_t_o_r _n_u_m_b_e_r'' expression.

       --MMooddiiffyy__MMiinnuutteess _n_u_m_b_e_r
               True if the current file was modified exactly _n_u_m_b_e_r minutes
               ago, false otherwise.  If a relative operator is given (<, <=,
               ==, !=, > or >=) a relative comparison will be made, rather
               than the implicit equality test.  This is _n_o_t identical to the
               similar _f_i_n_d(1) test.  This is shorthand for the ``( now -
               mtime ( {} )) / 60 _r_e_l_a_t_i_v_e_-_o_p_e_r_a_t_o_r _n_u_m_b_e_r'' expression.

       --MMooddiiffyy__TTiimmee _n_u_m_b_e_r
               True if the current file was modified exactly _n_u_m_b_e_r days ago,
               false otherwise.  If a relative operator is given (<, <=, ==,
               !=, > or >=) a relative comparison will be made, rather than
               the implicit equality test.  This is _n_o_t identical to the
               similar _f_i_n_d(1) test.  This is shorthand for the ``( now -
               mtime ( {} )) / 86400 _r_e_l_a_t_i_v_e_-_o_p_e_r_a_t_o_r _n_u_m_b_e_r'' expression.

       --NNeewweerr _f_i_l_e_n_a_m_e
               True if the current file was modified after the given file.
               This is shorthand for the ``mtime ( {} ) > mtime ( _f_i_l_e_n_a_m_e )''
               expression.

       --NNaammee _p_a_t_t_e_r_n
               Base of file name (the path with the leading directories
               removed) matches shell pattern _p_a_t_t_e_r_n.  This is short-hand for
               the ``_p_a_t_t_e_r_n ~ basename ( {} )'' expression.

       --PPAAtthh _p_a_t_t_e_r_n
               File name matches shell pattern _p_a_t_t_e_r_n.  Note that the file
               name if affected by the --rreessoollvvee option.  This is short-hand
               for the ``_p_a_t_t_e_r_n ~ {}'' expression.

       --TTyyppee _s_t_r_i_n_g
               The file type matches the type given.  This is shorthand for
               the ``type ( {} ) == _s_t_r_i_n_g'' expression.  Type names are
               matched similar to options:

                      Block       The file is a block special file.
                      Character   The file is a character special file.
                      Directory   The file is a directory.
                      File        The file is a normal file.
                      Link        The file is a symbolic link.
                      Pipe        The file is FIFO (a named pipe).
                      Socket      The file is a UNIX domain socket.

   AACCTTIIOONNSS
       --pprriinntt  This will print the full file name on the standard output,
               followed by a newline.  The --RReessoollvvee option will affect what is
               printed.  This is short-hand for the ``print ( {} )''
               expression.

       --eexxeeccuuttee _s_t_r_i_n_g... ;;
               The may be used to execute a command.  This is short-hand for
               the ``execute ( _s_t_r_i_n_g :: ... )'' expression.

EEXXIITT SSTTAATTUUSS
       The _a_e_f_i_n_d command will exit with a status of 1 on any error.  The
       _a_e_f_i_n_d command will only exit with a status of 0 if there are no
       errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

CCOOPPYYRRIIGGHHTT
       aefind version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aefind program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_f_i_n_d _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_f_i_n_d _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aefp(1)                                                                aefp(1)



NNAAMMEE
       aefp - calculate file fingerprint

SSYYNNOOPPSSIISS
       aaeeffpp [ _o_p_t_i_o_n...  ][ _f_i_l_e_n_a_m_e...  ]
       aaeeffpp --HHeellpp
       aaeeffpp --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_f_p program is used to calculate the fingerprints of files.  A
       fingerprint is a hash of the contents of a file.  The default
       fingerprint is cryptographically strong, so the probability of two
       different files having the same fingerprint is less than 1 in 2**200.

       The fingerprint is based on Dan Berstien <djb@silverton.berkeley.edu>
       public domain fingerprint 0.50 beta package 930809, posted to the
       alt.sources newsgroup.  This program produces identical results; the
       expected test results were generated using Dan's package.

       The fingerprint is a base-64-sanely-encoded fingerprint of the input.
       Imagine this fingerprint as something universal and permanent.  A
       fingerprint is 76 characters long, containing the following:

       1.  A Snefru-8 (version 2.5, 8 passes, 512->256) hash.  (Derived from
           the Xerox Secure Hash Function.)

       2.  An MD5 hash, as per RFC 1321.  (Derived from the RSADSI MD5
           Message-Digest Algorithm.)

       3.  A CRC checksum, as in the new cksum utility.

       4.  Length modulo 2^40.

       The output format is not expected to be compatible with anything.
       However, options are available to produce the purported output of
       Merkle's snefru program, the purported output of RSADSI's mddriver -x,
       or the purported output of the POSIX cksum program.

       If no files are named as input, the standard input will be used.  The
       special file name ``-'' is understood to mean the standard input.

OOPPTTIIOONNSS
       The following options are understood:

       --CChheecckkssuumm
               Print the CRC32 checksum and length of the named file(s).

       --IIddeennttiiffiieerr
               Print a condensed form of the fingerprint (obtained by
               performing a CRC32 checksum on the full fingerprint described
               above - a definite overkill).  This is an 8-digit hexadecimal
               number, useful for generating unique short identifiers out of
               long names.  The first character is forced to be a letter (g-
               p), so there is no problem in using the output as a variable
               name.

       --HHeellpp
               Provide some help with using the _a_e_f_p program.

       --MMeessssaaggee__DDiiggeesstt
               Print the RSA Data Security, Inc. MD5 Message-Digest Algorithm
               hash of the named file(s).

       --SSnneeffrruu Print the Snefru hash of the named file(s), derived from the
               Xerox Secure Hash Function.

       --VVEERRSSiioonn
               Print the version of the _a_e_f_p program being executed.

       All other options will produce a diagnostic error.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_f_p are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

EEXXIITT SSTTAATTUUSS
       The _a_e_f_p command will exit with a status of 1 on any error.  The _a_e_f_p
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

CCOOPPYYRRIIGGHHTT
       aefp version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aefp program comes with ABSOLUTELY NO WARRANTY; for details use the
       '_a_e_f_p _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you are
       welcome to redistribute it under certain conditions; for details use
       the '_a_e_f_p _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/

       Portions of this program are derived from sources from other people,
       sometimes with liberal copyrights, and sometimes in the public domain.
       These include:

       Dan Bernstien
               See _c_o_m_m_o_n_/_f_p_/_R_E_A_D_M_E for details.

       Gary S Brown.
               See _c_o_m_m_o_n_/_f_p_/_c_r_c_3_2_._c for details.

       RSA Data Security, Inc.
               See _c_o_m_m_o_n_/_f_p_/_m_d_5_._c for details.

       Xerox Corporation
               See _c_o_m_m_o_n_/_f_p_/_s_n_e_f_r_u_._c for details.

       In addition to the above copyright holders, there have been numerous
       authors and contributors, see the named files for details.  Files names
aeget(1)                                                              aeget(1)



       are relative to the root of the _a_e_g_i_s distribution.

NNAAMMEE
       aeget - Aegis CGI file access

SSYYNNOOPPSSIISS
       aaeeggeett

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_e_t command is used with Apache (or CGI conforming any other web
       server) to access the files of an Aegis project.  The files are
       searched for along the appropriate search path, including all ancestor
       baslines, not just the baseline of the branch.

       This is useful when developing web sites using Aegis.

   IInnssttaallll
       In order to use _a_e_g_e_t(1), you need to copy it into your _c_g_i_-_b_i_n
       directory.

       You may prefer to use a symbolic link, as this will be more stable
       across Aegis upgrades.  However, this requires a corresponding _f_o_l_l_o_w_-
       _s_y_m_l_i_n_k_s setting in your web server's configuration file.

   UUssaaggee
       Once _a_e_g_e_t(1) is installed, files may be accessed via
              http://localhost/cgi-bin/aeget/_p_r_o_j_e_c_t_-_n_a_m_e/
       If no project name is given, a list of projects will be generated.
       This will lead you through a series of menus, giving access to manu
       useful pages of information about your projects.

   CCaassccaaddiinngg SSttyyllee SShheeeettss
       The web interface uses Cascading Style Sheets.  You can give the web
       interface a personalised look and feel, by creating stylesheets in the
       web server's Document Root directory.  The interface will use it's
       default styles, then styles from a global style sheet called
       aedefault.css, and then styles from a project stylesheet called
       _p_r_o_j_e_c_t_n_a_m_e.css (replace _p_r_o_j_e_c_t_n_a_m_e with the name of the project).

       There is an example style sheet in /aedefault.css which demonstrates
       the style elements used.  This particular stylesheet is not designed to
       be aesthetically pleasing, but to exercise all of the elements.  Using
       this stylesheet unmodified will give psychedelic results.  Use it as a
       template.

CCOOPPYYRRIIGGHHTT
       aeget version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aeget program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_e_t _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_e_t _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis.cgi(1)                                                      aegis.cgi(1)



NNAAMMEE
       aegis.cgi - Aegis web interface script

SSYYNNOOPPSSIISS
       aaeeggiiss..ccggii

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s_._c_g_i command is used to interface between a web server and
       Aegis.

   IInnssttaallllaattiioonn
       If you have a Web server, you may like to install the Aegis web
       interface.  You do this by copying the _a_e_g_i_s_._c_g_i script from
       _/_u_s_r_/_b_i_n_/_a_e_g_i_s_._c_g_i into your web server's _c_g_i_-_b_i_n directory.  There is
       an _a_e_g_i_s_._c_g_i_._i helper script, if you don't know where your web server's
       _c_g_i_-_b_i_n directory is.

       You may prefer to use a symbolic link, as this will be more stable
       across Aegis upgrades.  However, this requires a corresponding _f_o_l_l_o_w_-
       _s_y_m_l_i_n_k_s setting in your web server's configuration file.  (Use the
       _a_e_g_i_s_._c_g_i_._i _-_s option.)

       Within the aegis.cgi script, you may set the _A_E_G_I_S___P_A_T_H environment
       variable, if you want it to be able to see more projects than just the
       global projects.  You do this by creating a _/_u_s_r_/_l_o_c_a_l_/_l_i_b_/_-
       _a_e_g_i_s_._c_g_i_._c_o_n_f file (there isn't one, by default) and setting the
       _A_E_G_I_S___P_A_T_H environment variable in it.  This is a fragment of Bourne
       shell script, not just the name.

   UUssaaggee
       Once installed, it should be possible to see the project list by
       following this URL:
              http://localhost/cgi-bin/aegis.cgi?
       You may need to replace _l_o_c_a_l_h_o_s_t with the machine's exact name.

   CCaassccaaddiinngg SSttyyllee SShheeeettss
       The web interface uses Cascading Style Sheets.  You can give the web
       interface a personalised look and feel, by creating stylesheets in the
       web server's Document Root directory.  The interface will use it's
       default styles, then styles from a global style sheet called
       aedefault.css, and then styles from a project stylesheet called
       _p_r_o_j_e_c_t_n_a_m_e.css (replace _p_r_o_j_e_c_t_n_a_m_e with the name of the project).

       There is an example style sheet in /usr/bin/aedefault.css which
       demonstrates the style elements used.  This particular stylesheet is
       not designed to be aesthetically pleasing, but to exercise all of the
       elements.  Using this stylesheet unmodified will give psychedelic
       results.  Use it as a template.

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Integrate_Begin(1)                            aegis -Integrate_Begin(1)



NNAAMMEE
       aegis -Integrate_Begin - begin integrating a change

SSYYNNOOPPSSIISS
       aaeeggiiss --IInntteeggrraattee__BBeeggiinn _c_h_a_n_g_e_-_n_u_m_b_e_r [ _o_p_t_i_o_n...  ]
       aaeeggiiss --IInntteeggrraattee__BBeeggiinn --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --IInntteeggrraattee__BBeeggiinn --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___B_e_g_i_n command is used to begin the integration of
       a change into the baseline of a project.

       The change will advance from the _a_w_a_i_t_i_n_g _i_n_t_e_g_r_a_t_i_o_n state to the
       _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d state.
                            
                                  awaiting
                                integration
                                      |
                             integrate|integrate
                             begin    |begin
                             undo     |
                                   being
                                 integrated



       A (logical) copy of the baseline is created in an _i_n_t_e_g_r_a_t_i_o_n _d_i_r_e_c_t_o_r_y
       and the the files of the change are added to the integration directory.
       The time stamps of files copied from the baseline are preserved, time
       stamps on the files copied from the development directory are all set
       to the time of the beginning of the integration.  The _'_a_e_g_i_s
       _-_C_h_a_n_g_e___D_i_r_e_c_t_o_r_y_' command may be used to locate the integration
       directory.  The change will be assigned to the current user.

       Please note that only regular files and symbolic links are copied
       (linked) from the baseline to the integration directory.  This has some
       implications:

       +o Special files (devices, named pipes, _e_t_c) will not be reproduced in
         the integration directory; you will need to create these as part of
         the build.

       +o If the case of the --mmiinniimmuumm option (see below), only primary source
         files are copied (linked) across.  Derived files (including symbolic
         links) are expected to be created as part of the build.

       +o If the case of the --mmiinniimmuumm option, directories are only created when
         required to hold a file which satisfies the above criteria.  If you
         need special empty directories, or directories which contain only
         special files, or only contain derived files, you need to create them
         as part of the build.

       The _l_i_n_k___i_n_t_e_g_r_a_t_i_o_n___d_i_r_e_c_t_o_r_y field of the project _c_o_n_f_i_g file (see
       _a_e_p_c_o_n_f(5) for more information) controls whether the copy of the
       baseline is done by copying the files or by creating hard links to the
       files.  The hard links are just one of the constraints on the location
       of the integration directory.  The integrate begin will abort with an
       error if this copy operation fails, e.g. by running out of disk space.
       If this should happen, the change will remain in the _a_w_a_i_t_i_n_g
       _i_n_t_e_g_r_a_t_i_o_n state, and the integration directory will be removed.

       The change will be assigned a delta number.  Delta numbers are
       incremented once for each _a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___B_e_g_i_n command for the
       project.  If an integration is subsequently aborted with either the
       _a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___B_e_g_i_n___U_n_d_o or _a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___F_A_I_L command, the delta
       number will not be re-used.

       It is not possible to choose the integration directory, as there are
       many constraints upon it, including the fact that it must be on the
       same device as the baseline directory, and that many UNIX
       implementations don't allow renaming directories up and down the trees.
       The integration directory will be in the project directory, and named
       for the delta number.

   NNoottiiffiiccaattiioonn
       On successful completion of this command, the _i_n_t_e_g_r_a_t_i_o_n___b_e_g_i_n___c_o_m_m_a_n_d
       field of the project _c_o_n_f_i_g file is run, if set.  See _a_e_p_c_o_n_f(5) for
       more information.

MMiinniimmuumm IInntteeggrraattiioonnss
       Aegis provides a mmiinniimmuumm integration capability which may be used for
       various reasons.  The term mmiinniimmuumm may be a bit counter intuitive.  One
       might think it means to the mmiinniimmuumm amount of work, however it actually
       means use a mmiinniimmuumm of files from the baseline in populating the _d_e_l_t_a
       directory.  This normally leads to actually building everything in the
       project from sources and, as such, might be considered the most robust
       of builds.

       Note that any change which removes a file, whether by _a_e_r_m, _a_e_m_v or
       _a_e_m_t, results in an implicit mmiinniimmuumm integration.  This is intended to
       ensure nothing in the project references the removed file.

       A project may adopt a policy that a product release should be based on
       a minimum integration.  Such a policy may be a reflection of local
       confidence, or lack thereof, in the project's DMT (Dependency
       Maintenance Tool) or build system.  Or it may be based on a validation
       process wishing to make a simple statement on how the released package
       was produced.

       Another, more transient, reason a to require a minimum integration
       might be when upgrading a third party library, compiler or maybe even
       OS level.  Any of these events would signal the need for a minimum
       integration to ensure everything is rebuilt using the new resources.

       The cost of a mmiinniimmuumm integration varies according to type and size of
       the project.  For very large projects, especially those building large
       numbers of binaries, the cost can be large.  However large projects
       also require significant time to fully populate the delta directory.  A
       minimum integration only copies those files under Aegis control,
       skipping all ``produced'' files.  In the case where a file upon which
       everything depends is changed, everything will be built anyway so the
       copy of the already built files is a waste of time.  This means that
       sometimes a minimum can be as cheap as a normal integration.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --MMAAXXiimmuumm
               This option may be used to cause all files to be copied into
               the integration directory.  This is the default, unless the
               change requires the deletion of a file.

       --MMIINNIImmuumm
               This option may be used to cause only the source files to be
               copied into the integration directory.  The default is to copy
               all files, unless the change requires the deletion of a file.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aeib 'aegis -ib \!* -v'
       sh$     aeib(){aegis -ib "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _a_w_a_i_t_i_n_g _i_n_t_e_g_r_a_t_i_o_n state.
       It is an error if the current user is not an integrator of the project.
       It is an error if there is an integration in progress for the project.
       It is an error if the current user developed the change and the project
       is configured to disallow developers to integrate their own changes
       (default).
       It is an error if the current user reviewed the change and the project
       is configured to disallow reviewers to integrate their such changes
       (default).

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_b(1)  build a change

       _a_e_c_d(1) change directory

       _a_e_i_b_u(1)
               reverse the aeib command

       _a_e_i_f_a_i_l(1)
               fail integration of a change

       _a_e_i_n_t_e_g_r_a_t_q(1)
               Automate the integration queue.

       _a_e_i_p_a_s_s(1)
               pass integration of a change

       _a_e_n_i(1) add new integrators to a project

       _a_e_r_p_a_s_s(1)
               pass review of a change

       _a_e_t(1)  run tests

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Integrate_Begin_Undo(1)                  aegis -Integrate_Begin_Undo(1)



NNAAMMEE
       aegis -Integrate_Begin_Undo - reverse the aeib command

SSYYNNOOPPSSIISS
       aaeeggiiss --IInntteeggrraattee__BBeeggiinn__UUnnddoo [ _o_p_t_i_o_n...  ]
       aaeeggiiss --IInntteeggrraattee__BBeeggiinn__UUnnddoo --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --IInntteeggrraattee__BBeeggiinn__UUnnddoo --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___B_e_g_i_n___U_n_d_o command is used to reverse the actions
       of the _'_a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___B_e_g_i_n_' command.

       Successful execution of this command will move the change from the
       _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d state to the _a_w_a_i_t_i_n_g _i_n_t_e_g_r_a_t_i_o_n state.  The
       integration directory will be deleted.  The change will cease to be
       assigned to the current user.
                            
                                  awaiting
                                integration
                                      |
                             integrate|integrate
                             begin    |begin
                             undo     |
                                   being
                                 integrated



       In the unlikely event that an integrator has wandered away and left an
       integration incomplete (say, went on holidays and won't be back for two
       weeks), project administrators are also able to use this command.

   NNoottiiffiiccaattiioonn
       On successful completion of this command, the _i_n_t_e_g_r_a_t_i_o_n___b_e_g_i_n___u_n_d_o___-
       _c_o_m_m_a_n_d field of the project _c_o_n_f_i_g file is run, if set.  See
       _a_e_p_c_o_n_f(5) for more information.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --KKeeeepp
               This option may be used to retain files and/or directories
               usually deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --NNoo__KKeeeepp
               This option may be used to ensure that the files and/or
               directories are deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aeibu 'aegis -ibu \!* -v'
       sh$     aeibu(){aegis -ibu "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d state.
       It is an error if the change is not assigned to the current user and
       the current user is not a project administrator.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_i_b(1) begin integration of a change

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Integrate_Fail(1)                              aegis -Integrate_Fail(1)



NNAAMMEE
       aegis -Integrate_Fail - fail a change integration

SSYYNNOOPPSSIISS
       aaeeggiiss --IInntteeggrraattee__FFaaiill --FFiillee _r_e_a_s_o_n_-_f_i_l_e [ _o_p_t_i_o_n...  ]
       aaeeggiiss --IInntteeggrraattee__FFaaiill --RREEAASSoonn _'_r_e_a_s_o_n_-_t_e_x_t_' [ _o_p_t_i_o_n...  ]
       aaeeggiiss --IInntteeggrraattee__FFaaiill --EEddiitt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --IInntteeggrraattee__FFaaiill --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --IInntteeggrraattee__FFaaiill --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___F_a_i_l command is used to inform aegis that a change
       has failed integration.

       The change will be returned from the _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d state to the
       _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.  The change will cease to be assigned to the
       current user, and will be reassigned to the originating developer.  The
       integration directory will be deleted.
                            
                              being
                            developed
                                 |
                                 |develop
                                 |end
                                 |
                             awaiting
                              review
                                 |
                                 |review
                                 |begin
                                 |
                              beinigntegrate
                             reviewed fail
                                 |
                                 |review
                                 |pass
                                 |
                             awaiting
                            integration
                                 |
                                 |integrate
                                 |begin
                                 |
                              being
                            integrated



       The reviewer and the developer will be notified by mail.  See the
       integrate_fail_notify_command in _a_e_p_c_o_n_f(5) for more information.

       The _r_e_a_s_o_n_-_f_i_l_e will contain a description of why the change was
       failed.  The file is in plain text.  It is recommended that you only
       use newline to terminate paragraphs, (rather than to terminate lines)
       as with will result in better formatting in the various listings.

   NNoottiiffiiccaattiioonn
       On successful completion of this command, the _i_n_t_e_g_r_a_t_e___f_a_i_l___n_o_t_i_f_y___-
       _c_o_m_m_a_n_d field of the project attributes is run, if set.  See _a_e_p_a_t_t_r(5)
       and _a_e_p_a(1) for more information.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --EEddiitt
               Edit the attributes with a text editor, this is usually more
               convenient than supplying a text file.  The _V_I_S_U_A_L and then
               _E_D_I_T_O_R environment variables are consulted for the name of the
               editor to use; defaults to _v_i(1) if neither is set.  See the
               _v_i_s_u_a_l___c_o_m_m_a_n_d and _e_d_i_t_o_r___c_o_m_m_a_n_d fields in _a_e_u_c_o_n_f(1) for how
               to override this specifically for Aegis.

               Warning: Aegis tries to be well behaved when faced with errors,
               so the temporary file is left in your home directory where you
               can edit it further and re-use it with a --ffiillee option.

               The --eeddiitt option may not be used in the background, or when the
               standard input is not a terminal.

       --EEddiitt__BBaacckkGGrroouunndd
               Edit the attributes with a dumb text editor, this is most often
               desired when edit commands are being piped into the editor via
               the standard input.  Only the EEDDIITTOORR environment variable is
               consulted for the name of the editor to use; it is a fatal
               error if it is not set.  See the _e_d_i_t_o_r___c_o_m_m_a_n_d field in
               _a_e_u_c_o_n_f(1) for how to override this specifically for Aegis.

       --FFiillee _f_i_l_e_n_a_m_e
               Take the attributes from the specified file.  The filename `-'
               is understood to mean the standard input.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --KKeeeepp
               This option may be used to retain files and/or directories
               usually deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --NNoo__KKeeeepp
               This option may be used to ensure that the files and/or
               directories are deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --RREEAAssoonn _t_e_x_t
               This option may be used to provide the failure reason on the
               command line, rather than in a file.  You will need to use
               quotes to insulate the spaces from the shell.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aeifail 'aegis -ifail \!* -v'
       sh$     aeifail(){aegis -ifail "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d state.
       It is an error if the change is not assigned to the current user.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_i_b(1) begin integration of a change

       _a_e_i_p_a_s_s(1)
               pass integration of a change

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aeimport(1)                                                        aeimport(1)



NNAAMMEE
       aeimport - import foreign repository into Aegis

SSYYNNOOPPSSIISS
       aaeeiimmppoorrtt [ _o_p_t_i_o_n...  ] _d_i_r_n_a_m_e
       aaeeiimmppoorrtt --HHeellpp
       aaeeiimmppoorrtt --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_i_m_p_o_r_t command is used to create a new project, and populate it
       by importing a foreign repository (such as RCS or CVS) without loss of
       project history.

       Please note: unless you specify a version (see the --vveerrssiioonn option,
       below) this command will default to creating branches to support
       version 1.0.  If you discovered this too late, all is not lost: you can
       use the _a_e_n_b_r_u(1) command to get rid of the branches you didn't want.

   DDiirreeccttoorryy
       The project directory, under which the project baseline and history and
       state and change data are kept, will be created at this time.  If the
       --DDIIRReeccttoorryy option is not given, the project directory will be created
       in the directory specified by the default_project_directory field of
       _a_e_u_c_o_n_f(5), or if not set in current user's home directory; in either
       case with the same name as the project.

   SSttaaffff
       The project is created with the current user and group as the owning
       user and group.  The current user is an administrator for the project.
       The project has no other administrators (use _a_e_n_a(1) to add more).

       The project will have all user names found in the history files (see
       blow) installed as developers, reviewers and integrators.  This is
       probably too broad, but fairly accurately reproduces the wide-open
       permissions found in most repositories, and you will want to use
       _a_e_r_d(1), _a_e_r_r_v(1) and _a_e_r_i(1) as appropriate to winnow this list.

       If only one name is found, the project will be set to
       ``developers_may_review = true;'' otherwise it will be false (see
       _a_e_p_a_t_t_r(5) for more information).  Use _a_e_p_a(1) to change this if you
       want a different setting.

       The project's umask is derived from the current user's umask, but
       modified to guarantee that group members will have access and that only
       the project owner will have write access.  In general, it's best of the
       project is _n_o_t owned by an account with any other role, as this
       prevents a whole class of ``oops, I thought I was somewhere else''
       errors.

       The project's history commands (see _a_e_p_c_o_n_f(5) for more information)
       are set to those suitable for RCS.  The build command is set to ``exit
       0''; you need to set it to something suitable.  The symbolic link farm
       is turned on.

   PPooiinntteerr
       The project pointer will be added to the first element of the search
       path, or _/_v_a_r_/_l_i_b_/_a_e_g_i_s if no path is set.  If this is inappropriate,
       use the --LLIIBBrraarryy option to explicitly set the desired location.  See
       the --LLIIBBrraarryy option for more information.

       Alternatively, unset the AEGIS_PATH environment variable to add the
       project to the global project list.

   VVeerrssiioonn
       You may specify the project version in two ways:

       1. The version number may be implicit in the project name, in which
          case the version numbers will be stripped off.  For example,
          ``aeimport -p example.1.2'' will create a project called ``example''
          with branch number 1 created, and sub-branch 2 of branch 1 created.

       2. The version number may be stated explicitly, in which case it will
          be subdivided for branch numbers.  For example, ``aeimport -p
          example -version 1.2'' will create a project called ``example'' with
          branch number 1 created, and sub-branch 2 of branch 1 created.

       In each case, these branches may be named wherever a project name may
       be given, such as ``-p example.1'' and ``-p example-1.2''.  The actual
       punctuation character is unimportant.

       You may have any depth of version numbers you like.  Both methods of
       specifying version numbers may be used, and they will be combined.  If
       you want no version numbers at all, use --vveerrssiioonn with a single dash as
       the argument, as in ``-version -''

       If no version number is given, either explicitly or implicitly, version
       1.0 is used.

   PPrroojjeecctt DDiirreeccttoorryy LLooccaattiioonn
       PPlleeaassee NNoottee:: Aegis also consults the underlying file system, to
       determine its notion of maximum file size.  Where the file system's
       maximum file size is less than _m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h, the filesystem
       wins.  This can happen, for example, when you are using the Linux
       UMSDOS file system, or when you have an NFS mounted an ancient V7
       filesystem.  Setting _m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h to 255 in these cases does
       not alter the fact that the underlying file systems limits are far
       smaller (12 and 14, respectively).

       If your development directories (or your whole project) is on
       filesystems with filename limitations, or a portion of the
       heterogeneous builds take place in such an environment, it helps to
       tell Aegis what they are (using the project _c_o_n_f_i_g file's fields) so
       that you don't run into the situation where the project builds on the
       more permissive environments, but fails with mysterious errors in the
       more limited environments.

       If your development directories are routinely on a Linux UMSDOS
       filesystem, you would probably be better off setting
       _d_o_s___f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d _= _t_r_u_e, and also changing the
       _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___t_e_m_p_l_a_t_e field.  Heterogeneous development with
       various Windows environments may also require this.

TTHHEE PPRROOCCEESSSS
       Most file version systems do not operate using change sets.  In order
       to import such repositories into Aegis it is necessary to ``discover''
       these change sets.  The following steps are taken:

       1.
         The directory (_d_i_r_p_a_t_h) given on the command line, and all
         directories below it, are scanned for appropriate files (for example,
         RCS and CVS use files with a ``,v'' suffix).  These files are read to
         obtain the file's history.
         If you have been using a non-standard file suffix, aeimport won't be
         able to find the files.
         If you have more than one module in your CVS repository, aeimport
         doesn't (yet) understand the CVSROOT/modules file.  Pointing aeimport
         at your whole CVSROOT may produce an unexpectedly large result.

       2.
         The history files discovered in the previous step are copied into the
         location used by Aegis.  Unlike some other tools, Aegis has a
         repository per project, rather than all projects sharing the same
         repository.
         This also means that Aegis will not modify the original history
         files.  In particular, if the import produces unexpected results,
         simply remove the project (see _a_e_r_m_p_r(1) for more information) and
         start again.
         It is not possible to leave all your history files under, say,
         $CVSROOT and have Aegis point to them.

       3.
         For each user mentioned in the various file histories, the time
         stamps are examined to find groups of files which were committed at
         around the same time.  Files changed within 1 minute of each other
         are considered a group.
         Files change within one minute, but by different users, are _n_o_t
         considered a group.  This does not usually present a problem as
         developers mostly work alone.  In rare cases where developers work
         together, only one of them does the commit.
         In some cases the time window may be too large, and several very
         small changes may be seen as one larger change set.  In practice,
         this isn't very common.

       4.
         Groups of files are stored into the Aegis database as completed
         changes (i.e. as if _a_e_i_p_a_s_s(1) has already run).  The description of
         the change is the concatenation of all the unique comments found
         attached to the relevant file versions.  The time stamp used for the
         change is the latest time stamp of any file in the group.
         There are times when small typographical errors between file comments
         result in longer-than-expected change descriptions.  This can be
         corrected with _a_e_c_a(1) or _t_k_a_e_c_a(1) if desired.  There are also times
         when the reverse is true: some files have no comments at all, and the
         resulting description is less than useful.

       5.
         Tags are turned into delta names by transferring delta names from the
         files they are attached to, to the change sets they are attached to.
         When a tag would appear to be attached to more than one change, it is
         attached only to the latest change.
         In common usage, the tags serve a similar purpose as Aegis' delta
         numbers.  They are all (typically) applied in a single CVS command,
         in order that a particular release may be recreated later.  However,
         because each file will be at a different version, and each will have
         had its latest version included in various random change sets.
         Tags are used for other things too.  The method given here is simply
         a guess, but it's one which works reasonably well.

       Once aeimport has completed importing a project, you will be able to
       examine the results using the _a_e_l _p_r_o_j_e_c_t___h_i_s_t_o_r_y and _a_e_l
       _c_h_a_n_g_e___d_e_t_a_i_l_s commands.  (See _a_e_l(1) for more information.)

   LLiimmiittaattiioonnss
       The aeimport program is far from perfect.  There are a number of known
       limitations.

       +o At this time, there is no support for branching.  (As soon as I
         figure out how to discern the root of a branch across loosely coupled
         files, I'll implement it.  Ideas and/or code contributions welcome.)

       +o Only RCS and SCCS formats are understood at present.  It should be
         straight forward to add support for additional formats in the future.
         Only step 1 of the above process requires attention, the rest is file
         format neutral.

       +o There is no support for CVS modules, and there needs to be.

       +o You can't specify the time window size used to determine change sets.
         Time will tell whether this is necessary, but it begs the question:
         how will you know what window size you need in order to use the
         option at all.

       +o You can't import a CVS repository into an existing project.  You may
         only create a new project from a CVS repository.

       +o You can't import a remote CVS repository.

OOPPTTIIOONNSS
       The following options are understood:

       --DDIIRReeccttoorryy _p_a_t_h
               This option may be used to specify which directory is to be
               used.  It is an error if the current user does not have
               appropriate permissions to create the directory path given.
               This must be an absolute path.

               Caution: If you are using an automounter do not use `pwd` to
               make an absolute path, it usually gives the wrong answer.

       --FFOORRmmaatt _n_a_m_e
               This option may be use to specify which history format is being
               imported.  The following formats are understood:

               RCS     Release Control System format has been around for quite
                       a while.  It is the format underlying CVS (Concurrent
                       Version System).  This is the default if no format name
                       is specified.
                       NNoottee:: you _m_u_s_t have RCS installed before you run
                       _a_e_i_m_p_o_r_t if you use this format, because RCS commands
                       will be run during the import process.  The import will
                       fail if RCS is not installed.  You can find a freeware
                       implementation at ftp.gnu.org, or a local mirror.

               SCCS    Source Code Control System is one of the earliest Unix
                       version systems.  (I'm told this is the format
                       underlying BitKeeper.)
                       NNoottee:: you _m_u_s_t have SCCS installed before you run
                       _a_e_i_m_p_o_r_t if you use this format, because SCCS commands
                       will be run during the import process.  The import will
                       fail if SCCS is not installed.  The GNU Compatibly
                       Stupid Source Control (CSSC) is a freeware
                       implementation of SCCS, and it may be found at
                       ftp://alpha.gnu.org/gnu/CSSC/

       --LLIIBBrraarryy _a_b_s_p_a_t_h
               This option may be used to specify a directory to be searched
               for global state files and user state files.  (See _a_e_g_s_t_a_t_e(5)
               and _a_e_u_s_t_a_t_e(5) for more information.)  Several library options
               may be present on the command line, and are search in the order
               given.  Appended to this explicit search path are the
               directories specified by the _A_E_G_I_S___P_A_T_H environment variable
               (colon separated), and finally, _/_u_s_r_/_l_o_c_a_l_/_l_i_b_/_a_e_g_i_s is always
               searched.  All paths specified, either on the command line or
               in the _A_E_G_I_S___P_A_T_H environment variable, must be absolute.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_i_m_p_o_r_t program.

       --VVEERRSSiioonn _n_u_m_b_e_r
               This option may be used to specify the version number for the
               project.  Version numbers are implemented as branches.  Use a
               single dash (``-'') as the argument if you want no version
               branches created.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_i_m_p_o_r_t are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

EEXXIITT SSTTAATTUUSS
       The _a_e_i_m_p_o_r_t command will exit with a status of 1 on any error.  The
       _a_e_i_m_p_o_r_t command will only exit with a status of 0 if there are no
       errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

CCOOPPYYRRIIGGHHTT
       aeimport version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aeimport program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_i_m_p_o_r_t _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_i_m_p_o_r_t _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aeintegratq(1)                                                  aeintegratq(1)



NNAAMMEE
       aeintegratq - integrate changes into projects

SSYYNNOOPPSSIISS
       aaeeiinntteeggrraattqq [ _o_p_t_i_o_n...  ] _p_r_o_j_e_c_t_-_n_a_m_e...

DDEESSCCRRIIPPTTIIOONN
       The _a_e_i_n_t_e_g_r_a_t_q command is used to manage the integrations of one or
       more changes in one or more projects.  Normally run via _c_r_o_n(1) or
       _a_t(1) with the name of a single project, aeintegratq will manage all
       operations for integration even when --BBuuiilldd and --TTeesstt are required on
       multiple architectures. If a change review is revoked after the queue
       is running aeintegratq will notice the bad state and just move on.
       Additional options allow the integrator full control over most aspects
       of queue management such as the order of integration of multiple
       changes.

OOPPTTIIOONNSS
       The following options are understood:

   OOppttiioonn SSuummmmaarryy
       --hh      Help, show usage information.

       --HH      Help, show usage plus all helpful comment information.

       --aa      run on Any machine (normally only IntegrationHost)

       --ss      run remote operations via ssh (default rsh)

       --nn      No action, just tell what would be done.

       --kk      Keep the scripts and report files.

       --KK      Keep the temp file even if integration passes.

       --MM _l_i_s_t Minimum, run given changes _-_m_i_n_i_m_u_m

       --PP _l_i_s_t Precious, do not IIFFaaiill changes in _l_i_s_t, just stop.

       --RR _l_i_s_t Ready , specify order and subset, _e_._g_. -R 29,45

       --SS _s_t_a_g_e
               Pick up at given stage (diff|build|test|integrate)

       --cc _c_h_a_n_g_e_-_n_u_m_b_e_r
               specify Change to integrate at Stage

       --pp _p_r_o_j_e_c_t_-_n_a_m_e
               specify single Project name

       NOTE: if custom options such as -P -R -S -c -p are given only a single
       project may be integrated since the options would be meaningless to the
       next project given.

       Some options are present only for testing and investigation.  Options
       are rarely required for normal operations.

   CCoonnttrrooll OOppttiioonnss
       The following options are available for special needs.  They control
       the order and disposition of each change aawwaaiittiinngg__iinntteeggrraattiioonn in a
       given project.

       --RR[eady] _n_u_m_b_e_r_1_,_n_u_m_b_e_r_2_._._.
               This option is used to specify order or subset to integrate.
               Only those changes listed will be attempted, and in exactly the
               order given.

               Useful if a particular change must go in before another for
               some reason.  Or if only integrating one or two changes when
               several are aawwaaiittiinngg__iinntteeggrraattiioonn in the given project.  A
               single change may also be specified with the --cc[[hhaannggee]] _n_u_m_b_e_r
               option, which is common for other aegis commands.  However the
               --RR option allows a list and if given will override any --cc
               given.

       --PP[recious] _n_u_m_b_e_r_1_,_n_u_m_b_e_r_2_._._.

       --PP[recious] aallll
               This option is used to specify that a particular change or
               subset of changes should be considered pprreecciioouuss.  It neither
               implies order nor limits the queue run to that subset; it only
               means that the changes should be considered pprreecciioouuss.  Note
               that at least one number (or the keyword _a_l_l) must be given.

               The concept of pprreecciioouuss means that if the given change were to
               fail anywhere in the integration process, then the process
               simply stops and leaves the problem change in the delta
               directory.  The --IIFFaaiill would not actually be executed.  This is
               sometimes useful to diagnose a problem which only occurs during
               integrations.  It is also useful if the failure is due to a
               transient problem such as unreliable machines on the network.
               In such a case the integration can be resumed after fixing the
               problem.  See the _s_t_a_g_e options below.

               If, on the other hand, a pprreecciioouuss change makes it through the
               integration process successfully, the option has no effect.

       --MM[inimum] _n_u_m_b_e_r_1_,_n_u_m_b_e_r_2_._._. or _a_l_l
               Integrate the given change[s] with the --mmiinniimmuumm option.  Such
               changes will be put on the end of the queue so that the last
               integrations of a run will be a minimum.  This feature allows
               practical use of minimum integrations without requiring
               --mmiinniimmuumm on each and every integration.  See the section below
               on _M_i_n_i_m_u_m _i_n_t_e_g_r_a_t_i_o_n_s for more information.

   SSttaaggee OOppttiioonnss
       The following options allow [re]starting an integration which has
       already progressed through some stages.  This is useful to deal with
       failed (_p_r_e_c_i_o_u_s) integrations, or to finish automatically an
       integration begun by hand.

       --SS[tage] ddiiffff

       --SS[tage] bbuuiilldd

       --SS[tage] tteesstt

       --SS[tage] iinntteeggrraattee
               Pick up the integration at the given ssttaaggee.  Requires --cc[hange]
               _n_u_m_b_e_r option to specify the change number.

AAddvvaanncceedd CCoonnttrroollss
       The integrator may provide for special situations such as operations
       required after --BBuuiilldd and before --TTeesstt, or at the end of a queue run.
       Such capabilities are provided by hhooookkss and ssttrraatteeggiieess described below.

   HHooookkss
       There are a set of _h_o_o_k_s available which are run, if present, before
       and after each stage of the integration.  They can be used to help
       ensure that the integrator actually gets some sleep while managing
       large projects.

       These hooks are searched for in the directory $$HHOOMMEE//iinntteeggrraattiioonn__hhooookkss.
       None need exist; aeintegratq will only pay attention to any that do
       exist.  Hooks may be any form of executable (script, etc) and are
       called with 2 arguments: pprroojjeecctt--nnaammee cchhaannggee--nnuummbbeerr.  They run as the
       integrator on the machine from which aeintegratq was started.  They are
       named using the project name along with a suffix according to what
       place in the integration process you want them to run.

       Note that if a hook for project ffoooo exists it is also used for any
       branches under that project.  For example, if you have provided
       ffoooo..pprree__iipp, it will be run for foo.1 and foo.1.0 as well.  If for some
       reason you want different (or no) action for project ffoooo..11..00, then you
       would provide ffoooo..11..00..pprree__iipp which does what you wish, including
       nothing, effectively overriding ffoooo..pprree__iipp.

       Here is how to map particular places in the integration process to hook
       suffixes.

                 +--------------------------------------------------+
                 |run at time                          extension    |
                 +--------------------------------------------------+
                 |before attempting -Integrate_Begin   .pre_ib      |
                 |after -Integrate_Begin completes     .ib          |
                 |before attempting -Diff              .pre_d       |
                 |after -Diff completes                .d           |
                 |before attempting -Build             .pre_b       |
                 |after -Build completes               .b           |
                 |before attempting -Build on <arch>   .pre_<arch>b |
                 |after -Build on <arch> completes     .<arch>b     |
                 |before attempting -Test              .pre_t       |
                 |after -Test completes                .t           |
                 |before attempting -IPass             .pre_ip      |
                 |after -IPass completes               .ip          |
                 |before attempting -IFail             .pre_if      |
                 |after -IFail completes               .if          |
                 +--------------------------------------------------+
       The hook program should exit with 0 if successful or 1 if not.  A non-
       zero exit causes the change being integrated to fail immediately unless
       it was marked precious.

       Note that in most cases anything done via an ..iipp hook should probably
       be done instead by the _i_p_a_s_s___n_o_t_i_f_y command in the project attributes
       file (see _a_e_p_a_t_t_r(5) for more information), or the _b_u_i_l_d___t_i_m_e___a_d_j_u_s_t___-
       _n_o_t_i_f_y___c_o_m_m_a_n_d in the project config file (see _a_e_p_c_o_n_f(5) for more
       information), but the hook can provide a temporary way to keep going
       until the permanent solution can be implemented.

       In addition two special hooks, aaeeiinntteeggrraattqq..eenndd and aaeeiinntteeggrraattqq..ffaaiill,
       are recognized.  They are called when aaeeiinntteeggrraattqq finishes a queue run.
       They are called with 2 arguments like any other hook (pprroojjeecctt--nnaammee
       cchhaannggee--nnuummbbeerr) although both the project-name and change-number given
       are of the last change integrated and may be less than useful.

       The ..eenndd hook is called if/when the queue run is finished and was
       successful.  Note that this does not mean that no changes failed, only
       that no queue errors occurred.  This hook might be used to invoke
       another queue run on a different project/branch, or possibly even on
       the same project, if other changes may have been ended and/or reviewed
       while the first run was in progress.  These conditions arise quite
       often with flex time engineers.  Another use of the ..eenndd hook is to
       automatically build a new package using the newly integrated project as
       source.

       If queue errors were encountered, or a change failed that was marked
       _p_r_e_c_i_o_u_s, then the ..ffaaiill hook is called.  An obvious use of that hook
       would be an e-mailed page to the integrator.

   SSttrraatteeggyy oorr OOooppss--rreettrryy
       Sometimes a persistent build problem will plague integrations.  This
       can be very annoying if it ruins an overnight run, especially if the
       cure is simple when it happens.  Examples of this can be timeouts due
       to a busy data server or other transient errors.  Note that this
       applies only to --BBuuiilldd related problems.

       To deal with such problems the integrator may provide a _s_t_r_a_t_e_g_y script
       specific to a project.  An executable program should be found in
       $$HHOOMMEE//ssttrraatteeggyy..<<pprroojjeecctt__nnaammee>>..  TThhee pprrooggrraamm wwiillll bbee rruunn aass tthhee
       iinntteeggrraattoorr wwiitthh tthhee _d_e_l_t_a ddiirreeccttoorryy aass ccuurrrreenntt ddiirreeccttoorryy..  TThhee pprrooggrraamm
       mmaayy ddoo aannyy ccoommmmaannddss nneecceessssaarryy ttoo cclleeaann uupp aanndd//oorr ddiiaaggnnoossee tthhee eerrrroorr..
       IIff tthhee ssccrriipptt ffiinnddss tthhee pprroobblleemm ttoo bbee ttrraannssiieenntt aanndd ffiixx--aabbllee,, iitt eexxiittss
       ssuucccceessssffuullllyy ((wwiitthh 00 ssttaattuuss)) aanndd aaeeiinntteeggrraattqq wwiillll rree--llaauunncchh tthhee --BBuuiilldd
       aanndd lloogg tthhee rree--ttrryy..  OOtthheerrwwiissee iitt eexxiittss wwiitthh aa 11 aanndd tthhee cchhaannggee ffaaiillss..

MMuullttii--AArrcchhiitteeccttuurree iinntteeggrraattiioonnss
       For projects which build and test on multiple architectures,
       aeintegratq requires _a_r_c_h___h_o_s_t_s be installed and have available at
       least one machine of each architecture required.  This is also true if
       the host from which aeintegratq is run is of a different architecture
       from the target architecture of the project being integrated.

       If you wish to take advantage of multiple architecture automatic
       integrations, you can install _a_r_c_h___h_o_s_t_s or provide a more simple
       script which will return a machine name according to architecture and
       job type.

MMiinniimmuumm iinntteeggrraattiioonnss
        provides a mmiinniimmuumm integration capability which may be used for
       various reasons.  The term mmiinniimmuumm may be a bit counter intuitive.  One
       might think it means to do the mmiinniimmuumm amount of work, however it
       actually means use a mmiinniimmuumm of files from the baseline in populating
       the _d_e_l_t_a directory.  Since no constructed files are put in the _d_e_l_t_a
       directory, this normally leads to actually building everything in the
       project from sources and, as such, might be considered the most robust
       of builds.

       Note that any change which removes a file, whether by _a_e_r_m or _a_e_m_v,
       results in an implicit mmiinniimmuumm integration.  This is intended to ensure
       nothing in the project references the removed file.

       A project may adopt a policy that a product release should be based on
       a minimum integration.  Such a policy may be a reflection of local
       confidence, or lack thereof, in the project's DMT (Dependency
       Maintenance Tool) or build system.  Or it may be based on a validation
       process wishing to make a simple statement on how the released package
       was produced.

       Another, more transient, reason a to require a minimum integration
       might be when upgrading a third party library, compiler or maybe even
       OS level.  Any of these events would signal the need for a minimum
       integration to ensure everything is rebuilt using the new resources.
       This can be done with minimum overhead using the --MM option as described
       above.

       The cost of a mmiinniimmuumm integration varies according to type and size of
       the project.  For very large projects, especially those building large
       numbers of binaries, the cost can be large.  However large projects
       also require significant time to fully populate the delta directory.  A
       minimum integration only copies those files under aegis control,
       skipping all ``produced'' files.  In the case where a file upon which
       everything depends is changed, everything will be built anyway so the
       copy of the already built files is a waste of time.  This means that
       sometimes a minimum can be as cheap as a normal integration.

OOppttiioonnaall SSuuppppoorrtt PPrrooggrraammss
       There are some programs which aeintegratq will use if they are
       installed.

       +o _a_r_c_h___h_o_s_t_s was mentioned previously.  It is optional only if your
       projects and your  file server are of a single architecture.

       +o _a_e_l_o_g_r_e_s may enhance the information provided in _-_I_F_a_i_l entries.
       Normally all you get is the last 10 lines of the log file, which is not
       bad if tests fail, but can be terrible for failed builds.  If you
       provide a program named _a_e_l_o_g_r_e_s which knows how to extract a better
       succinct report of problems, the output of that program will be used
       instead of the simple tail.  It is called with a _-_i option.

       +o ssoouunndd__aallll__mmaacchhiinneess, if available, will be called when integrations
       either pass or fail.  It can be helpful to announce the fact that an
       integration has finished.  If it passed, developers will probably want
       to do an aaeedd to bring their changes up to date.  The audio announcement
       provides another timely hint.

       The sound files are searched for in the /var/lib/aegis/sounds
       directory.  They will have endings of ___p_a_s_s and ___f_a_i_l according to the
       results of a given attempt.  Two sound files are required:
       _i_n_t_e_g_r_a_t_i_o_n___p_a_s_s and _i_n_t_e_g_r_a_t_i_o_n___f_a_i_l.  Others will be used if provided
       to customize the sounds so that each developer may have one or more
       personal sounds.  If a file named _<_d_e_v_e_l_o_p_e_r_>___p_a_s_s is located, it will
       be used.  If a set of files exist named _<_d_e_v_e_l_o_p_e_r___p_a_s_s_._[_0_-_9_] they will
       be used in random sequence.  The same search rule applies to ___f_a_i_l
       sets.  The _s_o_u_n_d___a_l_l___m_a_c_h_i_n_e_s program may use a host list and play the
       sound file on each machine or, assuming that other audio capabilities
       exist, might do any form of announcement desired.

EEXXIITT SSTTAATTUUSS
       The _a_e_i_n_t_e_g_r_a_t_q command will exit with a status of 1 on any error.  The
       _a_e_i_n_t_e_g_r_a_t_q command will only exit with a status of 0 if there are no
       errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

FFIILLEESS
       The control files are searched for in the _$_H_O_M_E directory.  They are
       named <type>.<project>, where type may be ssttrraatteeggyy or mmiinniimmuumm.  They
       need not exist if no special action is necessary.

       The hook scripts are searched for in the _$_H_O_M_E_/_i_n_t_e_g_r_a_t_i_o_n___h_o_o_k_s
       directory.  They are named <project>.<stage>.  Also _a_e_i_n_t_e_g_r_a_t_q_._e_n_d and
       _a_e_i_n_t_e_g_r_a_t_q_._f_a_i_l.  These hooks also need not exist if no special action
       is desired.

CCOOPPYYRRIIGGHHTT
       aeintegratq version 4.16
       Copyright (C) 1998-2002 Endocardial Solutions, Inc.
       All rights reserved.

       The aeintegratq program comes with ABSOLUTELY NO WARRANTY; This is free
       software and you are welcome to redistribute it under certain
       conditions;

AAUUTTHHOORR
       Jerry Pendergraft   E-Mail:   jerry@endocardial.com
aegis -Integrate_Pass(1)                              aegis -Integrate_Pass(1)



NNAAMMEE
       aegis -Integrate_Pass - pass a change integration

SSYYNNOOPPSSIISS
       aaeeggiiss --IInntteeggrraattee__PPaassss [ _o_p_t_i_o_n...  ]
       aaeeggiiss --IInntteeggrraattee__PPaassss --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --IInntteeggrraattee__PPaassss --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___P_a_s_s command is used to notify aegis that a change
       has passed integration.  The change is advanced from the _b_e_i_n_g
       _i_n_t_e_g_r_a_t_e_d state to the _c_o_m_p_l_e_t_e_d state.
                              
                                being
                              integrated
                                   |
                                   |integrate
                                   |pass
                                   |

                              completed



       This command updates the file histories, so that future _a_e_c_p(1)
       commands may extract previous file versions from history, and so that
       future _a_e_d(1) commands may merge out-of-date files.  The history is
       updated using the _h_i_s_t_o_r_y___c_r_e_a_t_e___c_o_m_m_a_n_d and _h_i_s_t_o_r_y___p_u_t___c_o_m_m_a_n_d fields
       of the project _c_o_n_f_i_g file (see _a_e_p_c_o_n_f(5) for more information).  The
       integrate pass will abort with an error if one of these history
       commands should fail, _e_._g_. by running out of disk space.  If this
       should happen, the change will remain in the _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d state,
       and the integration directory is unaltered.

       Once the history has been updated, the integration directory is renamed
       as the baseline directory, and the old baseline directory is deleted.

       Once integrate pass is complete the change is no longer assigned to the
       current user.

   HHiissttoorryy TToooollss MMooddiiffyy FFiilleess
       Many history tools (_e_._g_. RCS and SCCS) can modify the contents of the
       file when it is committed.  This usually requires the use of specific
       ``keyword'' strings, and there are usually options to turn this
       behavior off, but users familiar with version control tools (as opposed
       to configuration management systems) will often use these features.
       The problem is that if the commit changes the file, the source file in
       the repository now no longer matches the object file in the repository.
       _I_._e_.  the history tool has compromised the referential integrity of the
       repository.  By default, a fatal error is emitted if the file is
       changed by the check-in, however this can be modified to a be warning
       or even ignored completely; see the _h_i_s_t_o_r_y___p_u_t___t_r_a_s_h_e_s___f_i_l_e field of
       _a_e_p_c_o_n_f(5) for more information.

   FFiillee MMooddiiffiiccaattiioonn TTiimmeess
       The modification times of all files modified since the beginning of
       integration (see _a_e_i_b(1) for more information) are updated to be since
       the beginning of integrate pass.  The order of modification times will
       be preserved, however the time range will be compressed to the greatest
       extent possible.  This ensures that subsequent development builds will
       notice that baseline files have changed.

       Note that if there are many new files with all different timestamps in
       the integration directory, and if the number of files with different
       timestamps exceeds the number of seconds since the start of the
       integrate-pass command, Aegis may have to set file modification times
       into the future.

       The _b_u_i_l_d___t_i_m_e___a_d_j_u_s_t field of the project _c_o_n_f_i_g file controls Aegis'
       behavior in this case.  (See _a_e_p_c_o_n_f(5) for more information.)  There
       are three settings:

       adjust_and_sleep
               This setting, which is the default, causes Aegis to sleep until
               the file modification times would no longer be in the future.
               This avoids both development build problems and integration
               build problems, both of which which can arise as a result
               "interesting" file modification times.

       adjust_only
               Aegis will issue a warning that the file modification times
               extend into the future, but will not sleep.  This may cause
               integration build problems, particularly if you are using
               _a_e_i_n_t_e_g_r_a_t_q(1).  Development builds may perform redundant
               builds, however _a_e_t _-_r_e_g should not produce false negatives.

       dont_adjust
               This is highly inadvisable.  It is provided solely for some
               very rare circumstances.  This setting causes Aegis not to
               adjust the file modification times at all.  This can have very
               unhappy side-effects, especially of the integration build was
               _b_e_f_o_r_e one or more development builds; the commonest symptom
               being that development builds do not always cause a relink of
               the necessary executables, and _a_e_t _-_r_e_g may give false
               negatives.  It is ssttrroonnggllyy recommended that you do not use this
               setting.

       If you use _c_o_o_k(1), see the _t_i_m_e_-_a_d_j_u_s_t_-_b_a_c_k flag for how to compress
       the time range even further.  This usually makes the sleep (or the
       warning period) significantly shorter.

   NNoottiiffiiccaattiioonn
       On successful completion of this command, after the directory rename
       has ocurred and after the database has been updated, the _i_n_t_e_g_r_a_t_i_o_n___-
       _p_a_s_s___n_o_t_i_f_y___c_o_m_m_a_n_d field of the project attributes is run, if set.
       See _a_e_p_a_t_t_r(5) and _a_e_p_a(1) for more information.  This command is run
       as the project owner.

       Some compilers bury absolute path names into object files and
       executables.  The renaming of the integration directory to become the
       new baseline breaks these paths.  The above command is passed an
       environment variable called AEGIS_INTEGRATION_DIRECTORY so that the
       appropriate symlink may be placed, if desired.

       Other commands run by this command include the _h_i_s_t_o_r_y___c_r_e_a_t_e___c_o_m_m_a_n_d,
       _h_i_s_t_o_r_y___p_u_t___c_o_m_m_a_n_d and _h_i_s_t_o_r_y___q_u_e_r_y___c_o_m_m_a_n_d fields of the project
       _c_o_n_f_i_g file.  See _a_e_p_c_o_n_f(5) for more information.

TTHHEE BBAASSEELLIINNEE LLOOCCKK
       The baseline lock is used to ensure that the baseline remains in a
       consistent state for the duration of commands which need to read the
       contents of files in the baseline.

       The commands which require the baseline to be consistent (these include
       the _a_e_b(1), _a_e_c_p(1) and _a_e_d(1) commands) take a baseline _r_e_a_d lock.
       This is a non-exclusive lock, so the concurrent development of changes
       is not hindered.

       The command which modifies the baseline, _a_e_i_p_a_s_s(1), takes a baseline
       _w_r_i_t_e lock.  This is an exclusive lock, forcing _a_e_i_p_a_s_s(1) to block
       until there are no active baseline read locks.

       It is possible that one of the above development commands will block
       until an in-progress _a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___P_A_S_S completes.  This is usually
       of short duration while the project history is updated.  The delay is
       essential so that these commands receive a consistent view of the
       baseline.  No other integration command will cause the above
       development commands to block.

       When aegis' branch functionality is in use, a read (non-exclusive) lock
       is taken on the branch baseline and also each of the "parent"
       baselines.  However, a baseline write (exclusive) lock is only taken on
       the branch baseline; the "parent" baselines are only read (non-
       exclusive) locked.

   TThhee HHiissttoorryy LLoocckk
       Where a project has a number of branches active simultaneously, it is
       possible for independent integrate pass commands for different branches
       to be issued very close together.  The is an exclusive _h_i_s_t_o_r_y _l_o_c_k
       taken by integrate pass to ensure that only one branch is updating the
       file history at a time, thus preventing history file corruption.

TTEESSTT CCOORRRREELLAATTIIOONNSS
       The ``aegis -Test -SUGgest'' command may be used to have aegis suggest
       suitable regression tests for your change, based on the source files in
       your change.  This automatically focuses testing effort to relevant
       tests, reducing the number of regression tests necessary to be
       confident that you have not introduced a bug.

       The test correlations are generated by the ``aegis -Integrate_Pass''
       command, which associates each test in the change with each source file
       in the change.  Thus, each source file accumulates a list of tests
       which have been associated with it in the past.  This is not as exact
       as code coverage analysis, but is a reasonable approximation in
       practice.

       The _a_e_c_p(1) and _a_e_n_f(1) commands are used to associate files with a
       change.  While they do not actively perform the association, these are
       the files used by _a_e_i_p_a_s_s(1) and _a_e_t(1) to determine which source files
       are associated with which tests.

   TTeesstt CCoorrrreellaattiioonn AAccccuurraaccyy
       Assuming that the testing correlations are accurate and that the tests
       are evenly distributed across the function space, there will be a less
       than _1_/_n_u_m_b_e_r chance that a relevant test has not been run by the
       ``aegis -Test -SUGgest _n_u_m_b_e_r'' command.  A small amount of noise is
       added to the test weighting, so that unexpected things are sometimes
       tested, and the same tests are not run every time.

       Test correlation accuracy can be improved by ensuring that:

       +o Each change should be strongly focused, with no gratuitous file
         inclusions.  This avoids spurious correlations.

       +o Each item of new functionality should be added in an individual
         change, rather than several together.  This strongly correlates tests
         with functionality.

       +o Each bug should be fixed in an individual change, rather than several
         together.  This strongly correlates tests with functionality.

       +o Test correlations will be lost if files are moved.  This is because
         correlations are by name.

       The best way for tests to correlate accurately with source files is
       when a change contains a test and exactly those files relating to the
       functionality under test.  Too many spurious files will weaken the
       usefulness of the testing correlations.

MMEETTRRIICCSS
       Aegis is capable of recording metrics as part of the file attributes of
       a change.  This allows various properties of files to be recorded for
       later trend analysis, or other uses.

       The specific metrics are not dictated by Aegis.  It is expected that
       the integration build will create a metrics file for each of the source
       files the change.  These metrics files must be in the format specified
       by _a_e_m_e_t_r_i_c_s(5).

       The name of the metrics file defaults to ``_f_i_l_e_n_a_m_e,,SS'', however it may
       be varied, by setting the _m_e_t_r_i_c_s___f_i_l_e_n_a_m_e___p_a_t_t_e_r_n field of the project
       _c_o_n_f_i_g file.  See _a_e_p_c_o_n_f(5) for more information.

       If such a metrics file exists, for each source file in a change, it
       will be read and remembered at integrate pass time.  If it does not
       exist, Aegis assumes there are no relevant metrics for that file, and
       proceeds silently; it is not an error.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --NNoott__LLooggggiinngg
               This option may be used to disable the automatic logging of
               output and errors to a file.  This is often useful when several
               aegis commands are combined in a shell script.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aeipass 'aegis -ipass \!* -v'
       sh$     aeipass(){aegis -ipass "$@" -v}

EERRRROORRSS
       It is an error if the change is not assigned to the current user.
       It is an error if The change is not in the _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d state.
       It is an error if there has been no successful _'_a_e_g_i_s _-_B_u_i_l_d_' command
       for the integration.
       It is an error if there has been no successful _'_a_e_g_i_s _-_T_e_s_t_' command
       for the integration.
       It is an error if there has been no successful _'_a_e_g_i_s _-_T_e_s_t _-_B_a_s_e_L_i_n_e_'
       command for the integration.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_i_b(1) begin integration of a change

       _a_e_i_f_a_i_l(1)
               fail integration of a change

       _a_e_m_e_a_s_u_r_e(1)
               simple file metrics

       _a_e_m_e_t_r_i_c_s(5)
               metrics values file format

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -List(1)                                                  aegis -List(1)



NNAAMMEE
       aegis -List - list (possibly) interesting things

SSYYNNOOPPSSIISS
       aaeeggiiss --LLiisstt [ _o_p_t_i_o_n...  ] _l_i_s_t_-_n_a_m_e
       aaeeggiiss --LLiisstt --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --LLiisstt --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_L_i_s_t command is used to list information.  There are a
       number of possible _l_i_s_t_-_n_a_m_es, as follows (abbreviations as for command
       line options):

       Administrators
               List the administrators of a project.

       Change_Details
               List full information about a change in large format.

       Change_Files
               List all files in a change.  The verbose version includes
               details such as the action being taken, the edit number of the
               file, and whether it's being moved.  The terse version only
               lists the files names (and omits removed files), this is useful
               for shell scripts and interfacing with build tools.

       Change_File_History
               This listing shows the history of each file in the change.  It
               includes each delta number (so that you may reproduce it) and
               brief description, of each change which affected each file.

       Change_History
               List the history of a change.

       Changes
               List the changes of a project.  The verbose version includes
               details such as the state of the change and it's brief
               description.  The terse version lists only the change numbers,
               which is good for shell scripts.

       Default_Change
               List the default change for the specified user (defaults to the
               current user if no user specified).

       Default_Project
               List the default project for the specified user (defaults to
               the current user if no user specified).

       Developers
               List the developers of a project.

       INComplete
               List the changes between the _a_w_a_i_t_i_n_g _r_e_v_i_e_w and _b_e_i_n_g
               _i_n_t_e_g_r_a_t_e_d states, inclusive.  Defaults to all users if no user
               name specified.

       Integrators
               List the integrators of a project.

       List_List
               List all lists available.

       Locks
               List all currently active locks.

       Outstanding_Changes
               List all changes owned by the specified user that are not yet
               completed (default to all users if no user specified).

       All_Outstanding_Changes
               List all changes not yet completed, for all projects.

       Project_Files
               List all files in the baseline of a project.  The verbose
               version includes details such as the action being taken, the
               edit number of the file.  The terse version only lists the
               files names (and omits removed files), this is useful for shell
               scripts and interfacing with build tools.  If a change number
               is given, files included in the change are omitted from the
               list (giving the change's perspective on what the project files
               are).

       Project_History
               List the integration history of a project.

       Projects
               List all projects.

       Project_Aliases
               List all project aliases.  If you use the --PPrroojjeecctt command line
               option, the list will only include aliases of the specified
               project, or the project of the specified alias.

       Reviewers
               List the reviewers of a project.

       State_File_Name
               Prints the absolute path of the project's or change's state
               file.  Useful for cookbooks and makefiles.

       Users_Changes
               List of changes owned by the specified user (defaults to
               current user if no user specified).

       Version
               List version of a project or change.  This includes the major
               and minor version number, and the previous version number if
               available.  The list of copyright years is also printed.

       Most of these lists are available from other aegis functions.  Many
       aegis functions provide more specific lists.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPAAGGeerr  The output of listings and help is piped through the pager
               command given in the PAGER environment variable (or _m_o_r_e if not
               set).  This is the default if the command is in the foreground,
               and the output is a TTY.  This option may be used to override
               any preference specified in the _a_e_u_c_o_n_f(5) file.

       --NNoo__PPAAGGeerr
               This option may be used to ensure that the output of listings
               and help is not piped through a pager command.  This is the
               default if the command is in the background, or if the output
               is not a TTY.  This option may be used to override any
               preference specified in the _a_e_u_c_o_n_f(5) file.

       --PPaaggee__LLeennggtthh _n_u_m_b_e_r
               This option may be used to set the page length of listings.
               The default, in order of preference, is obtained from the
               system, from the _L_I_N_E_S environment variable, or set to 24
               lines.

       --PPaaggee__WWiiddtthh _n_u_m_b_e_r
               This option may be used to set the page width of listings and
               error messages.  The default, in order of preference, is
               obtained from the system, from the _C_O_L_S environment variable,
               or set to 79 characters.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --UUNNFFoorrmmaatttteedd
               This option may be used with most listings to specify that the
               column formatting is not to be performed.  This is useful for
               shell scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias ael 'aegis -l \!* -v'
       sh$     ael(){aegis -l "$@" -v}

EERRRROORRSS
       It is an error if the list name given is unknown.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_d_b(1) begin development of a change (listing option)

       _a_e_i_b(1) begin integration of a change (listing option)

       _a_e_r(1)  report generator

       _a_e_r_p_a_s_s(1)
               pass review of a change (listing option)

       _a_e_u_c_o_n_f(5)
               user configuration file format

       _a_e_l_s(1) annotated directory listing

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
GPL(GNU)                   Free Software Foundation                   GPL(GNU)



                             GNU GENERAL PUBLIC LICENSE
                                Version 2, June 1991

       Copyright (C) 1989, 1991 Free Software Foundation, Inc.
       59 Temple Place, Suite 330, Boston, MA 02111, USA
       Everyone is permitted to copy and distribute verbatim copies of this
       license document, but changing it is not allowed.

                                      Preamble

       The licenses for most software are designed to take away your freedom
       to share and change it.  By contrast, the GNU General Public License is
       intended to guarantee your freedom to share and change free
       software--to make sure the software is free for all its users.  This
       General Public License applies to most of the Free Software
       Foundation's software and to any other program whose authors commit to
       using it.  (Some other Free Software Foundation software is covered by
       the GNU Library General Public License instead.)  You can apply it to
       your programs, too.

       When we speak of free software, we are referring to freedom, not price.
       Our General Public Licenses are designed to make sure that you have the
       freedom to distribute copies of free software (and charge for this
       service if you wish), that you receive source code or can get it if you
       want it, that you can change the software or use pieces of it in new
       free programs; and that you know you can do these things.

       To protect your rights, we need to make restrictions that forbid anyone
       to deny you these rights or to ask you to surrender the rights.  These
       restrictions translate to certain responsibilities for you if you
       distribute copies of the software, or if you modify it.

       For example, if you distribute copies of such a program, whether gratis
       or for a fee, you must give the recipients all the rights that you
       have.  You must make sure that they, too, receive or can get the source
       code.  And you must show them these terms so they know their rights.

       We protect your rights with two steps: (1) copyright the software, and
       (2) offer you this license which gives you legal permission to copy,
       distribute and/or modify the software.

       Also, for each author's protection and ours, we want to make certain
       that everyone understands that there is no warranty for this free
       software.  If the software is modified by someone else and passed on,
       we want its recipients to know that what they have is not the original,
       so that any problems introduced by others will not reflect on the
       original authors' reputations.

       Finally, any free program is threatened constantly by software patents.
       We wish to avoid the danger that redistributors of a free program will
       individually obtain patent licenses, in effect making the program
       proprietary.  To prevent this, we have made it clear that any patent
       must be licensed for everyone's free use or not licensed at all.

       The precise terms and conditions for copying, distribution and
       modification follow.




























































































                             GNU GENERAL PUBLIC LICENSE
           TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

       0. This License applies to any program or other work which contains a
       notice placed by the copyright holder saying it may be distributed
       under the terms of this General Public License.  The "Program", below,
       refers to any such program or work, and a "work based on the Program"
       means either the Program or any derivative work under copyright law:
       that is to say, a work containing the Program or a portion of it,
       either verbatim or with modifications and/or translated into another
       language.  (Hereinafter, translation is included without limitation in
       the term "modification".)  Each licensee is addressed as "you".

       Activities other than copying, distribution and modification are not
       covered by this License; they are outside its scope.  The act of
       running the Program is not restricted, and the output from the Program
       is covered only if its contents constitute a work based on the Program
       (independent of having been made by running the Program).  Whether that
       is true depends on what the Program does.

       1. You may copy and distribute verbatim copies of the Program's source
       code as you receive it, in any medium, provided that you conspicuously
       and appropriately publish on each copy an appropriate copyright notice
       and disclaimer of warranty; keep intact all the notices that refer to
       this License and to the absence of any warranty; and give any other
       recipients of the Program a copy of this License along with the
       Program.

       You may charge a fee for the physical act of transferring a copy, and
       you may at your option offer warranty protection in exchange for a fee.

       2. You may modify your copy or copies of the Program or any portion of
       it, thus forming a work based on the Program, and copy and distribute
       such modifications or work under the terms of Section 1 above, provided
       that you also meet all of these conditions:

       a)  You must cause the modified files to carry prominent notices
           stating that you changed the files and the date of any change.

       b)  You must cause any work that you distribute or publish, that in
           whole or in part contains or is derived from the Program or any
           part thereof, to be licensed as a whole at no charge to all third
           parties under the terms of this License.

       c)  If the modified program normally reads commands interactively when
           run, you must cause it, when started running for such interactive
           use in the most ordinary way, to print or display an announcement
           including an appropriate copyright notice and a notice that there
           is no warranty (or else, saying that you provide a warranty) and
           that users may redistribute the program under these conditions, and
           telling the user how to view a copy of this License.  (Exception:
           if the Program itself is interactive but does not normally print
           such an announcement, your work based on the Program is not
           required to print an announcement.)

       These requirements apply to the modified work as a whole.  If
       identifiable sections of that work are not derived from the Program,
       and can be reasonably considered independent and separate works in
       themselves, then this License, and its terms, do not apply to those
       sections when you distribute them as separate works.  But when you
       distribute the same sections as part of a whole which is a work based
       on the Program, the distribution of the whole must be on the terms of
       this License, whose permissions for other licensees extend to the
       entire whole, and thus to each and every part regardless of who wrote
       it.

       Thus, it is not the intent of this section to claim rights or contest
       your rights to work written entirely by you; rather, the intent is to
       exercise the right to control the distribution of derivative or
       collective works based on the Program.

       In addition, mere aggregation of another work not based on the Program
       with the Program (or with a work based on the Program) on a volume of a
       storage or distribution medium does not bring the other work under the
       scope of this License.

       3. You may copy and distribute the Program (or a work based on it,
       under Section 2) in object code or executable form under the terms of
       Sections 1 and 2 above provided that you also do one of the following:

       a)  Accompany it with the complete corresponding machine-readable
           source code, which must be distributed under the terms of Sections
           1 and 2 above on a medium customarily used for software
           interchange; or,

       b)  Accompany it with a written offer, valid for at least three years,
           to give any third party, for a charge no more than your cost of
           physically performing source distribution, a complete machine-
           readable copy of the corresponding source code, to be distributed
           under the terms of Sections 1 and 2 above on a medium customarily
           used for software interchange; or,

       c)  Accompany it with the information you received as to the offer to
           distribute corresponding source code.  (This alternative is allowed
           only for noncommercial distribution and only if you received the
           program in object code or executable form with such an offer, in
           accord with Subsection b above.)

       The source code for a work means the preferred form of the work for
       making modifications to it.  For an executable work, complete source
       code means all the source code for all modules it contains, plus any
       associated interface definition files, plus the scripts used to control
       compilation and installation of the executable.  However, as a special
       exception, the source code distributed need not include anything that
       is normally distributed (in either source or binary form) with the
       major components (compiler, kernel, and so on) of the operating system
       on which the executable runs, unless that component itself accompanies
       the executable.

       If distribution of executable or object code is made by offering access
       to copy from a designated place, then offering equivalent access to
       copy the source code from the same place counts as distribution of the
       source code, even though third parties are not compelled to copy the
       source along with the object code.

       4. You may not copy, modify, sublicense, or distribute the Program
       except as expressly provided under this License.  Any attempt otherwise
       to copy, modify, sublicense or distribute the Program is void, and will
       automatically terminate your rights under this License.  However,
       parties who have received copies, or rights, from you under this
       License will not have their licenses terminated so long as such parties
       remain in full compliance.

       5. You are not required to accept this License, since you have not
       signed it.  However, nothing else grants you permission to modify or
       distribute the Program or its derivative works.  These actions are
       prohibited by law if you do not accept this License.  Therefore, by
       modifying or distributing the Program (or any work based on the
       Program), you indicate your acceptance of this License to do so, and
       all its terms and conditions for copying, distributing or modifying the
       Program or works based on it.

       6. Each time you redistribute the Program (or any work based on the
       Program), the recipient automatically receives a license from the
       original licensor to copy, distribute or modify the Program subject to
       these terms and conditions.  You may not impose any further
       restrictions on the recipients' exercise of the rights granted herein.
       You are not responsible for enforcing compliance by third parties to
       this License.

       7. If, as a consequence of a court judgment or allegation of patent
       infringement or for any other reason (not limited to patent issues),
       conditions are imposed on you (whether by court order, agreement or
       otherwise) that contradict the conditions of this License, they do not
       excuse you from the conditions of this License.  If you cannot
       distribute so as to satisfy simultaneously your obligations under this
       License and any other pertinent obligations, then as a consequence you
       may not distribute the Program at all.  For example, if a patent
       license would not permit royalty-free redistribution of the Program by
       all those who receive copies directly or indirectly through you, then
       the only way you could satisfy both it and this License would be to
       refrain entirely from distribution of the Program.

       If any portion of this section is held invalid or unenforceable under
       any particular circumstance, the balance of the section is intended to
       apply and the section as a whole is intended to apply in other
       circumstances.

       It is not the purpose of this section to induce you to infringe any
       patents or other property right claims or to contest validity of any
       such claims; this section has the sole purpose of protecting the
       integrity of the free software distribution system, which is
       implemented by public license practices.  Many people have made
       generous contributions to the wide range of software distributed
       through that system in reliance on consistent application of that
       system; it is up to the author/donor to decide if he or she is willing
       to distribute software through any other system and a licensee cannot
       impose that choice.

       This section is intended to make thoroughly clear what is believed to
       be a consequence of the rest of this License.

       8. If the distribution and/or use of the Program is restricted in
       certain countries either by patents or by copyrighted interfaces, the
       original copyright holder who places the Program under this License may
       add an explicit geographical distribution limitation excluding those
       countries, so that distribution is permitted only in or among countries
       not thus excluded.  In such case, this License incorporates the
       limitation as if written in the body of this License.

       9. The Free Software Foundation may publish revised and/or new versions
       of the General Public License from time to time.  Such new versions
       will be similar in spirit to the present version, but may differ in
       detail to address new problems or concerns.

       Each version is given a distinguishing version number.  If the Program
       specifies a version number of this License which applies to it and "any
       later version", you have the option of following the terms and
       conditions either of that version or of any later version published by
       the Free Software Foundation.  If the Program does not specify a
       version number of this License, you may choose any version ever
       published by the Free Software Foundation.

       10. If you wish to incorporate parts of the Program into other free
       programs whose distribution conditions are different, write to the
       author to ask for permission.  For software which is copyrighted by the
       Free Software Foundation, write to the Free Software Foundation; we
       sometimes make exceptions for this.  Our decision will be guided by the
       two goals of preserving the free status of all derivatives of our free
       software and of promoting the sharing and reuse of software generally.

                                     NO WARRANTY

       11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
       WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
       EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
       OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND,
       EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
       WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
       THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
       WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
       ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

       12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
       WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
       AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
       FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
       CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
       PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
       RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
       FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
       SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
       DAMAGES.

                             END OF TERMS AND CONDITIONS



















































































































               Appendix: How to Apply These Terms to Your New Programs

       If you develop a new program, and you want it to be of the greatest
       possible use to the public, the best way to achieve this is to make it
       free software which everyone can redistribute and change under these
       terms.

       To do so, attach the following notices to the program.  It is safest to
       attach them to the start of each source file to most effectively convey
       the exclusion of warranty; and each file should have at least the
       "copyright" line and a pointer to where the full notice is found.

           < one line to give the program's name and a brief idea of what it
           does.  >
           Copyright (C) 19yy < name of author >

           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.

       Also add information on how to contact you by electronic and paper
       mail.

       If the program is interactive, make it output a short notice like this
       when it starts in an interactive mode:

           Gnomovision version 69, Copyright (C) 19yy name of author
           Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type
           `show w'.  This is free software, and you are welcome to
           redistribute it under certain conditions; type `show c' for
           details.

       The hypothetical commands `show w' and `show c' should show the
       appropriate parts of the General Public License.  Of course, the
       commands you use may be called something other than `show w' and `show
       c'; they could even be mouse-clicks or menu items--whatever suits your
       program.

       You should also get your employer (if you work as a programmer) or your
       school, if any, to sign a "copyright disclaimer" for the program, if
       necessary.  Here is a sample; alter the names:

           Yoyodyne, Inc., hereby disclaims all copyright interest in the
           program `Gnomovision' (which makes passes at compilers) written by
           James Hacker.

           < signature of Ty Coon, > 1 April 1989
           Ty Coon, President of Vice

       This General Public License does not permit incorporating your program
       into proprietary programs.  If your program is a subroutine library,
       you may consider it more useful to permit linking proprietary
       applications with the library.  If this is what you want to do, use the
aels(1)                                                                aels(1)



       GNU Library General Public License instead of this License.

NNAAMMEE
       aels - annotated directory listing

SSYYNNOOPPSSIISS
       aaeellss [ _o_p_t_i_o_n...  ][ _f_i_l_e_n_a_m_e...  ]
       aaeellss --HHeellpp
       aaeellss --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_l_s command is used to list information about the files and
       directories named on the command line.  If no files are named, the
       current directory is listed.

       The view presented is from Aegis' perspective.  It unifies the
       development directory with the baseline.

OOPPTTIIOONNSS
       The following options are understood:

       --RReeccuurrssiivvee

       --LLOOnngg   This option implies the --SShhooww--MMooddee, --SShhooww--AAttttrriibbuutteess, --SShhooww--
               UUsseerr, --SShhooww--GGrroouupp, --SShhooww--SSiizzee and --SShhooww--WWhheenn options, unless
               explicitly overridden.

       --SShhooww--DDoott--FFiilleess
               This option may be used to show files starting with a dot (.).

       --HHiiddee--DDoott--FFiilleess
               This option may be used to hide files starting with a dot (.).
               This is the default.

       --SShhooww--RReemmoovveedd--FFiilleess
               This option may be used to include removed files in the
               listing.

       --HHiiddee--RReemmoovveedd--FFiilleess
               This option may be used to exclude removed files from the
               listing.  This is the default.

       --SShhooww--MMooddee
               This option may be used to include the mode column in the
               listing.  The mode column indicates the file type and
               permissions.

       --HHiiddee--MMooddee
               This option may be used to exclude the mode column from the
               listing.  This is the default.

       --SShhooww--AAttttrriibbuutteess
               This option may be used to include the attributes column in the
               listing.  The attributes column indicates whether the file is
               part of the change, the project or neither; whether the file is
               being created, modified or removed; whether the file is a
               source file, a test file, or neither.  This is the default.

       --HHiiddee--AAttttrriibbuutteess
               This option may be used to exclude the attributes column from
               the listing.

       --SShhooww--UUsseerr
               This option may be used to include file owner information in
               the listing.

       --HHiiddee--UUsseerr
               This option may be used to exclude file owner information from
               the listing.  This is the default.

       --SShhooww--GGrroouupp
               This option may be used to include file group information in
               the listing.

       --HHiiddee--GGrroouupp
               This option may be used to exclude file group information from
               the listing.  This is the default.

       --SShhooww--SSiizzee
               This option may be used to include file size information in the
               listing.

       --HHiiddee--SSiizzee
               This option may be used to exclude file size information from
               the listing.  This is the default.

       --SShhooww--WWhheenn
               This option may be used to include the file modification time
               in the listing.

       --HHiiddee--WWhheenn
               This option may be used to exclude the file modification time
               from the listing.  This is the default.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_l_s program.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_l_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

EEXXIITT SSTTAATTUUSS
       The _a_e_l_s command will exit with a status of 1 on any error.  The _a_e_l_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _l_s(1)   list directory contents

       _a_e_f_i_n_d(1)
               search for files in directory hierarchy

       _a_e_l _c_f  List change files.

       _a_e_l _p_f  List project files.

CCOOPPYYRRIIGGHHTT
       aels version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aels program comes with ABSOLUTELY NO WARRANTY; for details use the
       '_a_e_l_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you are
       welcome to redistribute it under certain conditions; for details use
       the '_a_e_l_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aemeasure(1)                                                      aemeasure(1)



NNAAMMEE
       aemeasure - simple file metrics

SSYYNNOOPPSSIISS
       aaeemmeeaassuurree [ _i_n_f_i_l_e [ _o_u_t_f_i_l_e ]]

DDEESSCCRRIIPPTTIIOONN
       The _a_e_m_e_a_s_u_r_e command is used to measure a few very simple file
       statistics: lines of code, lines of comments, blank lines.  It is an
       example of a probgram which produces its output in the _a_e_m_e_t_r_i_c_s(5)
       format, suitable for Aegis to read and understand as file metrics.

       The language of the file is determined by examining the file suffix.

                     .c, .h, .y   C language
                     .cc, .CC,    C++ language
                     .c++,
                     .man, .mm,   GNU Groff input
                     .ms, .so

MMEETTRRIICCSS
       Aegis is capable of recording metrics as part of the file attributes of
       a change.  This allows various properties of files to be recorded for
       later trend analysis, or other uses.

       The specific metrics are not dictated by Aegis.  It is expected that
       the integration build will create a metrics file for each of the source
       files the change.  These metrics files must be in the format specified
       by _a_e_m_e_t_r_i_c_s(5).

       The name of the metrics file defaults to ``_f_i_l_e_n_a_m_e,,SS'', however it may
       be varied, by setting the _m_e_t_r_i_c_s___f_i_l_e_n_a_m_e___p_a_t_t_e_r_n field of the project
       _c_o_n_f_i_g file.  See _a_e_p_c_o_n_f(5) for more information.

       If such a metrics file exists, for each source file in a change, it
       will be read and remembered at integrate pass time.  If it does not
       exist, Aegis assumes there are no relevant metrics for that file, and
       proceeds silently; it is not an error.

OOPPTTIIOONNSS
       The following option is understood

       --LLAANNGGuuaaggee _n_a_m_e
              This option may be used to specify the input language of the
              file, rather than have the input language be guessed fromn the
              file suffix.  The name must be one of the following: C, C++,
              roff or generic.  Any other name will result in an error.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_m_e_a_s_u_r_e are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

EEXXIITT SSTTAATTUUSS
       The _a_e_m_e_a_s_u_r_e command will exit with a status of 1 on any error.  The
       _a_e_m_e_a_s_u_r_e command will only exit with a status of 0 if there are no
       errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_i_p_a_s_s(1)
               pass a change integration

       _a_e_m_e_t_r_i_c_s(5)
               metrics values file format

CCOOPPYYRRIIGGHHTT
       aemeasure version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aemeasure program comes with ABSOLUTELY NO WARRANTY; for details
       use the '_a_e_m_e_a_s_u_r_e _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software
       and you are welcome to redistribute it under certain conditions; for
       details use the '_a_e_m_e_a_s_u_r_e _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Make_Transparent(1)                          aegis -Make_Transparent(1)



NNAAMMEE
       aegis -Make_Transparent - make branch file transparent

SSYYNNOOPPSSIISS
       aaeeggiiss --MMaakkee__TTrraannssppaarreenntt [ _o_p_t_i_o_n...  ] _f_i_l_e_n_a_m_e...
       aaeeggiiss --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --HHeellpp
       aaeeggiiss --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_M_a_k_e___T_r_a_n_s_p_a_r_e_n_t command is used to add a file to the change
       which will result in the named file being made transparent in the
       branch when the change is integrated.  The version of the project file
       from the deeper branch will then show through.

       You may name a directory to make all files in that directory tree
       transparent.  It is an error if there are no relevant files.

   BBrraanncchh _v_s CChhaannggee
       The _a_e_c_p_u(1) command may only be applied to a change.  If you wish to
       perform the same operation on a branch, use the _a_e_m_t(1) command,
       through the agency of a change.

   FFiillee NNaammee IInntteerrpprreettaattiioonn
       The aegis program will attempt to determine the project file names from
       the file names given on the command line.  All file names are stored
       within aegis projects as relative to the root of the baseline directory
       tree.  The development directory and the integration directory are
       shadows of this baseline directory, and so these relative names apply
       here, too.  Files named on the command line are first converted to
       absolute paths if necessary.  They are then compared with the baseline
       path, the development directory path, and the integration directory
       path, to determine a baseline-relative name.  It is an error if the
       file named is outside one of these directory trees.

       The --BBAAssee__RREEllaattiivvee option may be used to cause relative filenames to be
       interpreted as relative to the baseline path; absolute filenames will
       still be compared with the various paths in order to determine a
       baseline-relative name.

       The _r_e_l_a_t_i_v_e___f_i_l_e_n_a_m_e___p_r_e_f_e_r_e_n_c_e in the user configuration file may be
       used to modify this default behavior.  See _a_e_u_c_o_n_f(5) for more
       information.

   PPrroocceessss SSiiddee EEffffeeccttss
       This command will cancel any build or test registrations, because
       changing the change file list logically invalidates them.

OOPPTTIIOONNSS
       The following options are understood:

       --BBAAssee__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the base of the source tree.  See
               _a_e_u_c_o_n_f(5) for the corresponding user preference.

       --CCUUrrrreenntt__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the current directory.  This is usually
               the default.  See _a_e_u_c_o_n_f(5) for the corresponding user
               preference.

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --UUNNCChhaannggeedd
               Examine the named files to see if they are unchanged.  Only
               remove the unchanged files from the branch, and leave the files
               which have changed.  If no files are named on the command line
               all branch files are checked.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aemt 'aegis -mt \!* -v'
       sh$     aemt(){aegis -mt "$@" -v}

       This command is dedicated to my wife, Mary-Therese.  When I was trying
       to explain what this command did, she said "I had one of those on my
       bicycle when I was young, but it fell off".

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
       It is an error if the change is not assigned to the current user.
       It is an error if the file is not present in the immediate branch.
       It is an error if the file is present in the immediate branch, but is
       not also present in a deeper branch.
       It is an error if the file is only present in the trunk branch.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_c_p_u(1)
               uncopy copy files from a change

       _a_e_m_t_u(1)
               cease making branch files transparent

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Make_Transparent_Undo(1)                aegis -Make_Transparent_Undo(1)



NNAAMMEE
       aegis -Make_Transparent_Undo - no longer make branch file transparent

SSYYNNOOPPSSIISS
       aaeeggiiss --MMaakkee__TTrraannssppaarreenntt__UUnnddoo [ _o_p_t_i_o_n...  ] _f_i_l_e_n_a_m_e...
       aaeeggiiss --MMaakkee__TTrraannssppaarreenntt__UUnnddoo --LLiisstt
       aaeeggiiss --MMaakkee__TTrraannssppaarreenntt__UUnnddoo --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_M_a_k_e___T_r_a_n_s_p_a_r_e_n_t___U_n_d_o command is used to reverse the effects
       of the _a_e_g_i_s _-_M_a_k_e___T_r_a_n_s_p_a_r_e_n_t command.  The named files will be
       removed from the list of files in the change.

       The file is deleted from the development directory unless the --KKeeeepp
       option is specified.  The --KKeeeepp option should be used with great care,
       as you can confuse tools such as _m_a_k_e(1) by leaving these files in
       place.

       You may name a directory to delete from the change all files in that
       directory tree previously copied into the change, other files in the
       tree will be ignored.  It is an error if there are no relevant files.

   FFiillee NNaammee IInntteerrpprreettaattiioonn
       The aegis program will attempt to determine the project file names from
       the file names given on the command line.  All file names are stored
       within aegis projects as relative to the root of the baseline directory
       tree.  The development directory and the integration directory are
       shadows of this baseline directory, and so these relative names apply
       here, too.  Files named on the command line are first converted to
       absolute paths if necessary.  They are then compared with the baseline
       path, the development directory path, and the integration directory
       path, to determine a baseline-relative name.  It is an error if the
       file named is outside one of these directory trees.

       The --BBAAssee__RREEllaattiivvee option may be used to cause relative filenames to be
       interpreted as relative to the baseline path; absolute filenames will
       still be compared with the various paths in order to determine a
       baseline-relative name.

       The _r_e_l_a_t_i_v_e___f_i_l_e_n_a_m_e___p_r_e_f_e_r_e_n_c_e in the user configuration file may be
       used to modify this default behavior.  See _a_e_u_c_o_n_f(5) for more
       information.

   PPrroocceessss SSiiddee EEffffeeccttss
       This command will cancel any build or test registrations, because
       deleting a file logically invalidates them.  If the project _c_o_n_f_i_g file
       was deleted, any diff registration will also be canceled.

       The difference file (,D) will also be removed, however any DMT derived
       files (e.g a .o file from a .c file) will not be removed.  This is
       because aegis is decoupled from the DMT, and cannot know what these
       derived file may be called.  You may need to delete derived files
       manually.

   NNoottiiffiiccaattiioonn
       The _m_a_k_e___t_r_a_n_s_p_a_r_e_n_t___u_n_d_o___c_o_m_m_a_n_d in the project _c_o_n_f_i_g file is run, if
       set.  The _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d is also run, if set, and if there has
       been an integration recently.  See _a_e_p_c_o_n_f(5) for more information.

OOPPTTIIOONNSS
       The following options are understood:

       --BBAAssee__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the base of the source tree.  See
               _a_e_u_c_o_n_f(5) for the corresponding user preference.

       --CCUUrrrreenntt__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the current directory.  This is usually
               the default.  See _a_e_u_c_o_n_f(5) for the corresponding user
               preference.

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --IInntteerraaccttiivvee
               Specify that aegis should ask the user for confirmation before
               deleting each file.  Answer the question _y_e_s to delete the
               file, or _n_o to keep the file.  You can also answer _a_l_l to
               delete the file and all that follow, or _n_o_n_e to keep the file
               and all that follow.

               Defaults to the user's _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

               If aegis is running in the background, the question will not be
               asked, and the files will be deleted.

       --KKeeeepp
               This option may be used to retain files and/or directories
               usually deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --NNoo__KKeeeepp
               This option may be used to ensure that the files and/or
               directories are deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aemtu 'aegis -mtu \!* -v'
       sh$     aemtu(){aegis -mtu "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
       It is an error if the change is not assigned to the current user.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_c_p_u(1)
               no longer modify a file

       _a_e_m_t(1) make branch files transparent

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -MoVe_file(1)                                        aegis -MoVe_file(1)



NNAAMMEE
       aegis -MoVe_file - rename a file as part of a change

SSYYNNOOPPSSIISS
       aaeeggiiss --MMooVVee__ffiillee [ _o_p_t_i_o_n...  ] _o_l_d_-_n_a_m_e _n_e_w_-_n_a_m_e
       aaeeggiiss --MMooVVee__ffiillee --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --MMooVVee__ffiillee --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_M_o_V_e___f_i_l_e command is used to copy a file into a change and
       change its name at the same time.

       The named files will be copied from the baseline (_o_l_d_-_f_i_l_e) into the
       development directory (_n_e_w_-_f_i_l_e), and added to the list of files in the
       change.

       Warning: If there is already files in the development directory of
       either the _o_l_d_-_n_a_m_e or the _n_e_w_-_n_a_m_e they will be overwritten.

       The _o_l_d_-_f_i_l_e in the development directory will contain 1KB of random
       text.  The random text is sufficiently revolting that most compilers
       will give error messages, should the file be referenced accidentally.
       This is often very helpful when moving include files.

       You may rename directories.  All the files in the _o_l_d_-_n_a_m_e directory
       tree will be renamed to be below the _n_e_w_-_n_a_m_e directory tree.

   FFiillee NNaammee IInntteerrpprreettaattiioonn
       The aegis program will attempt to determine the project file names from
       the file names given on the command line.  All file names are stored
       within aegis projects as relative to the root of the baseline directory
       tree.  The development directory and the integration directory are
       shadows of this baseline directory, and so these relative names apply
       here, too.  Files named on the command line are first converted to
       absolute paths if necessary.  They are then compared with the baseline
       path, the development directory path, and the integration directory
       path, to determine a baseline-relative name.  It is an error if the
       file named is outside one of these directory trees.

       The --BBAAssee__RREEllaattiivvee option may be used to cause relative filenames to be
       interpreted as relative to the baseline path; absolute filenames will
       still be compared with the various paths in order to determine a
       baseline-relative name.

       The _r_e_l_a_t_i_v_e___f_i_l_e_n_a_m_e___p_r_e_f_e_r_e_n_c_e in the user configuration file may be
       used to modify this default behavior.  See _a_e_u_c_o_n_f(5) for more
       information.

   PPrroocceessss SSiiddee EEffffeeccttss
       This command will cancel any build or test registrations, because
       adding another file logically invalidates them.

       When the change files are listed (_a_e_g_i_s _-_L_i_s_t _C_h_a_n_g_e___F_i_l_e_s _-_T_E_R_s_e) the
       new files (_n_e_w_-_n_a_m_e) will appear in the listing, and the removed files
       (_o_l_d_-_n_a_m_e) will nnoott appear in the terse listing.  Similarly, when the
       project files are listed with an explicit change number (_a_e_g_i_s _-_L_i_s_t
       _P_r_o_j_e_c_t___F_i_l_e_s _-_T_E_R_s_e _-_C_h_a_n_g_e N) none of the change's files, including
       both the new and removed files, will appear in the terse listing.
       These two features are very helpful when calling aegis from within a
       DMT to generate the list of source files.

   NNoottiiffiiccaattiioonn
       The _n_e_w___f_i_l_e___c_o_m_m_a_n_d and _r_e_m_o_v_e___f_i_l_e___c_o_m_m_a_n_d in the project _c_o_n_f_i_g file
       are run, if set.  The _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d is also run, if set, and if
       there has been an integration recently.  See _a_e_p_c_o_n_f(5) for more
       information.

WWHHIITTEEOOUUTT
       Aegis provides you with what is often called a ``view path'' which
       indicates to development tools (compilers, build systems, _e_t_c) look
       first in the development directory, then in the branch baseline, and so
       on up to the trunk baseline.

       The problem with view paths is that in order to remove files, you need
       some kind of "whiteout" to say ``stop looking, it's been removed.''

       When you user the _a_e_r_m(1) or _a_e_m_v(1) commands, this means "add
       information to this change which will remove the file from the baseline
       when this change is integrated".  _I_._e_. while the change is in the _b_e_i_n_g
       _d_e_v_e_l_o_p_e_d state, the file is only "removed" in the development
       directory - it's still present in the baseline, and will be until the
       change is successfully integrated.

       When you use the _a_e_r_m(1) or _a_e_m_v(1) commands, Aegis will create a 1K
       file to act as the whiteout.  It's contents are rather ugly so that if
       you compile or include the "removed" file accidentally, you get a fatal
       error.  This will remind you to remove obsolete references.

       When the change in integrated, the removed file is _n_o_t copied/linked
       from the baseline to the integration directory, and is _n_o_t copied from
       the development directory.  At this time it is physically gone (no
       whiteout).  It is assumed that because of the error inducing whiteout
       all old references were found and fixed while the change was in the
       _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.

   FFiillee MMaanniiffeessttss
       When generating list of files to be compiled or linked, it is important
       that the file manifest be generated from information known by Aegis,
       rather than from the file system.  This is for several reasons:

       (a) Aegis knows exactly what (source) files are where, whereas
           everything else is inferring Aegis' knowledge; and

       (b) looking in the file system is hard when the view path is longer
           that 2 directories (and Aegis' branching method can make it
           arbitrarily long); and

       (c) The whiteout files, and anything else left ``lying around'', will
           confuse any method which interrogates the file system.

       The easiest way to use Aegis' file knowledge is with something like an
       _a_w_k(1) script processing the Aegis file lists.  For example, you can do
       this with _m_a_k_e(1) as follows:
              # generate the file manifest
              manifest.make.inc: manifest.make.awk
                   ( aegis -l cf -ter ; aegis -l pf -ter ) | \
                   awk -f manifest.make.awk > manifest.make.inc
              # now include the file manifest
              include manifest.make.inc
       Note: this would be inefficient of you did it once per directory, but
       there is nothing stopping you writing numerous assignments into the
       _m_a_n_i_f_e_s_t_._m_a_k_e_._i_n_c file, all in one pass.

       It is possible to do the same thing with Aegis' report generator (see
       _a_e_r(1) for more information), but this is more involved than the _a_w_k(1)
       script.  However, with the information "straight from the horse's
       mouth" as it were, it can also be much smarter.

       This file manifest would become out-of-date without an interlock to
       Aegis' file operations commands.  By using the _p_r_o_j_e_c_t_-_f_i_l_e___c_o_m_m_a_n_d and
       _c_h_a_n_g_e___f_i_l_e___c_o_m_m_a_n_d fields of the project _c_o_n_f_i_g file (see _a_e_p_c_o_n_f(5)
       for more information), you can delete this file at strategic times.
              /* run when the change file manifest is altered */
              change_file_command = "rm -f manifest.make.inc";
              /* run when the project file manifest is altered */
              project_file_command = "rm -f manifest.make.inc";
       The new file manifest will thus be re-built during the next _a_e_b(1)
       command.

   OOppttiioonnss aanndd PPrreeffeerreenncceess
       There is a --NNoo--WWhhiitteeOOuutt option, which may be used to suppress whiteout
       files when you use the _a_e_r_m(1) and _a_e_m_v(1) commands.  There is a
       corresponding --WWhhiitteeOOuutt option, which is usually the default.

       There is a _w_h_i_t_e_o_u_t___p_r_e_f_e_r_e_n_c_e field in the user preferences file (see
       _a_e_u_c_o_n_f(5) for more information) if you want to set this option more
       permanently.

   WWhhiitteeoouutt FFiillee TTeemmppllaatteess
       The _w_h_i_t_e_o_u_t___t_e_m_p_l_a_t_e field of the project _c_o_n_f_i_g file may be used to
       produce language-specific error files.  If no whiteout template entry
       matches, a very ugly 1KB file will be produced - it should induce
       compiler errors for just about any language.

       If you want a more human-readable error message, entries such as
              whiteout_template =
              [
                   {
                   pattern = [ "*.[ch]" ];
                   body = "#error This file has been removed.";
                   }
              ];
       can be very effective (this example assumes _g_c_c(1) is being used).

       If it is essential that _n_o whiteout file be produced, say for C source
       files, you could use a whiteout template such as
              whiteout_template =
              [
                   { pattern = [ "*.c" ]; }
              ];
       because an absent _b_o_d_y sub-field means generate no whiteout file at
       all.

       You may have more than one whiteout template entry, but note that the
       order of the entries is important.  The first entry which matches will
       be used.

   NNoottiiffiiccaattiioonn
       On successful completion of this command, the notifications usually
       performed by the _a_e_r_m(1), _a_e_n_f(1) and _a_e_n_t(1) commands are run, as
       appropriate.  These include the _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d, _n_e_w___f_i_l_e___c_o_m_m_a_n_d,
       _n_e_w___t_e_s_t___c_o_m_m_a_n_d and _r_e_m_o_v_e___f_i_l_e___c_o_m_m_a_n_d fields of the project _c_o_n_f_i_g
       file.  See _a_e_p_c_o_n_f(5) for more information.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --NNoott__LLooggggiinngg
               This option may be used to disable the automatic logging of
               output and errors to a file.  This is often useful when several
               aegis commands are combined in a shell script.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       --WWhhiitteeOOuutt
               This option may be used to request that deleted files be
               replaced by a ``whiteout'' file in the development directory.
               The idea is that compiling such a file will result in a fatal
               error, in order that all references may be found.  This is
               usually the default.

       --NNoo__WWhhiitteeOOuutt
               This option may be used to request that no ``whiteout'' file be
               placed in the development directory.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aemv 'aegis -mv \!* -v'
       sh$     aemv(){aegis -mv "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
       It is an error if the change is not assigned to the current user.
       It is an error if either file is already in the change.
       It is an error if you attempt to move the project _c_o_n_f_i_g file.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_c_p(1) copy files into a change

       _a_e_d_b(1) begin development of a change

       _a_e_m_v_u(1)
               undo the rename files as part of a change

       _a_e_n_f(1) add files to be created by a change

       _a_e_n_f_u(1)
               remove files to be created by a change

       _a_e_r_m(1) add files to be deleted by a change

       _a_e_r_m_u(1)
               remove files to be deleted by a change

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -MoVe_file_Undo(1)                              aegis -MoVe_file_Undo(1)



NNAAMMEE
       aegis -MoVe_file_Undo - undo the rename a file as part of a change

SSYYNNOOPPSSIISS
       aaeeggiiss --MMooVVee__ffiillee__UUnnddoo [ _o_p_t_i_o_n...  ] _f_i_l_e_n_a_m_e...
       aaeeggiiss --MMooVVee__ffiillee__UUnnddoo --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --MMooVVee__ffiillee__UUnnddoo --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_M_o_V_e___f_i_l_e___U_n_d_o command is used to reverse the effects of the
       _a_e_g_i_s _-_M_o_V_e___f_i_l_e command.  You only need to name one half of the
       rename, the other half will be determined automatically.  You may apply
       this command to whole directories.

       The named files will be removed from the development directory, and
       removed from the list of files in the change.

   FFiillee NNaammee IInntteerrpprreettaattiioonn
       The aegis program will attempt to determine the project file names from
       the file names given on the command line.  All file names are stored
       within aegis projects as relative to the root of the baseline directory
       tree.  The development directory and the integration directory are
       shadows of this baseline directory, and so these relative names apply
       here, too.  Files named on the command line are first converted to
       absolute paths if necessary.  They are then compared with the baseline
       path, the development directory path, and the integration directory
       path, to determine a baseline-relative name.  It is an error if the
       file named is outside one of these directory trees.

       The --BBAAssee__RREEllaattiivvee option may be used to cause relative filenames to be
       interpreted as relative to the baseline path; absolute filenames will
       still be compared with the various paths in order to determine a
       baseline-relative name.

       The _r_e_l_a_t_i_v_e___f_i_l_e_n_a_m_e___p_r_e_f_e_r_e_n_c_e in the user configuration file may be
       used to modify this default behavior.  See _a_e_u_c_o_n_f(5) for more
       information.

   PPrroocceessss SSiiddee EEffffeeccttss
       This command will cancel any build or test registrations, because
       adding another file logically invalidates them.

   NNoottiiffiiccaattiioonn
       The _n_e_w___f_i_l_e___u_n_d_o___c_o_m_m_a_n_d and _r_e_m_o_v_e___f_i_l_e___u_n_d_o___c_o_m_m_a_n_d in the project
       _c_o_n_f_i_g file are run, if set.  The _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d is also run, if
       set, and if there has been an integration recently.  See _a_e_p_c_o_n_f(5) for
       more information.

WWHHIITTEEOOUUTT
       Aegis provides you with what is often called a ``view path'' which
       indicates to development tools (compilers, build systems, _e_t_c) look
       first in the development directory, then in the branch baseline, and so
       on up to the trunk baseline.

       The problem with view paths is that in order to remove files, you need
       some kind of "whiteout" to say ``stop looking, it's been removed.''

       When you user the _a_e_r_m(1) or _a_e_m_v(1) commands, this means "add
       information to this change which will remove the file from the baseline
       when this change is integrated".  _I_._e_. while the change is in the _b_e_i_n_g
       _d_e_v_e_l_o_p_e_d state, the file is only "removed" in the development
       directory - it's still present in the baseline, and will be until the
       change is successfully integrated.

       When you use the _a_e_r_m(1) or _a_e_m_v(1) commands, Aegis will create a 1K
       file to act as the whiteout.  It's contents are rather ugly so that if
       you compile or include the "removed" file accidentally, you get a fatal
       error.  This will remind you to remove obsolete references.

       When the change in integrated, the removed file is _n_o_t copied/linked
       from the baseline to the integration directory, and is _n_o_t copied from
       the development directory.  At this time it is physically gone (no
       whiteout).  It is assumed that because of the error inducing whiteout
       all old references were found and fixed while the change was in the
       _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.

   FFiillee MMaanniiffeessttss
       When generating list of files to be compiled or linked, it is important
       that the file manifest be generated from information known by Aegis,
       rather than from the file system.  This is for several reasons:

       (a) Aegis knows exactly what (source) files are where, whereas
           everything else is inferring Aegis' knowledge; and

       (b) looking in the file system is hard when the view path is longer
           that 2 directories (and Aegis' branching method can make it
           arbitrarily long); and

       (c) The whiteout files, and anything else left ``lying around'', will
           confuse any method which interrogates the file system.

       The easiest way to use Aegis' file knowledge is with something like an
       _a_w_k(1) script processing the Aegis file lists.  For example, you can do
       this with _m_a_k_e(1) as follows:
              # generate the file manifest
              manifest.make.inc: manifest.make.awk
                   ( aegis -l cf -ter ; aegis -l pf -ter ) | \
                   awk -f manifest.make.awk > manifest.make.inc
              # now include the file manifest
              include manifest.make.inc
       Note: this would be inefficient of you did it once per directory, but
       there is nothing stopping you writing numerous assignments into the
       _m_a_n_i_f_e_s_t_._m_a_k_e_._i_n_c file, all in one pass.

       It is possible to do the same thing with Aegis' report generator (see
       _a_e_r(1) for more information), but this is more involved than the _a_w_k(1)
       script.  However, with the information "straight from the horse's
       mouth" as it were, it can also be much smarter.

       This file manifest would become out-of-date without an interlock to
       Aegis' file operations commands.  By using the _p_r_o_j_e_c_t_-_f_i_l_e___c_o_m_m_a_n_d and
       _c_h_a_n_g_e___f_i_l_e___c_o_m_m_a_n_d fields of the project _c_o_n_f_i_g file (see _a_e_p_c_o_n_f(5)
       for more information), you can delete this file at strategic times.
              /* run when the change file manifest is altered */
              change_file_command = "rm -f manifest.make.inc";
              /* run when the project file manifest is altered */
              project_file_command = "rm -f manifest.make.inc";
       The new file manifest will thus be re-built during the next _a_e_b(1)
       command.

   OOppttiioonnss aanndd PPrreeffeerreenncceess
       There is a --NNoo--WWhhiitteeOOuutt option, which may be used to suppress whiteout
       files when you use the _a_e_r_m(1) and _a_e_m_v(1) commands.  There is a
       corresponding --WWhhiitteeOOuutt option, which is usually the default.

       There is a _w_h_i_t_e_o_u_t___p_r_e_f_e_r_e_n_c_e field in the user preferences file (see
       _a_e_u_c_o_n_f(5) for more information) if you want to set this option more
       permanently.

   WWhhiitteeoouutt FFiillee TTeemmppllaatteess
       The _w_h_i_t_e_o_u_t___t_e_m_p_l_a_t_e field of the project _c_o_n_f_i_g file may be used to
       produce language-specific error files.  If no whiteout template entry
       matches, a very ugly 1KB file will be produced - it should induce
       compiler errors for just about any language.

       If you want a more human-readable error message, entries such as
              whiteout_template =
              [
                   {
                   pattern = [ "*.[ch]" ];
                   body = "#error This file has been removed.";
                   }
              ];
       can be very effective (this example assumes _g_c_c(1) is being used).

       If it is essential that _n_o whiteout file be produced, say for C source
       files, you could use a whiteout template such as
              whiteout_template =
              [
                   { pattern = [ "*.c" ]; }
              ];
       because an absent _b_o_d_y sub-field means generate no whiteout file at
       all.

       You may have more than one whiteout template entry, but note that the
       order of the entries is important.  The first entry which matches will
       be used.

   NNoottiiffiiccaattiioonn
       On successful completion of this command, the notifications usually
       performed by the _a_e_r_m_u(1), _a_e_n_f_u(1) and _a_e_n_t_u(1) commands are run, as
       appropriate.  These include the _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d, _n_e_w___f_i_l_e___u_n_d_o___-
       _c_o_m_m_a_n_d, _n_e_w___t_e_s_t___u_n_d_o___c_o_m_m_a_n_d and _r_e_m_o_v_e___f_i_l_e___u_n_d_o___c_o_m_m_a_n_d fields of
       the project _c_o_n_f_i_g file.  See _a_e_p_c_o_n_f(5) for more information.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --NNoott__LLooggggiinngg
               This option may be used to disable the automatic logging of
               output and errors to a file.  This is often useful when several
               aegis commands are combined in a shell script.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       --WWhhiitteeOOuutt
               This option may be used to request that deleted files be
               replaced by a ``whiteout'' file in the development directory.
               The idea is that compiling such a file will result in a fatal
               error, in order that all references may be found.  This is
               usually the default.

       --NNoo__WWhhiitteeOOuutt
               This option may be used to request that no ``whiteout'' file be
               placed in the development directory.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aemvu 'aegis -mvu \!* -v'
       sh$     aemvu(){aegis -mvu "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
       It is an error if the change is not assigned to the current user.
       It is an error if the file is not being moved by the change.
       It is an error if you attempt to move the project _c_o_n_f_i_g file.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_c_p(1) copy files into a change

       _a_e_d_b(1) begin development of a change

       _a_e_m_v(1) rename files as part of a change

       _a_e_n_f(1) add files to be created by a change

       _a_e_n_f_u(1)
               remove files to be created by a change

       _a_e_r_m(1) add files to be deleted by a change

       _a_e_r_m_u(1)
               remove files to be deleted by a change

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -New_Administrator(1)                        aegis -New_Administrator(1)



NNAAMMEE
       aegis -New_Administrator - add a new administrator to a project

SSYYNNOOPPSSIISS
       aaeeggiiss --NNeeww__AAddmmiinniissttrraattoorr _u_s_e_r_-_n_a_m_e...  [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__AAddmmiinniissttrraattoorr --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__AAddmmiinniissttrraattoorr --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_N_e_w___A_d_m_i_n_i_s_t_r_a_t_o_r command is used to add a new administrator
       to a project.

OOPPTTIIOONNSS
       The following options are understood:

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --DDeesscceenndd__PPrroojjeecctt__TTrreeee
               This option may be used to request that the command should be
               applied to the project and all its branches and sub-branches.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aena 'aegis -na \!* -v'
       sh$     aena(){aegis -na "$@" -v}

EERRRROORRSS
       It is an error if the current user is not an administrator of the
       project.
       It is an error if any of the named users have a uid of less than 100.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_p_a(1) modify the attributes of a project

       _a_e_r_a(1) remove administrators from a project

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -New_BRanch(1)                                      aegis -New_BRanch(1)



NNAAMMEE
       aegis -New_BRanch - create a new branch

SSYYNNOOPPSSIISS
       aaeeggiiss --NNeeww__BBRRaanncchh [ _n_u_m_b_e_r ][ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__BBRRaanncchh --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_N_e_w___B_R_a_n_c_h command is used to create a new branch.  A branch
       is very similar to a _c_h_a_n_g_e, except that a branch may have changes (or
       branches) of its own, and a change may not.

       You may choose your own branch number, if you want.  Zero and positives
       are legal, but negatives are not.  It is an error if that number has
       already been used for a change or another branch.  If you do not
       specify a change number, the lowest available positive number (1 or
       more) will be used.

       The new branch will be a special sort of change.  It will be in the
       '_b_e_i_n_g _d_e_v_e_l_o_p_e_d' state, but the usual commands in that stat (build,
       diff, etc) will not work.  Instead, you must create changes on the
       branch, and when those changes are integrated into the branch, this is
       the equivalent of build, diff, etc, on the branch.  Once the branch is
       completed, the _a_e_d_e(1) command may be used to advance it to the _b_e_i_n_g
       _r_e_v_i_e_w_e_d state, and from then on it becomes a normal change.  Should it
       be returned to the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state for any reason, it will once
       again require sub-changes to alter anything.

OOPPTTIIOONNSS
       The following options are understood:

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --OOuuttppuutt _f_i_l_e_n_a_m_e
               This option may be used to specify a filename which is to be
               written with the automatically determined branch number.
               Useful for writing scripts.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aenbr 'aegis -nbr \!* -v'
       sh$     aenbr(){aegis -nbr "$@" -v}

SSEEEE AALLSSOO
       _a_e_n_b_r_u(1)
               remove a branch

       _a_e_n_c(1) create a new change

       _a_e_d_e(1) develop end

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -New_BRanch_Undo(1)                            aegis -New_BRanch_Undo(1)



NNAAMMEE
       aegis -New_BRanch_Undo - remove a branch

SSYYNNOOPPSSIISS
       aaeeggiiss --NNeeww__BBRRaanncchh__UUnnddoo _n_u_m_b_e_r [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__BBRRaanncchh__UUnnddoo --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_N_e_w___B_R_a_n_c_h___U_n_d_o command is used to remove a branch created
       with the _a_e_n_b_r(1) command.

       NNoottee:: This command will completely remove all trace of the branch from
       Aegis' database.  This includes all changes performed on the branch and
       all of its sub-branches.  (This history remains in the history files,
       but is inaccessible.)

       If you wish to finish development of a branch, and commit all of its
       changes to the parent branch, use the _a_e_d_e(1) command, instead.

       If you wish to stop anyone from developing more changes on the branch,
       use the _a_e_r_d(1) command to remove all the developers.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --KKeeeepp
               This option may be used to retain files and/or directories
               usually deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --NNoo__KKeeeepp
               This option may be used to ensure that the files and/or
               directories are deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_n_b_r(1)
               create a new branch

       _a_e_n_c_u(1)
               new change undo

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -New_Change(1)                                      aegis -New_Change(1)



NNAAMMEE
       aegis -New_Change - add a new change to a project

SSYYNNOOPPSSIISS
       aaeeggiiss --NNeeww__CChhaannggee [ _n_u_m_b_e_r ] --FFiillee _a_t_t_r_-_f_i_l_e [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__CChhaannggee [ _n_u_m_b_e_r ] --EEddiitt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__CChhaannggee --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__CChhaannggee --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_N_e_w___C_h_a_n_g_e command is used to add a new change to a project.
       See _a_e_c_a_t_t_r(5) for information on the format of the _a_t_t_r_-_f_i_l_e.

       The change is created in the _a_w_a_i_t_i_n_g _d_e_v_e_l_o_p_m_e_n_t state.  The change is
       not assigned to any user.  The change has no development directory.
                                       |
                             new       |new
                            change     |change
                             undo      |
                                   awaiting
                                  development
                                       |
                            develop    |develop
                            begin      |begin
                            undo       |
                                     being
                                   developed



       You may choose your own change number if you want, provided that it has
       not been used already.  If you do not specify a change number, aegis
       will allocate the lowest unused change number.  The first few change
       numbers are reserved for branches later in the project, and so
       automatically allocated change numbers will usually not start from 1.
       See _a_e_p_a(1) and _a_e_p_a_t_t_r(5) for more information.

       You mmuusstt give the --PPrroojjeecctt option, see below.

   NNoottiiffiiccaattiioonn
       This is one of the rare "state transitions" which does not have a
       notification command.  The assumption is this command is invoked by the
       system which usually receives notifications.

OOPPTTIIOONNSS
       The following options are understood:

       --EEddiitt
               Edit the attributes with a text editor, this is usually more
               convenient than supplying a text file.  The _V_I_S_U_A_L and then
               _E_D_I_T_O_R environment variables are consulted for the name of the
               editor to use; defaults to _v_i(1) if neither is set.  See the
               _v_i_s_u_a_l___c_o_m_m_a_n_d and _e_d_i_t_o_r___c_o_m_m_a_n_d fields in _a_e_u_c_o_n_f(1) for how
               to override this specifically for Aegis.

               Warning: Aegis tries to be well behaved when faced with errors,
               so the temporary file is left in your home directory where you
               can edit it further and re-use it with a --ffiillee option.

               The --eeddiitt option may not be used in the background, or when the
               standard input is not a terminal.

       --EEddiitt__BBaacckkGGrroouunndd
               Edit the attributes with a dumb text editor, this is most often
               desired when edit commands are being piped into the editor via
               the standard input.  Only the EEDDIITTOORR environment variable is
               consulted for the name of the editor to use; it is a fatal
               error if it is not set.  See the _e_d_i_t_o_r___c_o_m_m_a_n_d field in
               _a_e_u_c_o_n_f(1) for how to override this specifically for Aegis.

       --FFiillee _f_i_l_e_n_a_m_e
               Take the attributes from the specified file.  The filename `-'
               is understood to mean the standard input.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --OOuuttppuutt _f_i_l_e_n_a_m_e
               This option may be used to specify a filename which is to be
               written with the automatically determined change number.
               Useful for writing scripts.

       --PPrroojjeecctt _n_a_m_e
               This option is used to select the project for the new change.

               You mmuusstt supply the --PPrroojjeecctt option to this command.
               Experience has shown that when a site has a number of active
               projects or several active branches on a project, new changes
               are frequently created against the wrong project or the wrong
               branch.  Making the project explicit reduces this problem.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aenc 'aegis -nc \!* -v'
       sh$     aenc(){aegis -nc "$@" -v}

EERRRROORRSS
       It is an error if the current user is not an administrator of the
       project.  (In some cases it is possible for developers of a project to
       create changes, see _a_e_p_a_t_t_r(5) for more information.)

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _t_k_a_e_n_c(1)
               GUI interface to the _a_e_n_c(1) command.

       _a_e_c_a(1) modify the attributes of a change

       _a_e_d_b(1) begin development of a change

       _a_e_n_a(1) add a new administrator to a project

       _a_e_n_c_u(1)
               remove a new change from a project

       _a_e_n_p_r(1)
               create a new project

       _a_e_p_a(1) modify the attributes of a project

       _a_e_c_a_t_t_r(5)
               change attributes file format

       _a_e_p_a_t_t_r(5)
               project attributes file format

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -New_Change_Undo(1)                            aegis -New_Change_Undo(1)



NNAAMMEE
       aegis -New_Change_Undo - remove a new change from a project

SSYYNNOOPPSSIISS
       aaeeggiiss --NNeeww__CChhaannggee__UUnnddoo [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__CChhaannggee__UUnnddoo --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__CChhaannggee__UUnnddoo --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_N_e_w___C_h_a_n_g_e___U_n_d_o command is used to remove a new change from
       a project.

       It wasn't called _'_a_e_g_i_s _-_R_e_m_o_v_e___C_h_a_n_g_e_' in order to emphasize that fact
       the the change must be in the _a_w_a_i_t_i_n_g _d_e_v_e_l_o_p_m_e_n_t state.  In practice
       it is possible, with a combination of commands, to remove any change
       which has not reached the _c_o_m_p_l_e_t_e_d
                                       |
                             new       |new
                            change     |change
                             undo      |
                                   awaiting
                                  development
                                       |
                            develop    |develop
                            begin      |begin
                            undo       |
                                     being
                                   developed


       state.

       In general, only project administrators may destroy changes.  However,
       if the project _d_e_v_e_l_o_p_e_r_s___m_a_y___c_r_e_a_t_e___c_h_a_n_g_e_s attribute is true, and you
       are a developer and you created a particular change, you may also
       destroy it.

   NNoottiiffiiccaattiioonn
       This is one of the rare "state transitions" which does not have a
       notification command.  The assumption is this command is invoked by the
       system which usually receives notifications.  It's probably a bad
       assumption.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aencu 'aegis -ncu \!* -v'
       sh$     aencu(){aegis -ncu "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _a_w_a_i_t_i_n_g _d_e_v_e_l_o_p_m_e_n_t state.
       It is an error if any use other than a project administrator or the
       creator of the change attempts to run this command.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_n_c(1) add a new change to a project

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -New_Developer(1)                                aegis -New_Developer(1)



NNAAMMEE
       aegis -New_Developer - add new developers to a project

SSYYNNOOPPSSIISS
       aaeeggiiss --NNeeww__DDeevveellooppeerr _u_s_e_r_-_n_a_m_e...  [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__DDeevveellooppeerr --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__DDeevveellooppeerr --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_N_e_w___D_e_v_e_l_o_p_e_r command is used to add new developers to a
       project.

OOPPTTIIOONNSS
       The following options are understood:

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --DDeesscceenndd__PPrroojjeecctt__TTrreeee
               This option may be used to request that the command should be
               applied to the project and all its branches and sub-branches.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aend 'aegis -nd \!* -v'
       sh$     aend(){aegis -nd "$@" -v}

EERRRROORRSS
       It is an error if the current user is not an administrator of the
       project.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_r_d(1) remove developers from a project

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -New_File(1)                                          aegis -New_File(1)



NNAAMMEE
       aegis -New_File - add new files to be created by a change

SSYYNNOOPPSSIISS
       aaeeggiiss --NNeeww__FFiillee _f_i_l_e_-_n_a_m_e...  [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__FFiillee --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__FFiillee --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_N_e_w___F_i_l_e command is used to add new files to a change.  The
       named files will be added to the list of files in the change.

       For each file named, a new file is created in the development
       directory, if it does not exist already.  If the file already exists,
       it will not be altered.

       If you name a directory on the command line, the entire directory tree
       will be searched for new files.  (Note: absolutely everything will be
       added, including dot files and binary files, so you will need to clean
       out any junk first.)

       If you want a new source file to be executable (shell scripts, for
       example) then you simply use the normal _c_h_m_o_d(1) command.  If any of
       the file's executable bits are set at _a_e_d_e(1) time the file is
       remembered as executable and all execute bits (minus the project's
       umask) will be set by subsequent _a_e_c_p(1) commands.

   FFiillee TTeemmppllaatteess
       When a new file is created in the development directory the project
       _c_o_n_f_i_g file is searched for a template for the new file.  If a template
       is found, the new file will be initialized to the template, otherwise
       it will be created empty.  See _a_e_p_c_o_n_f(5) for more information.

       The simplest form is to use template files, such as
              file_template =
              [
                      {
                              pattern = [ "*.c" ];
                              body = "${read_file ${source template/c abs}}";
                      },
                      {
                              pattern = [ "test/*/.sh" ];
                              body = "${read_file ${source template/test abs}}";
                      },
              ];
       As you can see, the template files are part of the project source, so
       you can add the appropriate copyright notices, and wrappers, _e_t_c.  The
       _$_s_o_u_r_c_e substitution locates them, if they are not part of the current
       change (and they usually are not).

       The template files themselves contain substitutions.  The _$_f_i_l_e_n_a_m_e
       substitution is available, and contains the name of the file being
       created.  This can be manipulated in various ways when constructing the
       appropriate file contents.  See _a_e_s_u_b(5) for more information about
       substitutions.

       It is also possible to run a command to create the new file.  You can
       do this instead of specifying a body string, _v_i_z_:
              file_template =
              [
                      {
                              pattern = [ "*" ];
                              body_command = "perl ${source template.pl abs} $filename";
                      },
              ];
       The command is run with a current directory set to the top of the
       development directory.  It is an error if the command fails to create
       the file.  You can mix-and-match the two techniques, _b_o_d_y string and
       _b_o_d_y___c_o_m_m_a_n_d, if you want.

   FFiillee NNaammee LLiimmiittaattiioonnss
       There are a number of controls available to limit the form of project
       file names.  All of these controls may be found in the project _c_o_n_f_i_g
       file, see _a_e_p_c_o_n_f(5) for more information.  The most significant are
       briefly described here:

       maximum_filename_length = integer;
               This field is used to limit the length of filenames.  All new
               files may not have path components longer than this.  Defaults
               to 255 if not set.  For maximum portability you should set this
               to 14.

       posix_filename_charset = boolean;
               This field may be used to limit the characters allowed in
               filenames to only those explicitly allowed by POSIX.  Defaults
               to _f_a_l_s_e if not set, meaning whatever your operating system
               will tolerate, except white space and high-bit-on characters.
               For maximum portability you should set this to _t_r_u_e.

       dos_filename_required = boolean;
               This field may be used to limit filenames so that they conform
               to the DOS 8+3 filename limits and to the DOS filename
               character set.  Defaults to _f_a_l_s_e if not set.

       windows_filename_required = boolean;
               This field may be used to limit filenames so that they conform
               to the Windows98 and WindowsNT filename limits and character
               set.  Defaults to _f_a_l_s_e if not set.

       shell_safe_filenames = boolean;
               This field may be used to limit filenames so that they do not
               contain shell special characters.  Defaults to _t_r_u_e if not set.
               If this field is set to _f_a_l_s_e, you will need to use the
               _$_{_q_u_o_t_e_} substitution around filenames in commands, to ensure
               that filenames containing shell special characters do not have
               unintended side effects.  Weird characters in filenames may
               also confuse your dependency maintenance tool.

       filename_pattern_accept = [ string ];
               This field is used to specify a list of patterns of acceptable
               filenames.  Defaults to "*" if not set.

       filename_pattern_reject = [ string ];
               This field is used to specify a list of patterns of
               unacceptable filenames.

       PPlleeaassee NNoottee:: Aegis also consults the underlying file system, to
       determine its notion of maximum file size.  Where the file system's
       maximum file size is less than _m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h, the filesystem
       wins.  This can happen, for example, when you are using the Linux
       UMSDOS file system, or when you have an NFS mounted an ancient V7
       filesystem.  Setting _m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h to 255 in these cases does
       not alter the fact that the underlying file systems limits are far
       smaller (12 and 14, respectively).

       If your development directories (or your whole project) is on
       filesystems with filename limitations, or a portion of the
       heterogeneous builds take place in such an environment, it helps to
       tell Aegis what they are (using the project _c_o_n_f_i_g file's fields) so
       that you don't run into the situation where the project builds on the
       more permissive environments, but fails with mysterious errors in the
       more limited environments.

       If your development directories are routinely on a Linux UMSDOS
       filesystem, you would probably be better off setting
       _d_o_s___f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d _= _t_r_u_e, and also changing the
       _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___t_e_m_p_l_a_t_e field.  Heterogeneous development with
       various Windows environments may also require this.

   FFiillee NNaammee IInntteerrpprreettaattiioonn
       The aegis program will attempt to determine the project file names from
       the file names given on the command line.  All file names are stored
       within aegis projects as relative to the root of the baseline directory
       tree.  The development directory and the integration directory are
       shadows of this baseline directory, and so these relative names apply
       here, too.  Files named on the command line are first converted to
       absolute paths if necessary.  They are then compared with the baseline
       path, the development directory path, and the integration directory
       path, to determine a baseline-relative name.  It is an error if the
       file named is outside one of these directory trees.

       The --BBAAssee__RREEllaattiivvee option may be used to cause relative filenames to be
       interpreted as relative to the baseline path; absolute filenames will
       still be compared with the various paths in order to determine a
       baseline-relative name.

       The _r_e_l_a_t_i_v_e___f_i_l_e_n_a_m_e___p_r_e_f_e_r_e_n_c_e in the user configuration file may be
       used to modify this default behavior.  See _a_e_u_c_o_n_f(5) for more
       information.

   CChhaannggiinngg tthhee TTyyppee ooff aa FFiillee
       If you want to change the type of a file (say, from a test to a source
       file, or _v_i_c_e _v_e_r_s_a) you could do it as two changes, by first using
       _a_e_r_m(1) in one change and then using _a_e_n_f(1) or _a_e_n_t(1) in a second
       change, or you can combine both steps in the same change.  Remember to
       use the _a_e_r_m _-_n_o_w_h_i_t_e_o_u_t option or you will get a most peculiar new
       file template.

   NNoottiiffiiccaattiioonn
       The _n_e_w___f_i_l_e___c_o_m_m_a_n_d in the project _c_o_n_f_i_g file is run, if set.  The
       _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d is also run, if set, and if there has been an
       integration recently.  See _a_e_p_c_o_n_f(5) for more information.

TTEESSTT CCOORRRREELLAATTIIOONNSS
       The ``aegis -Test -SUGgest'' command may be used to have aegis suggest
       suitable regression tests for your change, based on the source files in
       your change.  This automatically focuses testing effort to relevant
       tests, reducing the number of regression tests necessary to be
       confident that you have not introduced a bug.

       The test correlations are generated by the ``aegis -Integrate_Pass''
       command, which associates each test in the change with each source file
       in the change.  Thus, each source file accumulates a list of tests
       which have been associated with it in the past.  This is not as exact
       as code coverage analysis, but is a reasonable approximation in
       practice.

       The _a_e_c_p(1) and _a_e_n_f(1) commands are used to associate files with a
       change.  While they do not actively perform the association, these are
       the files used by _a_e_i_p_a_s_s(1) and _a_e_t(1) to determine which source files
       are associated with which tests.

   TTeesstt CCoorrrreellaattiioonn AAccccuurraaccyy
       Assuming that the testing correlations are accurate and that the tests
       are evenly distributed across the function space, there will be a less
       than _1_/_n_u_m_b_e_r chance that a relevant test has not been run by the
       ``aegis -Test -SUGgest _n_u_m_b_e_r'' command.  A small amount of noise is
       added to the test weighting, so that unexpected things are sometimes
       tested, and the same tests are not run every time.

       Test correlation accuracy can be improved by ensuring that:

       +o Each change should be strongly focused, with no gratuitous file
         inclusions.  This avoids spurious correlations.

       +o Each item of new functionality should be added in an individual
         change, rather than several together.  This strongly correlates tests
         with functionality.

       +o Each bug should be fixed in an individual change, rather than several
         together.  This strongly correlates tests with functionality.

       +o Test correlations will be lost if files are moved.  This is because
         correlations are by name.

       The best way for tests to correlate accurately with source files is
       when a change contains a test and exactly those files relating to the
       functionality under test.  Too many spurious files will weaken the
       usefulness of the testing correlations.

OOPPTTIIOONNSS
       The following options are understood

       --BBuuiilldd
               This option may be used to specify that the file is constructed
               during a build (often only an integrate build), so that history
               of it may be kept.  This is useful for generating patch files,
               where a history of generated files is important.  Files created
               in this way may not be copied into a change, though they may be
               deleted.  Avoid using files of this type, if at all possible.

       --BBAAssee__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the base of the source tree.  See
               _a_e_u_c_o_n_f(5) for the corresponding user preference.

       --CCUUrrrreenntt__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the current directory.  This is usually
               the default.  See _a_e_u_c_o_n_f(5) for the corresponding user
               preference.

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --NNoott__LLooggggiinngg
               This option may be used to disable the automatic logging of
               output and errors to a file.  This is often useful when several
               aegis commands are combined in a shell script.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEEMMppllaattee
               This option may be used to specify that a new file template
               should be used, even if the file already exists.

       --NNoo__TTEEMMppllaattee
               This option may be used to specify that a new file template
               should not be used, even if the file does not exist (any empty
               file will be created).

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aenf 'aegis -nf \!* -v'
       sh$     aenf(){aegis -nf "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
       It is an error if the change is not assigned to the current user.
       It is an error if the file is already part of the change.
       It is an error if the file is already part of the baseline.
       It is an error if the files named on the command line are not normal
       files and not directories.  (If you need symbolic links or special
       files, create them at build time.)

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_c_p(1) copy files into a change

       _a_e_d_b(1) begin development of a change

       _a_e_m_v(1) rename a file as part of a change

       _a_e_n_f_u(1)
               remove new files from a change

       _a_e_n_t(1) add new tests to a change

       _a_e_r_m(1) add files to be deleted by a change

       _a_e_p_c_o_n_f(5)
               project configuration file format

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -New_File_Undo(1)                                aegis -New_File_Undo(1)



NNAAMMEE
       aegis -New_File_Undo - remove new files from a change

SSYYNNOOPPSSIISS
       aaeeggiiss --NNeeww__FFiillee__UUnnddoo _f_i_l_e_-_n_a_m_e...  [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__FFiillee__UUnnddoo --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__FFiillee__UUnnddoo --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_N_e_w___F_i_l_e___U_n_d_o command is used to remove new files from a
       change (reverse the actions of the 'aegis -New_File' command).  The
       file is removed from the list of files in the change.

       The file is removed from the development directory unless the --KKeeeepp
       option is used.  The --KKeeeepp option should be used with great care, as
       you can confuse tools such as _m_a_k_e(1) by leaving these files in place.

       You may specify a directory name to remove all new files in the named
       directory tree, other files in the tree will be ignored.  It is an
       error if there are no relevant files.

   FFiillee NNaammee IInntteerrpprreettaattiioonn
       The aegis program will attempt to determine the project file names from
       the file names given on the command line.  All file names are stored
       within aegis projects as relative to the root of the baseline directory
       tree.  The development directory and the integration directory are
       shadows of this baseline directory, and so these relative names apply
       here, too.  Files named on the command line are first converted to
       absolute paths if necessary.  They are then compared with the baseline
       path, the development directory path, and the integration directory
       path, to determine a baseline-relative name.  It is an error if the
       file named is outside one of these directory trees.

       The --BBAAssee__RREEllaattiivvee option may be used to cause relative filenames to be
       interpreted as relative to the baseline path; absolute filenames will
       still be compared with the various paths in order to determine a
       baseline-relative name.

       The _r_e_l_a_t_i_v_e___f_i_l_e_n_a_m_e___p_r_e_f_e_r_e_n_c_e in the user configuration file may be
       used to modify this default behavior.  See _a_e_u_c_o_n_f(5) for more
       information.

   NNoottiiffiiccaattiioonn
       The _n_e_w___f_i_l_e___u_n_d_o___c_o_m_m_a_n_d in the project _c_o_n_f_i_g file is run, if set.
       The _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d is also run, if set, and if there has been an
       integration recently.  See _a_e_p_c_o_n_f(5) for more information.

   PPrroocceessss SSiiddee EEffffeeccttss
       This command will cancel any build or test registrations, because
       deleting a file logically invalidates them.

       The difference file (,D) will also be removed, however any DMT derived
       files (e.g a .o file from a .c file) will not be removed.  This is
       because aegis is decoupled from the DMT, and cannot know what these
       derived file may be called.  You may need to delete derived files
       manually.

OOPPTTIIOONNSS
       The following options are understood:

       --BBAAssee__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the base of the source tree.  See
               _a_e_u_c_o_n_f(5) for the corresponding user preference.

       --CCUUrrrreenntt__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the current directory.  This is usually
               the default.  See _a_e_u_c_o_n_f(5) for the corresponding user
               preference.

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --IInntteerraaccttiivvee
               Specify that aegis should ask the user for confirmation before
               deleting each file.  Answer the question _y_e_s to delete the
               file, or _n_o to keep the file.  You can also answer _a_l_l to
               delete the file and all that follow, or _n_o_n_e to keep the file
               and all that follow.

               Defaults to the user's _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

               If aegis is running in the background, the question will not be
               asked, and the files will be deleted.

       --KKeeeepp
               This option may be used to retain files and/or directories
               usually deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --NNoo__KKeeeepp
               This option may be used to ensure that the files and/or
               directories are deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aenfu 'aegis -nfu \!$ -v'
       sh$     aenfu(){aegis -nfu "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
       It is an error if the change is not assigned to the current user.
       It is an error if the file is not in the change.
       It is an error if the file was not added to the change with the 'aegis
       -New_File' command.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_n_f(1) add new files to a change

       _a_e_p_c_o_n_f(5)
               project configuration file format

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -New_Integrator(1)                              aegis -New_Integrator(1)



NNAAMMEE
       aegis -New_Integrator - add new integrators to a project

SSYYNNOOPPSSIISS
       aaeeggiiss --NNeeww__IInntteeggrraattoorr _u_s_e_r_-_n_a_m_e...  [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__IInntteeggrraattoorr --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__IInntteeggrraattoorr --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_N_e_w___I_n_t_e_g_r_a_t_o_r command is used to add new integrators to a
       project.

OOPPTTIIOONNSS
       The following options are understood:

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --DDeesscceenndd__PPrroojjeecctt__TTrreeee
               This option may be used to request that the command should be
               applied to the project and all its branches and sub-branches.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aeni 'aegis -ni \!* -v'
       sh$     aeni(){aegis -ni "$@" -v}

EERRRROORRSS
       It is an error if the current user is not an administrator of the
       project.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_r_i(1) remove integrators from a project

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -New_Project_Alias(1)                        aegis -New_Project_Alias(1)



NNAAMMEE
       aegis -New_Project_Alias - create a new project alias

SSYYNNOOPPSSIISS
       aaeeggiiss --NNeeww__PPrroojjeecctt__AAlliiaass [ _o_p_t_i_o_n...  ] _p_r_o_j_e_c_t_-_n_a_m_e _a_l_i_a_s_-_n_a_m_e
       aaeeggiiss --HHeellpp
       aaeeggiiss --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_N_e_w___P_r_o_j_e_c_t___A_l_i_a_s command is used to create a projects
       alias, so that branches of projects may be referred by a shorter or
       more specific name.

       The project name _m_u_s_t be given on the command line; the default project
       is not sufficient.  The project named may be a top-level project, or it
       may be a branch (to any depth of branch).

       The new alias name must also be given on the command line, and it must
       be the _s_e_c_o_n_d name.

   EExxaammppllee
       Aliases may be used in may ways.  The most common is to give a
       particular release a code name.  You would do this by saying
              aenpa example.4.2 sydney
       This would make ``sydney'' an alias for the ``example.4.2'' branch.

       Another use for aliases is to have a fixed alias for your active
       branch, so that your developer team does not need to change their
       default project, even though the branch number moves on for each
       release.  You could say
              aenpa example.4.2 example.cur
       This would make ``example.cur'' an alias for the ``example.4.2''
       branch.  When this was finished, and 4.3 started, a project
       administrator could say
              aerpa example.cur
              aenpa example.4.3 example.cur
       Now ``example.cur'' is an alias for the ``example.4.3'' branch, but the
       developers need only reference ``example.cur'' to always work on the
       right branch.

OOPPTTIIOONNSS
       The following options are understood:

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

EERRRROORRSS
       It is an error if the old project does not exist.
       It is an error if the current user is not a project administrator.
       It is an error if the new alias name look like a branch name.
       It is an error if the new alias contains unprintable characters.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_r_p_a(1)
               Remove project alias.

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -New_PRoject(1)                                    aegis -New_PRoject(1)



NNAAMMEE
       aegis -New_PRoject - create a new project

SSYYNNOOPPSSIISS
       aaeeggiiss --NNeeww__PPRRoojjeecctt _p_r_o_j_e_c_t_-_n_a_m_e [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__PPRRoojjeecctt --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__PPRRoojjeecctt --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_N_e_w___P_R_o_j_e_c_t command is used to create a new project.  The
       project is created as an empty directory structure with no staff except
       the administrator, no changes, and branches to implement the version
       specified.

       Please note: unless you specify a version (see the --vveerrssiioonn option,
       below) this command will default to creating branches to support
       version 1.0.  If you discovered this too late, all is not lost: you can
       use the _a_e_n_b_r_u(1) command to get rid of the branches you didn't want.

   DDiirreeccttoorryy
       The project directory, under which the project baseline and history and
       state and change data are kept, will be created at this time.  If the
       --DDIIRReeccttoorryy option is not given, the project directory will be created
       in the directory specified by the default_project_directory field of
       _a_e_u_c_o_n_f(5), or if not set in current user's home directory; in either
       case with the same name as the project.

   SSttaaffff
       The project is created with the current user and group as the owning
       user and group.  The current user is an administrator for the project.
       The project has no developers, reviewers, integrators or other
       administrators.  The project's umask is derived from the current user's
       umask, but guaranteeing that group members will have access and that
       only the project owner will have write access.

   PPooiinntteerr
       The project pointer will be added to the first element of the search
       path, or _/_v_a_r_/_l_i_b_/_a_e_g_i_s if no path is set.  If this is inappropriate,
       use the --LLIIBBrraarryy option to explicitly set the desired location.  See
       the --LLIIBBrraarryy option for more information.

   VVeerrssiioonn
       You may specify the project version in two ways:

       1. The version number may be implicit in the project name, in which
          case the version numbers will be stripped off.  For example, ``aenpr
          example.1.2'' will create a project called ``example'' with branch
          number 1 created, and sub-branch 2 of branch 1 created.

       2. The version number may be stated explicitly, in which case it will
          be subdivided for branch numbers.  For example, ``aenpr example
          -version 1.2'' will create a project called ``example'' with branch
          number 1 created, and sub-branch 2 of branch 1 created.

       In each case, these branches may be named wherever a project name may
       be given, such as ``-p example.1'' and ``-p example-1.2''.  The actual
       punctuation character is unimportant.

       You may have any depth of version numbers you like.  Both methods of
       specifying version numbers may be used, and they will be combined.  If
       you want no version numbers at all, use --vveerrssiioonn with a single dash as
       the argument, as in ``-version -''

       If no version number is given, either explicitly or implicitly, version
       1.0 is used.

   PPrroojjeecctt DDiirreeccttoorryy LLooccaattiioonn
       PPlleeaassee NNoottee:: Aegis also consults the underlying file system, to
       determine its notion of maximum file size.  Where the file system's
       maximum file size is less than _m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h, the filesystem
       wins.  This can happen, for example, when you are using the Linux
       UMSDOS file system, or when you have an NFS mounted an ancient V7
       filesystem.  Setting _m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h to 255 in these cases does
       not alter the fact that the underlying file systems limits are far
       smaller (12 and 14, respectively).

       If your development directories (or your whole project) is on
       filesystems with filename limitations, or a portion of the
       heterogeneous builds take place in such an environment, it helps to
       tell Aegis what they are (using the project _c_o_n_f_i_g file's fields) so
       that you don't run into the situation where the project builds on the
       more permissive environments, but fails with mysterious errors in the
       more limited environments.

       If your development directories are routinely on a Linux UMSDOS
       filesystem, you would probably be better off setting
       _d_o_s___f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d _= _t_r_u_e, and also changing the
       _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___t_e_m_p_l_a_t_e field.  Heterogeneous development with
       various Windows environments may also require this.

OOPPTTIIOONNSS
       The following options are understood:

       --DDIIRReeccttoorryy _p_a_t_h
               This option may be used to specify which directory is to be
               used.  It is an error if the current user does not have
               appropriate permissions to create the directory path given.
               This must be an absolute path.

               Caution: If you are using an automounter do not use `pwd` to
               make an absolute path, it usually gives the wrong answer.

       --EEddiitt
               Edit the attributes with a text editor, this is usually more
               convenient than supplying a text file.  The _V_I_S_U_A_L and then
               _E_D_I_T_O_R environment variables are consulted for the name of the
               editor to use; defaults to _v_i(1) if neither is set.  See the
               _v_i_s_u_a_l___c_o_m_m_a_n_d and _e_d_i_t_o_r___c_o_m_m_a_n_d fields in _a_e_u_c_o_n_f(1) for how
               to override this specifically for Aegis.

               Warning: Aegis tries to be well behaved when faced with errors,
               so the temporary file is left in your home directory where you
               can edit it further and re-use it with a --ffiillee option.

               The --eeddiitt option may not be used in the background, or when the
               standard input is not a terminal.

       --EEddiitt__BBaacckkGGrroouunndd
               Edit the attributes with a dumb text editor, this is most often
               desired when edit commands are being piped into the editor via
               the standard input.  Only the EEDDIITTOORR environment variable is
               consulted for the name of the editor to use; it is a fatal
               error if it is not set.  See the _e_d_i_t_o_r___c_o_m_m_a_n_d field in
               _a_e_u_c_o_n_f(1) for how to override this specifically for Aegis.

       --FFiillee _f_i_l_e_n_a_m_e
               Take the attributes from the specified file.  The filename `-'
               is understood to mean the standard input.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --KKeeeepp   This option may be used to re-attach a project detached using
               _a_e_r_m_p_r _-_k_e_e_p and possibly moved by the system administrator.

       --LLIIBBrraarryy _a_b_s_p_a_t_h
               This option may be used to specify a directory to be searched
               for global state files and user state files.  (See _a_e_g_s_t_a_t_e(5)
               and _a_e_u_s_t_a_t_e(5) for more information.)  Several library options
               may be present on the command line, and are search in the order
               given.  Appended to this explicit search path are the
               directories specified by the _A_E_G_I_S___P_A_T_H environment variable
               (colon separated), and finally, _/_u_s_r_/_l_o_c_a_l_/_l_i_b_/_a_e_g_i_s is always
               searched.  All paths specified, either on the command line or
               in the _A_E_G_I_S___P_A_T_H environment variable, must be absolute.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --VVEERRSSiioonn _n_u_m_b_e_r
               This option may be used to specify the version number for the
               project.  Version numbers are implemented as branches.  Use a
               single dash (``-'') as the argument if you want no version
               branches created.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aenpr 'aegis -npr \!* -v'
       sh$     aenpr(){aegis -npr "$@" -v}

EERRRROORRSS
       It is an error if the project name already exists.
       It is an error if the project directory already exists.
       It is an error if the current user does not have sufficient permissions
       to create the directory specified with the --DDIIRReeccttoorryy option.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_n_a(1) add a new administrator to a project

       _a_e_n_b_r_u(1)
               Remove a new branch.  This can often be useful if _a_e_n_p_r(1)
               created some default branches for you, and now you want to get
               rid of them.

       _a_e_n_c(1) add a new change to a project

       _a_e_n_d(1) add a new developer to a project

       _a_e_n_r_l_s(1)
               create a new project from an existing project

       _a_e_n_r_v(1)
               add a new reviewer to a project

       _a_e_r_m_p_r(1)
               remove project

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -New_ReLeaSe(1)                                    aegis -New_ReLeaSe(1)



NNAAMMEE
       aegis -New_ReLeaSe - create a new project from an old-style project.

SSYYNNOOPPSSIISS
       aaeeggiiss --NNeeww__RReeLLeeaaSSee project-name [ _n_e_w_-_p_r_o_j_e_c_t_-_n_a_m_e ][ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__RReeLLeeaaSSee --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__RReeLLeeaaSSee --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_N_e_w___R_e_L_e_a_S_e command is used to create a new project from an
       existing project.  _I_t _c_r_e_a_t_e_s _a _n_e_w _p_o_s_t_-_3_._0 _p_r_o_j_e_c_t _f_r_o_m _a_n _o_l_d
       _p_r_e_-_3_._0 _p_r_o_j_e_c_t_.

       PPlleeaassee NNoottee:: If your old-style project does not have a version number
       in the project name, you _m_u_s_t supply a new project name, otherwise you
       will get an error.  (If you want to re-use the old project name, you
       need to rename the old project, and then use _a_e_n_r_l_s to create a new
       new-style project with the old name.  See the HOWTO for how to change a
       project's name.)

       This command was essential before the introduction of branches into the
       Aegis model.  It is more useful to create a new release of a project by
       ending development on the branch of the previous release and starting
       development of a new branch numbered for the desired release.

       Once you have a new-style project, use the _a_e_n_b_r(1) command to create
       new branches on this project.  This provides more efficient release
       management, and allows historical versions to be reproduced more
       simply.

       If no _n_e_w_-_p_r_o_j_e_c_t_-_n_a_m_e is specified, it will be derived from the
       project given as follows: any minor version dot suffix will be removed
       from the name, then any major version dot suffix will be removed from
       the name.  A major version dot suffix will be appended, and then a
       minor version dot suffix will be appended.  As an example, "foo.1.0"
       would become "foo.1.1" assuming the default minor version increment,
       and "foo" would become "foo.1.1" assuming the same minor version
       increment.

       The entire project baseline will be copied.  The project state will be
       as if change 1 had already been integrated, naming every file (in the
       old project) as a new file.  The history files will reflect this.  No
       build will be necessary; it is assumed that the old baseline was built
       successfully.  Change numbers will commence at 2, as will build
       numbers.  Test numbers will commence where the old project left off
       (because all the earlier test numbers were used by the old project).

       The default is for the minor version number to be incremented.  If the
       major version number is incremented or set, the minor version number
       will be set to zero if it is not explicitly given.

       The pointer to the new project will be added to the first element of
       the search path, or _/_v_a_r_/_l_i_b_/_a_e_g_i_s if none is set.  If this is
       inappropriate, use the --LLIIBBrraarryy option to explicitly set the desired
       location.  See the --LLIIBBrraarryy option for more information.

       The project directory, under which the project baseline and history and
       state and change data are kept, will be created at this time.  If the
       --DDIIRReeccttoorryy option is not given, the project directory will be created
       in the directory specified by the default_project_directory field of
       the project user's _a_e_u_c_o_n_f(5), or if not set in project user's home
       directory; in either case with the same name as the project.

       All staff will be copied from the old project to the new project
       without change, as will all of the project attributes.

TTHHEE BBAASSEELLIINNEE LLOOCCKK
       The baseline lock is used to ensure that the baseline remains in a
       consistent state for the duration of commands which need to read the
       contents of files in the baseline.

       The commands which require the baseline to be consistent (these include
       the _a_e_b(1), _a_e_c_p(1) and _a_e_d(1) commands) take a baseline _r_e_a_d lock.
       This is a non-exclusive lock, so the concurrent development of changes
       is not hindered.

       The command which modifies the baseline, _a_e_i_p_a_s_s(1), takes a baseline
       _w_r_i_t_e lock.  This is an exclusive lock, forcing _a_e_i_p_a_s_s(1) to block
       until there are no active baseline read locks.

       It is possible that one of the above development commands will block
       until an in-progress _a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___P_A_S_S completes.  This is usually
       of short duration while the project history is updated.  The delay is
       essential so that these commands receive a consistent view of the
       baseline.  No other integration command will cause the above
       development commands to block.

       When aegis' branch functionality is in use, a read (non-exclusive) lock
       is taken on the branch baseline and also each of the "parent"
       baselines.  However, a baseline write (exclusive) lock is only taken on
       the branch baseline; the "parent" baselines are only read (non-
       exclusive) locked.

   PPrroojjeecctt DDiirreeccttoorryy LLooccaattiioonn
       PPlleeaassee NNoottee:: Aegis also consults the underlying file system, to
       determine its notion of maximum file size.  Where the file system's
       maximum file size is less than _m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h, the filesystem
       wins.  This can happen, for example, when you are using the Linux
       UMSDOS file system, or when you have an NFS mounted an ancient V7
       filesystem.  Setting _m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h to 255 in these cases does
       not alter the fact that the underlying file systems limits are far
       smaller (12 and 14, respectively).

       If your development directories (or your whole project) is on
       filesystems with filename limitations, or a portion of the
       heterogeneous builds take place in such an environment, it helps to
       tell Aegis what they are (using the project _c_o_n_f_i_g file's fields) so
       that you don't run into the situation where the project builds on the
       more permissive environments, but fails with mysterious errors in the
       more limited environments.

       If your development directories are routinely on a Linux UMSDOS
       filesystem, you would probably be better off setting
       _d_o_s___f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d _= _t_r_u_e, and also changing the
       _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___t_e_m_p_l_a_t_e field.  Heterogeneous development with
       various Windows environments may also require this.

OOPPTTIIOONNSS
       The following options are understood:

       --DDIIRReeccttoorryy _p_a_t_h
               This option may be used to specify which directory is to be
               used.  It is an error if the current user does not have
               appropriate permissions to create the directory path given.
               This must be an absolute path.

               Caution: If you are using an automounter do not use `pwd` to
               make an absolute path, it usually gives the wrong answer.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLIIBBrraarryy _a_b_s_p_a_t_h
               This option may be used to specify a directory to be searched
               for global state files and user state files.  (See _a_e_g_s_t_a_t_e(5)
               and _a_e_u_s_t_a_t_e(5) for more information.)  Several library options
               may be present on the command line, and are search in the order
               given.  Appended to this explicit search path are the
               directories specified by the _A_E_G_I_S___P_A_T_H environment variable
               (colon separated), and finally, _/_u_s_r_/_l_o_c_a_l_/_l_i_b_/_a_e_g_i_s is always
               searched.  All paths specified, either on the command line or
               in the _A_E_G_I_S___P_A_T_H environment variable, must be absolute.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --NNoott__LLooggggiinngg
               This option may be used to disable the automatic logging of
               output and errors to a file.  This is often useful when several
               aegis commands are combined in a shell script.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --VVEERRSSiioonn _n_u_m_b_e_r
               This option may be used to specify the version number for the
               project.  Version number are implemented as branches.  Use the
               empty string as the argument if you want no version branches
               created.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aenrls 'aegis -nrls \!* -v'
       sh$     aenrls(){aegis -nrls "$@" -v}

EERRRROORRSS
       It is an error if the old project named does not exist.

       It is an error if the old project named has not yet had any changes
       integrated.

       It is an error if the old project named has any changes not in the
       _c_o_m_p_l_e_t_e_d state.

       It is an error if the current user is not an administrator of the old
       project.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_n_p_r(1)
               create a new project

       _a_e_r_m_p_r(1)
               remove project

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/

       _A_e_g_i_s _U_s_e_r _G_u_i_d_e
               The chapter on _B_r_a_n_c_h_i_n_g has useful information about releases
aegis -New_ReViewer(1)                                  aegis -New_ReViewer(1)



               and branching.

NNAAMMEE
       aegis -New_ReViewer - add new reviewers to a project

SSYYNNOOPPSSIISS
       aaeeggiiss --NNeeww__RReeVViieewweerr _u_s_e_r_-_n_a_m_e...  [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__RReeVViieewweerr --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__RReeVViieewweerr --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_N_e_w___R_e_V_i_e_w_e_r command is used to add new reviewers to a
       project.

OOPPTTIIOONNSS
       The following options are understood:

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --DDeesscceenndd__PPrroojjeecctt__TTrreeee
               This option may be used to request that the command should be
               applied to the project and all its branches and sub-branches.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aenrv 'aegis -nrv \!* -v'
       sh$     aenrv(){aegis -nrv "$@" -v}

EERRRROORRSS
       It is an error if the current user is not an administrator of the
       project.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_r_r_v(1)
               remove reviewers from a project

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -New_Test(1)                                          aegis -New_Test(1)



NNAAMMEE
       aegis -New_Test - add a new test to a change

SSYYNNOOPPSSIISS
       aaeeggiiss --NNeeww__TTeesstt [ _o_p_t_i_o_n...  ][ _f_i_l_e_n_a_m_e...  ]
       aaeeggiiss --NNeeww__TTeesstt --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__TTeesstt --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_N_e_w___T_e_s_t command is used to add a new test to a change.  A
       new file is created in the development directory.

       New tests default to ``automatic'' unless otherwise specified.

   FFiillee NNaammee IInntteerrpprreettaattiioonn
       The aegis program will attempt to determine the project file names from
       the file names given on the command line.  All file names are stored
       within aegis projects as relative to the root of the baseline directory
       tree.  The development directory and the integration directory are
       shadows of this baseline directory, and so these relative names apply
       here, too.  Files named on the command line are first converted to
       absolute paths if necessary.  They are then compared with the baseline
       path, the development directory path, and the integration directory
       path, to determine a baseline-relative name.  It is an error if the
       file named is outside one of these directory trees.

       The --BBAAssee__RREEllaattiivvee option may be used to cause relative filenames to be
       interpreted as relative to the baseline path; absolute filenames will
       still be compared with the various paths in order to determine a
       baseline-relative name.

       The _r_e_l_a_t_i_v_e___f_i_l_e_n_a_m_e___p_r_e_f_e_r_e_n_c_e in the user configuration file may be
       used to modify this default behavior.  See _a_e_u_c_o_n_f(5) for more
       information.

   TTeesstt FFiilleennaammee GGeenneerraattiioonn
       You may choose your own filename for a test, by specifying it on the
       command line.

       If no filename is specified on the command line, a test filename is
       automatically generated.  This is controlled by the _n_e_w___t_e_s_t___f_i_l_e_n_a_m_e
       field of the project _c_o_n_f_i_g file (see _a_e_p_c_o_n_f(5) for more information.
       All automatically generated test filenames within a project are
       numbered uniquely.  The default pattern for new test filenames is
       "_t_e_s_t_/_X_X_/_t_X_X_X_X_[_a_m_]_._s_h", where _X_X is the first 2 digits of the test
       number, _X_X_X_X is the whole test number, and _[_a_m_] is a for automatic
       tests and m for manual tests.

   MMooddiiffyyiinngg TTeessttss
       Tests may be modified in future by adding them to a change with the
       _a_e_c_p(1) command.  Tests are treated just like any other source file,
       and are subject to the same process.

   FFiillee TTeemmppllaatteess
       When a new file is created in the development directory the project
       _c_o_n_f_i_g file is searched for a template for the new file.  If a template
       is found, the new file will be initialized to the template, otherwise
       it will be created empty.  See _a_e_p_c_o_n_f(5) for more information.

       The simplest form is to use template files, such as
              file_template =
              [
                      {
                              pattern = [ "*.c" ];
                              body = "${read_file ${source template/c abs}}";
                      },
                      {
                              pattern = [ "test/*/.sh" ];
                              body = "${read_file ${source template/test abs}}";
                      },
              ];
       As you can see, the template files are part of the project source, so
       you can add the appropriate copyright notices, and wrappers, _e_t_c.  The
       _$_s_o_u_r_c_e substitution locates them, if they are not part of the current
       change (and they usually are not).

       The template files themselves contain substitutions.  The _$_f_i_l_e_n_a_m_e
       substitution is available, and contains the name of the file being
       created.  This can be manipulated in various ways when constructing the
       appropriate file contents.  See _a_e_s_u_b(5) for more information about
       substitutions.

       It is also possible to run a command to create the new file.  You can
       do this instead of specifying a body string, _v_i_z_:
              file_template =
              [
                      {
                              pattern = [ "*" ];
                              body_command = "perl ${source template.pl abs} $filename";
                      },
              ];
       The command is run with a current directory set to the top of the
       development directory.  It is an error if the command fails to create
       the file.  You can mix-and-match the two techniques, _b_o_d_y string and
       _b_o_d_y___c_o_m_m_a_n_d, if you want.

       Be careful to make sure that the test filename template pattern matches
       the _n_e_w___t_e_s_t___f_i_l_e_n_a_m_e field.

   FFiillee NNaammee LLiimmiittaattiioonnss
       There are a number of controls available to limit the form of project
       file names.  All of these controls may be found in the project _c_o_n_f_i_g
       file, see _a_e_p_c_o_n_f(5) for more information.  The most significant are
       briefly described here:

       maximum_filename_length = integer;
               This field is used to limit the length of filenames.  All new
               files may not have path components longer than this.  Defaults
               to 255 if not set.  For maximum portability you should set this
               to 14.

       posix_filename_charset = boolean;
               This field may be used to limit the characters allowed in
               filenames to only those explicitly allowed by POSIX.  Defaults
               to _f_a_l_s_e if not set, meaning whatever your operating system
               will tolerate, except white space and high-bit-on characters.
               For maximum portability you should set this to _t_r_u_e.

       dos_filename_required = boolean;
               This field may be used to limit filenames so that they conform
               to the DOS 8+3 filename limits and to the DOS filename
               character set.  Defaults to _f_a_l_s_e if not set.

       windows_filename_required = boolean;
               This field may be used to limit filenames so that they conform
               to the Windows98 and WindowsNT filename limits and character
               set.  Defaults to _f_a_l_s_e if not set.

       shell_safe_filenames = boolean;
               This field may be used to limit filenames so that they do not
               contain shell special characters.  Defaults to _t_r_u_e if not set.
               If this field is set to _f_a_l_s_e, you will need to use the
               _$_{_q_u_o_t_e_} substitution around filenames in commands, to ensure
               that filenames containing shell special characters do not have
               unintended side effects.  Weird characters in filenames may
               also confuse your dependency maintenance tool.

       filename_pattern_accept = [ string ];
               This field is used to specify a list of patterns of acceptable
               filenames.  Defaults to "*" if not set.

       filename_pattern_reject = [ string ];
               This field is used to specify a list of patterns of
               unacceptable filenames.

       PPlleeaassee NNoottee:: Aegis also consults the underlying file system, to
       determine its notion of maximum file size.  Where the file system's
       maximum file size is less than _m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h, the filesystem
       wins.  This can happen, for example, when you are using the Linux
       UMSDOS file system, or when you have an NFS mounted an ancient V7
       filesystem.  Setting _m_a_x_i_m_u_m___f_i_l_e_n_a_m_e___l_e_n_g_t_h to 255 in these cases does
       not alter the fact that the underlying file systems limits are far
       smaller (12 and 14, respectively).

       If your development directories (or your whole project) is on
       filesystems with filename limitations, or a portion of the
       heterogeneous builds take place in such an environment, it helps to
       tell Aegis what they are (using the project _c_o_n_f_i_g file's fields) so
       that you don't run into the situation where the project builds on the
       more permissive environments, but fails with mysterious errors in the
       more limited environments.

       If your development directories are routinely on a Linux UMSDOS
       filesystem, you would probably be better off setting
       _d_o_s___f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d _= _t_r_u_e, and also changing the
       _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___t_e_m_p_l_a_t_e field.  Heterogeneous development with
       various Windows environments may also require this.

   CChhaannggiinngg tthhee TTyyppee ooff aa FFiillee
       If you want to change the type of a file (say, from a test to a source
       file, or _v_i_c_e _v_e_r_s_a) you could do it as two changes, by first using
       _a_e_r_m(1) in one change and then using _a_e_n_f(1) or _a_e_n_t(1) in a second
       change, or you can combine both steps in the same change.  Remember to
       use the _a_e_r_m _-_n_o_w_h_i_t_e_o_u_t option or you will get a most peculiar new
       file template.

   NNoottiiffiiccaattiioonn
       The _n_e_w___t_e_s_t___c_o_m_m_a_n_d in the project _c_o_n_f_i_g file is run, if set.  The
       _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d is also run, if set, and if there has been an
       integration recently.  See _a_e_p_c_o_n_f(5) for more information.

TTEESSTT PPRROOCCEESSSS
       Each change is required to be accompanied by tests, and those tests are
       required to be run against the built development directory, and they
       must pass.  This ensures that new functionality is accompanied by tests
       to verify its correctness, and bug fixes are accompanied by tests which
       confirm that the bug has been fixed.

   RReeggrreessssiioonn TTeessttss
       Tests are treated as any other source file, and are maintained in the
       baseline and history with all other source files.  The tests which must
       accompany every change accumulate in the project baseline, providing a
       definition of correct function for the baseline.  These accumulated
       tests may be executed using an ``aegis -REGression'' command, to verify
       that the project will not ``regress'' as a result of a change.

   BBaasseelliinnee TTeessttss
       Bug fixes are required to have their tests _f_a_i_l against the project
       baseline (in contrast to the development directory).  This ensures that
       the test actually demonstrates the bug in the baseline, as well as
       demonstrating that it is fixed by the change.  New functionality
       trivially fails against the baseline, and so aegis does not attempt to
       guess if a test is a bug fix test or new functionality test, it simply
       requires tests to fail against the baseline.

       This requirement applies both to new tests being created by a change
       and also to tests which have been copied into a change for
       modification.

   RReevviieewwiinngg TTeessttss
       Reviewers may be confident that aegis has enforced the test
       requirements; that a change must have tests, that the change must
       build, that the tests pass against the development directory, and that
       the tests fail against the baseline.  These conditions are enforced by
       _a_e_d_e(1) and the change will not be advanced to the _b_e_i_n_g _r_e_v_i_e_w_e_d state
       until these conditions are met.  Reviewers should thus review tests for
       _c_o_m_p_l_e_t_e_n_e_s_s of coverage of the code in the change, and insensitivity
       to changes in the execution environment (e.g. not date sensitive).
       Reviewers should also use ``aegis -list change_details'' to verify that
       a change does or does not have testing exemptions.

   EExxeemmppttiioonnss
       Various test exemptions may be granted by project administrators, see
       _a_e_p_a(1) and _a_e_p_a_t_t_r(5) for more information.  Copying tests into a
       change, or adding new tests to a change, may cancel those exemptions.

TTEESSTT CCOORRRREELLAATTIIOONNSS
       The ``aegis -Test -SUGgest'' command may be used to have aegis suggest
       suitable regression tests for your change, based on the source files in
       your change.  This automatically focuses testing effort to relevant
       tests, reducing the number of regression tests necessary to be
       confident that you have not introduced a bug.

       The test correlations are generated by the ``aegis -Integrate_Pass''
       command, which associates each test in the change with each source file
       in the change.  Thus, each source file accumulates a list of tests
       which have been associated with it in the past.  This is not as exact
       as code coverage analysis, but is a reasonable approximation in
       practice.

       The _a_e_c_p(1) and _a_e_n_f(1) commands are used to associate files with a
       change.  While they do not actively perform the association, these are
       the files used by _a_e_i_p_a_s_s(1) and _a_e_t(1) to determine which source files
       are associated with which tests.

   TTeesstt CCoorrrreellaattiioonn AAccccuurraaccyy
       Assuming that the testing correlations are accurate and that the tests
       are evenly distributed across the function space, there will be a less
       than _1_/_n_u_m_b_e_r chance that a relevant test has not been run by the
       ``aegis -Test -SUGgest _n_u_m_b_e_r'' command.  A small amount of noise is
       added to the test weighting, so that unexpected things are sometimes
       tested, and the same tests are not run every time.

       Test correlation accuracy can be improved by ensuring that:

       +o Each change should be strongly focused, with no gratuitous file
         inclusions.  This avoids spurious correlations.

       +o Each item of new functionality should be added in an individual
         change, rather than several together.  This strongly correlates tests
         with functionality.

       +o Each bug should be fixed in an individual change, rather than several
         together.  This strongly correlates tests with functionality.

       +o Test correlations will be lost if files are moved.  This is because
         correlations are by name.

       The best way for tests to correlate accurately with source files is
       when a change contains a test and exactly those files relating to the
       functionality under test.  Too many spurious files will weaken the
       usefulness of the testing correlations.

OOPPTTIIOONNSS
       The following options are understood;

       --AAUUTTOOmmaattiicc
               This option may be used to specify automatic tests.  Automatic
               tests require no human assistance.

       --BBAAssee__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the base of the source tree.  See
               _a_e_u_c_o_n_f(5) for the corresponding user preference.

       --CCUUrrrreenntt__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the current directory.  This is usually
               the default.  See _a_e_u_c_o_n_f(5) for the corresponding user
               preference.

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --MMAANNuuaall This option may be used to specify manual tests.  Manual tests
               require some human intervention,  e.g.: confirmation of some
               screen behavior (X11, for instance), or some user action,
               "unplug ethernet cable now".

       --NNoott__LLooggggiinngg
               This option may be used to disable the automatic logging of
               output and errors to a file.  This is often useful when several
               aegis commands are combined in a shell script.

       --OOuuttppuutt _f_i_l_e_n_a_m_e
               This option may be used to specify a filename which is to be
               written with the automatically determined test file name.
               Useful for writing scripts.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEEMMppllaattee
               This option may be used to specify that a new file template
               should be used, even if the file already exists.

       --NNoo__TTEEMMppllaattee
               This option may be used to specify that a new file template
               should not be used, even if the file does not exist (any empty
               file will be created).

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aent 'aegis -nt \!* -v'
       sh$     aent(){aegis -nt "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
       It is an error if the change is not assigned to the current user.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_c_p(1) copy an existing test into a change

       _a_e_d_b(1) begin development of a change

       _a_e_n_t_u(1)
               remove a new test from a change

       _a_e_r_m(1) remove an existing test as part of a change

       _a_e_t(1)  run tests

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -New_Test_Undo(1)                                aegis -New_Test_Undo(1)



NNAAMMEE
       aegis -New_Test_Undo - remove new tests from a change

SSYYNNOOPPSSIISS
       aaeeggiiss --NNeeww__TTeesstt__UUnnddoo _f_i_l_e_-_n_a_m_e...  [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__TTeesstt__UUnnddoo --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --NNeeww__TTeesstt__UUnnddoo --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_N_e_w___T_e_s_t___U_n_d_o command is used to remove new tests from a
       change (reverse the actions of the 'aegis -New_Test' command).  The
       file is removed from the development directory.

       You may specify a directory name to remove all new tests in the named
       directory tree, other files in the tree will be ignored.  It is an
       error if there are no relevant files.

   FFiillee NNaammee IInntteerrpprreettaattiioonn
       The aegis program will attempt to determine the project file names from
       the file names given on the command line.  All file names are stored
       within aegis projects as relative to the root of the baseline directory
       tree.  The development directory and the integration directory are
       shadows of this baseline directory, and so these relative names apply
       here, too.  Files named on the command line are first converted to
       absolute paths if necessary.  They are then compared with the baseline
       path, the development directory path, and the integration directory
       path, to determine a baseline-relative name.  It is an error if the
       file named is outside one of these directory trees.

       The --BBAAssee__RREEllaattiivvee option may be used to cause relative filenames to be
       interpreted as relative to the baseline path; absolute filenames will
       still be compared with the various paths in order to determine a
       baseline-relative name.

       The _r_e_l_a_t_i_v_e___f_i_l_e_n_a_m_e___p_r_e_f_e_r_e_n_c_e in the user configuration file may be
       used to modify this default behavior.  See _a_e_u_c_o_n_f(5) for more
       information.

   NNoottiiffiiccaattiioonn
       The _n_e_w___t_e_s_t___u_n_d_o___c_o_m_m_a_n_d in the project _c_o_n_f_i_g file is run, if set.
       The _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d is also run, if set, and if there has been an
       integration recently.  See _a_e_p_c_o_n_f(5) for more information.

   PPrroocceessss SSiiddee EEffffeeccttss
       This command will cancel any build or test registrations, because
       deleting a file logically invalidates them.

OOPPTTIIOONNSS
       The following options are understood:

       --BBAAssee__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the base of the source tree.  See
               _a_e_u_c_o_n_f(5) for the corresponding user preference.

       --CCUUrrrreenntt__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the current directory.  This is usually
               the default.  See _a_e_u_c_o_n_f(5) for the corresponding user
               preference.

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --IInntteerraaccttiivvee
               Specify that aegis should ask the user for confirmation before
               deleting each file.  Answer the question _y_e_s to delete the
               file, or _n_o to keep the file.  You can also answer _a_l_l to
               delete the file and all that follow, or _n_o_n_e to keep the file
               and all that follow.

               Defaults to the user's _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

               If aegis is running in the background, the question will not be
               asked, and the files will be deleted.

       --KKeeeepp
               This option may be used to retain files and/or directories
               usually deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --NNoo__KKeeeepp
               This option may be used to ensure that the files and/or
               directories are deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --NNoott__LLooggggiinngg
               This option may be used to disable the automatic logging of
               output and errors to a file.  This is often useful when several
               aegis commands are combined in a shell script.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aentu 'aegis -ntu \!$ -v'
       sh$     aentu(){aegis -ntu "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
       It is an error if the change is not assigned to the current user.
       It is an error if the file is not in the change.
       It is an error if the file was not added to the change with the 'aegis
       -New_Test' command.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_n_t(5) add a new test to a change

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Project_Attributes(1)                      aegis -Project_Attributes(1)



NNAAMMEE
       aegis -Project_Attributes - modify the attributes of a project

SSYYNNOOPPSSIISS
       aaeeggiiss --PPrroojjeecctt__AAttttrriibbuutteess _a_t_t_r_-_f_i_l_e [ _o_p_t_i_o_n...  ]
       aaeeggiiss --PPrroojjeecctt__AAttttrriibbuutteess --EEddiitt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --PPrroojjeecctt__AAttttrriibbuutteess --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --PPrroojjeecctt__AAttttrriibbuutteess --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_P_r_o_j_e_c_t___A_t_t_r_i_b_u_t_e_s command is used to set, edit or list the
       attributes of a project.

       The output of the --LLiisstt variant is suitable for use as input at a later
       time.

       See _a_e_p_a_t_t_r(5) for a description of the file format.

OOPPTTIIOONNSS
       The following options are understood:

       --EEddiitt
               Edit the attributes with a text editor, this is usually more
               convenient than supplying a text file.  The _V_I_S_U_A_L and then
               _E_D_I_T_O_R environment variables are consulted for the name of the
               editor to use; defaults to _v_i(1) if neither is set.  See the
               _v_i_s_u_a_l___c_o_m_m_a_n_d and _e_d_i_t_o_r___c_o_m_m_a_n_d fields in _a_e_u_c_o_n_f(1) for how
               to override this specifically for Aegis.

               Warning: Aegis tries to be well behaved when faced with errors,
               so the temporary file is left in your home directory where you
               can edit it further and re-use it with a --ffiillee option.

               The --eeddiitt option may not be used in the background, or when the
               standard input is not a terminal.

       --EEddiitt__BBaacckkGGrroouunndd
               Edit the attributes with a dumb text editor, this is most often
               desired when edit commands are being piped into the editor via
               the standard input.  Only the EEDDIITTOORR environment variable is
               consulted for the name of the editor to use; it is a fatal
               error if it is not set.  See the _e_d_i_t_o_r___c_o_m_m_a_n_d field in
               _a_e_u_c_o_n_f(1) for how to override this specifically for Aegis.

       --FFiillee _f_i_l_e_n_a_m_e
               Take the attributes from the specified file.  The filename `-'
               is understood to mean the standard input.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --DDeesscceenndd__PPrroojjeecctt__TTrreeee
               This option may be used to request that the command should be
               applied to the project and all its branches and sub-branches.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aepa 'aegis -pa \!* -v'
       sh$     aepa(){aegis -pa "$@" -v}

EERRRROORRSS
       It is an error if the current user is not an administrator of the
       specified project.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _t_k_a_e_p_a(1)
               Graphical interface to the _a_e_p_a(1) command.

       _a_e_c_a(1) modify the attributes of a change

       _a_e_p_a_t_t_r(5)
               project attribute file format

       _a_e_p_s_t_a_t_e(5)
               project state file format

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aepatch(1)                                                          aepatch(1)



NNAAMMEE
       aepatch - send and receive changes as patches

SSYYNNOOPPSSIISS
       aaeeppaattcchh --sseenndd [ _o_p_t_i_o_n...  ]
       aaeeppaattcchh --rreecceeiivvee [ _o_p_t_i_o_n...  ]
       aaeeppaattcchh --lliisstt [ _o_p_t_i_o_n...  ]
       aaeeppaattcchh --HHeellpp
       aaeeppaattcchh --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_p_a_t_c_h command is used to send Aegis changes as patches, or
       receive patches and turn them into Aegis changes.

       Please note that this only works for text files.  If your project uses
       binary files, the _a_e_p_a_t_c_h program will not be useful because the
       _d_i_f_f(1) and _p_a_t_c_h(1) commands only work on text files.  Also, this only
       works for files with names which do not contain white space.

       If you need to merge matches together, you could use the GNU patch
       utils, which include a tool to merge patches together.

SSEENNDD
       The send variant takes a specified change and constructs a patch
       containing all of the changes to all of the files in that change.  The
       result is compressed, and encoded into a text format which can be sent
       as e-mail without being corrupted by the mail transfer agents along the
       way.

       This patch is a normal Unix patch, as you would produce using _d_i_f_f(1),
       _g_z_i_p(1) and a MIME encoder such as _m_p_a_c_k(1).  There are no special
       formats.  The output can be uncompressed with the normal _g_u_n_z_i_p(1)
       command and applied with the normal _p_a_t_c_h(1) command.

   OOppttiioonnss
       The following options are understood by the send variant:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --CCOOmmpprreessss
               This option may be used to specify that the output is to be
               compressed.  This is the default.

       --NNoo__CCOOmmpprreessss
               This option may be used to specify that the output is not to be
               compressed.

       --CCoonntteenntt__TTrraannssffeerr__EEnnccooddiinngg _n_a_m_e
               This option may be used to specify the content transfer
               encoding to be used.  It may take one of the following values:

               None    No content transfer encoding is to be performed.

               Base64  The MIME base 64 encoding is to be used.  This is the
                       default.

               Quoted_Printable
                       The MIME quoted printable encoding is to be used.

               Unix_to_Unix_encode
                       The ancient unix-to-unix encoding is to be used.

               These encodings may be abbreviated in the same way as comment
               line options.

       --AAsscciiii__AArrmmoorr
               This means the same as the ``-cte=base64'' option above.

       --NNoo__AAsscciiii__AArrmmoorr
               This means the same as the ``-cte=none'' option above.

       --DDEELLttaa _n_u_m_b_e_r
               This option may be used to specify a particular delta in the
               project's history to copy the file from, rather than the most
               current version.  If the delta has been given a name (see
               _a_e_d_n(1) for how) you may use a delta name instead of a delta
               number.  It is an error if the delta specified does not exist.
               Delta numbers start from 1 and increase; delta 0 is a special
               case meaning ``when the branch started''.

       --DDEELLttaa__DDaattee _s_t_r_i_n_g
               This option may be used to specify a particular date and time
               in the project's history to copy the file from, rather than the
               most current version.  It is an error if the string specified
               cannot be interpreted as a valid date and time.  Quote the
               string if you need to use spaces.

       --OOuuttppuutt _f_i_l_e_n_a_m_e
               This option may be used to specify the output file.  The output
               is sent to the standard output by default.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

RREECCEEIIVVEE
       The receive variant takes a patch and creates an Aegis change (see
       _a_e_n_c(1)) to implement the change within.  Files are added to the change
       (see _a_e_n_f(1), _a_e_c_p(1), _a_e_r_m(1), _a_e_n_t(1)) and then the patch contents
       are unpackaged into the development directory, and the changes applied
       to the files.

       The patch does not have to be produced by the _a_e_p_a_t_c_h(1) command.
       Normal patches produced by _d_i_f_f(1) command are also valid input.  The
       intent is that you can particicate in normal open source development,
       and also use Aegis, even if your fellow developers are not.

       Once unpacked, the change is then built (see _a_e_b(1)), differenced (see
       _a_e_d(1)), and tested (see _a_e_t(1)).  The automatic process stops at this
       point, so that you can confirm that the change is desired.

   FFiillee NNaammeess
       It is common for patch files generated using the usual _d_i_f_f _-_r
       mechanism to contain extra path prefixes.  The _a_e_p_a_t_c_h(1) command
       attempts to remove these automagically.  This is usually possible
       because patches usually modify files within the project, so the patch
       file names are compared with project file names to guess which and how
       much path prefixes to remove.

       --RReemmoovvee__PPaatthh__PPrreeffiixx _s_t_r_i_n_g
               This option may be used to explicitly specify path prefixes to
               be removed, if present.  It may be specified more than once.

       If you have a complex project directory structure, from time to time
       people may send you patches relative to a sub-directory, rather than
       relative to the project root.  The _a_e_p_a_t_c_h(1) program can't guess this
       by itself.

       --AAdddd__PPaatthh__PPrreeffiixx _s_t_r_i_n_g
               This option may be used to specify the path of a project sub-
               directory in which to apply the patch.

   NNoottiiffiiccaattiioonn
       The _a_e_p_a_t_c_h command invokes various other Aegis commands.  The usual
       notifications that these commands would issue are issued.

   OOppttiioonnss
       The following options are understood by the receive variant:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to choose the change number to be used,
               otherwise the change number in the patch (if present) will be
               used if it is available, otherwise one will be chosen
               automatically.

       --DDEELLttaa _n_u_m_b_e_r
               This option may be used to specify a particular delta in the
               project's history to copy the file from, just as for the
               _a_e_c_p(1) command.  You may also use a delta name instead of a
               delta number.

       --DDIIRReeccttoorryy _p_a_t_h
               This option may be used to specify which directory is to be
               used.  It is an error if the current user does not have
               appropriate permissions to create the directory path given.
               This must be an absolute path.

               Caution: If you are using an automounter do not use `pwd` to
               make an absolute path, it usually gives the wrong answer.

       --FFiillee _f_i_l_e_n_a_m_e
               Read the change set from the specified file.  The default is to
               read it from the standard input.  The filename `-' is
               understood to mean the standard input.

               If your system has _l_i_b_c_u_r_l(3), and Aegis was configured to use
               it at compile time (this is the default if it is available) you
               will also be able to specify a Uniform Resource Locator (URL)
               in place of the file name.  The relevant data will be
               downloaded.  (The --VVeerrbboossee option will provide a progress bar.)

       --PPrroojjeecctt _n_a_m_e
               This option may be used to set the project name.  If not
               specified the project name in the input package will be used
               (if present), otherwise the usual project name default will be
               used.

   SSeeccuurriittyy
       Receiving changes by e-mail, and automatically committing them to the
       baseline without checking them, would be a recipe for disaster.  A
       number of safeguards are provided:

       +o The format of the package is confirmed to be correct, and the package
         verified for internal consistency, before it is unpacked and acted
         upon.

       +o The automatic portion of the process stops before development ends.
         This ensures that the receiver validates the change before it is
         committed, and then it must also be reviewed, preventing accidental
         or malicious damage.

       +o The more you use Aegis' test management facilities (see _a_e_n_t(1) and
         _a_e_t(1)) the harder it is for an inadequate change to get into the
         baseline.

LLIISSTT
       The list variant can be used to list the contents of a package without
       actually unpacking it first.  The output is reminiscent of the _a_e_g_i_s
       _-_l_i_s_t _c_h_a_n_g_e_-_d_e_t_a_i_l_s output.

   OOppttiioonnss
       The following options are understood by the list variant:

       --FFiillee _f_i_l_e_n_a_m_e
               Read the change set from the specified file.  The default is to
               read it from the standard input.  The filename `-' is
               understood to mean the standard input.

               If your system has _l_i_b_c_u_r_l(3), and Aegis was configured to use
               it at compile time (this is the default if it is available) you
               will also be able to specify a Uniform Resource Locator (URL)
               in place of the file name.  The relevant data will be
               downloaded.  (The --VVeerrbboossee option will provide a progress bar.)

       --OOuuttppuutt _f_i_l_e_n_a_m_e
               This option may be used to specify the output file.  The output
               is sent to the standard output by default.  Only useful with
               the -List option.

OOPPTTIIOONNSS
       The following options to this command haven't been mentioned yet:

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_p_a_t_c_h program.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_p_a_t_c_h are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

FFIILLEE FFOORRMMAATT
       The file format re-uses existing formats, rather than introduce
       anything new.  This means it is possible to extract the contents of a
       package even when aepatch is unavailable.

       +o On sending, the source files are generated using the _d_i_f_f(1) program,
         in the same way a normal Unix patch  is generated.
         On receiving, the differences are applied to the source files, in the
         same manner as the normal _p_a_t_c_h(1) program.

       +o On sending, the patch is compressed using the GNU gzip format.
         Typically primary source files are ASCII text, resulting in
         significant compression.  (This is optional.)
         On receiving, if the patch is compressed it will be automagically
         uncompressed, detection is automatic, you do not need to do this
         yourself.

       +o On sending, the compressed patch is encoded using the MIME base64
         encoding.  This makes the result approximately 33% larger than the
         compressed binary would be, but still smaller than the primary
         sources.  (This is optional.)
         On receiving, if the patch is MIME64 encoded it will be automatically
         decoded, detetcion is automatic, you do not need to do this yourself.

EEXXIITT SSTTAATTUUSS
       The _a_e_p_a_t_c_h command will exit with a status of 1 on any error.  The
       _a_e_p_a_t_c_h command will only exit with a status of 0 if there are no
       errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

CCOOPPYYRRIIGGHHTT
       aepatch version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aepatch program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_p_a_t_c_h _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_p_a_t_c_h _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aereport -RePorT(1)                                        aereport -RePorT(1)



NNAAMMEE
       aereport -RePorT - report generator

SSYYNNOOPPSSIISS
       aaeerreeppoorrtt [ _o_p_t_i_o_n...  ] _r_e_p_o_r_t_-_n_a_m_e
       aaeerreeppoorrtt [ _o_p_t_i_o_n...  ] --FFiillee _f_i_l_e_n_a_m_e
       aaeerreeppoorrtt --RReePPoorrTT --LLiisstt
       aaeerreeppoorrtt --HHeellpp
       aaeerreeppoorrtt --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_r_e_p_o_r_t command is used to generate reports from aereport'
       database.  Reports are specified in a C-like language described in the
       _a_e_r(5) manual entry.

       For a list of the reports available on your system, use the '_a_e_r _-_l_i_s_t'
       command.  These reports live in the _/_u_s_r_/_s_h_a_r_e_/_a_e_g_i_s_/_r_e_p_o_r_t directory,
       and it initially contains the reports distributed with aereport,
       however sites are free to add their own here.

WWRRIITTIINNGG RREEPPOORRTT SSCCRRIIPPTTSS
       Getting started writing report scripts can be difficult.  You are best
       to have a look at the reports distributes with Aegis, and try to adapt
       them.  The report script files are kept in the _/_u_s_r_/_s_h_a_r_e_/_a_e_g_i_s_/_r_e_p_o_r_t
       directory.

       For information about the data structures which may be accessed from a
       report script, you need to see the relevant manual entries:

       the projects list
               See _a_e_g_s_t_a_t_e(1) for the member fields.

       a specific project
               See _a_e_p_s_t_a_t_e(1) for the member fields.

       a specific change
               See _a_e_c_s_t_a_t_e(1) for the member fields.

       a specific file
               See _a_e_f_s_t_a_t_e(1) for the member fields.

       Each of the above man pages also contains a section towards the end
       which specifically addresses report generator use, usually with code
       fragments.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --FFiillee _f_i_l_e_n_a_m_e
               Take the report script from the specified file, rather than
               looking for the named report in the library of reports
               distributed with Aegis.  The filename `-' is understood to mean
               the standard input.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_r_e_p_o_r_t program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --OOuuttppuutt _f_i_l_e_n_a_m_e
               This option may be used to specify the output file.  The output
               is sent to the standard output by default.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --UUNNFFoorrmmaatttteedd
               This option may be used with most listings to specify that the
               column formatting is not to be performed.  This is useful for
               shell scripts.

       --VVeerrbboossee
               This option may be used to cause aereport to produce more
               output.  By default aereport only produces output on errors.
               When used with the --LLiisstt option this option causes column
               headings to be added.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_r_e_p_o_r_t are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aer 'aereport \!* -v'
       sh$     aer(){aereport "$@" -v}

SSEEEE AALLSSOO
       _a_e_l(1)  list (possibly) interesting things

       _a_e_r(5)  report script language definition

EEXXIITT SSTTAATTUUSS
       The _a_e_r_e_p_o_r_t command will exit with a status of 1 on any error.  The
       _a_e_r_e_p_o_r_t command will only exit with a status of 0 if there are no
       errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

CCOOPPYYRRIIGGHHTT
       aereport version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aereport program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_r_e_p_o_r_t _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_r_e_p_o_r_t _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Remove_Administrator(1)                  aegis -Remove_Administrator(1)


NNAAMMEE
       aegis -Remove_Administrator - remove administrators from a project

SSYYNNOOPPSSIISS
       aaeeggiiss --RReemmoovvee__AAddmmiinniissttrraattoorr _u_s_e_r_-_n_a_m_e _._._.  [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReemmoovvee__AAddmmiinniissttrraattoorr --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReemmoovvee__AAddmmiinniissttrraattoorr --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_R_e_m_o_v_e___A_d_m_i_n_i_s_t_r_a_t_o_r command is used to remove
       administrators from a project.

OOPPTTIIOONNSS
       The following options are understood:

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --DDeesscceenndd__PPrroojjeecctt__TTrreeee
               This option may be used to request that the command should be
               applied to the project and all its branches and sub-branches.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aera 'aegis -ra \!* -v'
       sh$     aera(){aegis -ra "$@" -v}

EERRRROORRSS
       It is an error if the current user is not an administrator of the
       project.

       It is an error if an attempt is made to remove the last administrator
       from the project.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_n_a(1) add new administrators to a project

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Review_Begin(1)                                  aegis -Review_Begin(1)



NNAAMMEE
       aegis -Review_Begin - begin a change review

SSYYNNOOPPSSIISS
       aaeeggiiss --RReevviieeww__BBeeggiinn [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReevviieeww__BBeeggiinn --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReevviieeww__BBeeggiinn --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_R_e_v_i_e_w___B_e_g_i_n command is used to notify aegis that you have
       begun to review a change.

       The change will be advanced from the _a_w_a_i_t_i_n_g _r_e_v_i_e_w state to the _b_e_i_n_g
       _r_e_v_i_e_w_e_d state.
                            
                                  awaiting
                                   review
                                      |
                             review   |review
                             begin    |begin
                             undo     |
                                   being
                                  reviewed



   NNoottiiffiiccaattiioonn
       If the _r_e_v_i_e_w___b_e_g_i_n___n_o_t_i_f_y___c_o_m_m_a_n_d has been set in the project
       attributes, this command will be run.  This is usually used to tell
       other reviewers that you have started review, and they need not.  See
       _a_e_p_a_t_t_r(5) and _a_e_p_a(1) for more information.

       If used when the _d_e_v_e_l_o_p___e_n_d___a_c_t_i_o_n project attribute is set to
       _g_o_t_o___b_e_i_n_g___r_e_v_i_e_w_e_d, then only the notification message is sent.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aerb 'aegis -rb \!* -v'
       sh$     aerb(){aegis -rb "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _a_w_a_i_t_i_n_g _r_e_v_i_e_w state.
       It is an error if the current user is not a reviewer of the project.
       Its is an error if the current user developed the change and the
       project is configured to not permit developers to review their own
       changes (default).

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_c_d(1) change directory

       _a_e_d_e(1) complete development of a change

       _a_e_d_e_u(1)
               recall a change for further development

       _a_e_r_p_a_s_s(1)
               pass review of a change

       _a_e_i_b(1) begin integrating a change

       _a_e_n_r_v(1)
               add a reviewer to a project

       _a_e_r_f_a_i_l(1)
               fail review of a change

       _a_e_r_p_u(1)
               rescind a change review pass

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Review_Begin_Undo(1)                        aegis -Review_Begin_Undo(1)



NNAAMMEE
       aegis -Review_Begin_Undo - stop reviewing a change

SSYYNNOOPPSSIISS
       aaeeggiiss --RReevviieeww__BBeeggiinn__UUnnddoo [ _o_p_t_i_o_n...  ]
       aaeeggiiss --HHeellpp
       aaeeggiiss --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_R_e_v_i_e_w___B_e_g_i_n___U_n_d_o command is used to stop reviewing a
       change.  It is moved from the _b_e_i_n_g _r_e_v_i_e_w_e_d state back to the _a_w_a_i_t_i_n_g
       _r_e_v_i_e_w state.
                            
                                  awaiting
                                   review
                                      |
                             review   |review
                             begin    |begin
                             undo     |
                                   being
                                  reviewed



   NNoottiiffiiccaattiioonn
       If the _r_e_v_i_e_w___b_e_g_i_n___u_n_d_o___n_o_t_i_f_y___c_o_m_m_a_n_d has been set in the project
       attributes, this command will be run.  This is usually used to tell
       other reviewers that you have stopped reviewing, and they may like to
       do so instead.  See _a_e_p_a_t_t_r(5) and _a_e_p_a(1) for more information.

       If used when the _d_e_v_e_l_o_p___e_n_d___a_c_t_i_o_n project attribute is set to
       _g_o_t_o___b_e_i_n_g___r_e_v_i_e_w_e_d, then only the notification message is sent.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aerbu 'aegis -rbu \!* -v'
       sh$     aerbu(){aegis -rbu "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g _r_e_v_i_e_w_e_d state.
       It is an error if the current user is not the reviewer of the change.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_c_d(1) change directory

       _a_e_d_e(1) complete development of a change

       _a_e_d_e_u(1)
               recall a change for further development

       _a_e_r_b(1) begin review of a change

       _a_e_n_r_v(1)
               add a reviewer to a project

       _a_e_r_f_a_i_l(1)
               fail review of a change

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Remove_Developer(1)                          aegis -Remove_Developer(1)



NNAAMMEE
       aegis -Remove_Developer - remove developers from a project

SSYYNNOOPPSSIISS
       aaeeggiiss --RReemmoovvee__DDeevveellooppeerr _u_s_e_r_-_n_a_m_e...  [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReemmoovvee__DDeevveellooppeerr --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReemmoovvee__DDeevveellooppeerr --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_R_e_m_o_v_e___D_e_v_e_l_o_p_e_r command is used to remove developers from a
       project.

OOPPTTIIOONNSS
       The following options are understood:

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --DDeesscceenndd__PPrroojjeecctt__TTrreeee
               This option may be used to request that the command should be
               applied to the project and all its branches and sub-branches.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aerd 'aegis -rd \!* -v'
       sh$     aerd(){aegis -rd "$@" -v}

EERRRROORRSS
       It is an error if the current user is not an administrator of the
       project.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_n_d(1) add a new developer to a project

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aerect(1)                                                            aerect(1)



NNAAMMEE
       aerect - draw a rectangle

SSYYNNOOPPSSIISS
       aaeerreecctt [ _o_p_t_i_o_n...  ] _w_i_d_t_h _h_e_i_g_h_t
       aaeeggiiss --HHeellpp
       aaeeggiiss --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_r_e_c_t command is used to draw rectangles for use with the intranet
       interface.

OOPPTTIIOONNSS
       The following options are understood:

       --BBeevveell _s_i_z_e
               This option may be used to specify the bevel size.  A size of 0
               may be use to specify no bevel.  Defaults to 3 if not
               specified.

       --CCoolloorr _r_e_d _g_r_e_e_n _b_l_u_e
               This option may be used to specify the color of the rectangle.
               The components are specified in a range from 0 to 255.  If not
               specified, the color will be based on the size of the
               rectangle.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --OOuuttppuutt _f_i_l_e_n_a_m_e
               This option may be used to specify the output file.  The output
               is sent to the standard output by default.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Review_FAIL(1)                                    aegis -Review_FAIL(1)



NNAAMMEE
       aegis -Review_FAIL - fail a change review

SSYYNNOOPPSSIISS
       aaeeggiiss --RReevviieeww__FFAAIILL --FFiillee _r_e_a_s_o_n_-_f_i_l_e [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReevviieeww__FFAAIILL --RREEAAssoonn _'_r_e_a_s_o_n_-_t_e_x_t_' [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReevviieeww__FFAAIILL --EEddiitt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReevviieeww__FFAAIILL --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReevviieeww__FFAAIILL --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_R_e_v_i_e_w___F_A_I_L command is used to inform aegis that a change
       has failed review.

       The change will be returned from the _b_e_i_n_g _r_e_v_i_e_w_e_d state to the _b_e_i_n_g
       _d_e_v_e_l_o_p_e_d state.  The change will cease to be assigned to the current
       user, and will be reassigned to the originating developer.
                            
                              being
                            developed
                                 |
                                 |develop
                                 |end
                                 |
                             awaitingreview
                              review  fail
                                 |
                                 |review
                                 |begin
                                 |
                              being
                             reviewed



       The developer will be notified by mail.  See the
       review_fail_notify_command in _a_e_p_a_t_t_r(5) for more information.

       The _r_e_a_s_o_n_-_f_i_l_e will contain a description of why the change was
       failed.  The file is in plain text.  It is recommended that you only
       use newline to terminate paragraphs, (rather than to terminate lines)
       as this will result in better formatting in the various listings.

   NNoottiiffiiccaattiioonn
       On successful completion of this command, the _r_e_v_i_e_w___f_a_i_l___n_o_t_i_f_y___-
       _c_o_m_m_a_n_d field of the project attributes is run, if set.  See _a_e_p_a_t_t_r(5)
       and _a_e_p_a(1) for more information.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --EEddiitt
               Edit the attributes with a text editor, this is usually more
               convenient than supplying a text file.  The _V_I_S_U_A_L and then
               _E_D_I_T_O_R environment variables are consulted for the name of the
               editor to use; defaults to _v_i(1) if neither is set.  See the
               _v_i_s_u_a_l___c_o_m_m_a_n_d and _e_d_i_t_o_r___c_o_m_m_a_n_d fields in _a_e_u_c_o_n_f(1) for how
               to override this specifically for Aegis.

               Warning: Aegis tries to be well behaved when faced with errors,
               so the temporary file is left in your home directory where you
               can edit it further and re-use it with a --ffiillee option.

               The --eeddiitt option may not be used in the background, or when the
               standard input is not a terminal.

       --EEddiitt__BBaacckkGGrroouunndd
               Edit the attributes with a dumb text editor, this is most often
               desired when edit commands are being piped into the editor via
               the standard input.  Only the EEDDIITTOORR environment variable is
               consulted for the name of the editor to use; it is a fatal
               error if it is not set.  See the _e_d_i_t_o_r___c_o_m_m_a_n_d field in
               _a_e_u_c_o_n_f(1) for how to override this specifically for Aegis.

       --FFiillee _f_i_l_e_n_a_m_e
               Take the attributes from the specified file.  The filename `-'
               is understood to mean the standard input.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --RREEAAssoonn _t_e_x_t
               This option may be used to provide the failure reason on the
               command line, rather than in a file.  You will need to use
               quotes to insulate the spaces from the shell.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aerfail 'aegis -rfail \!* -v'
       sh$     aerfail(){aegis -rfail "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g _r_e_v_i_e_w_e_d state.
       It is an error if the current user is not a reviewer for the project.
       It is an error if the current user developed the change and the project
       is configured to disallow developers to review their own changes
       (default).

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_c_d(1) change directory

       _a_e_d_e(1) complete development of a change

       _a_e_d_e_u(1)
               recall a change for further development

       _a_e_n_r_v(1)
               add a reviewer to a project

       _a_e_r_p_a_s_s(1)
               pass review of a change

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Remove_Integrator(1)                        aegis -Remove_Integrator(1)



NNAAMMEE
       aegis -Remove_Integrator - remove integrators from a project

SSYYNNOOPPSSIISS
       aaeeggiiss --RReemmoovvee__IInntteeggrraattoorr _u_s_e_r_-_n_a_m_e...  [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReemmoovvee__IInntteeggrraattoorr --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReemmoovvee__IInntteeggrraattoorr --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_R_e_m_o_v_e___I_n_t_e_g_r_a_t_o_r command is used to remove integrators from
       a project.

OOPPTTIIOONNSS
       The following options are understood:

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --DDeesscceenndd__PPrroojjeecctt__TTrreeee
               This option may be used to request that the command should be
               applied to the project and all its branches and sub-branches.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aeri 'aegis -ri \!* -v'
       sh$     aeri(){aegis -ri "$@" -v}

EERRRROORRSS
       It is an error if the current user is not an administrator of the
       project.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_n_i(1) add a new administrator to a project

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -ReMove_file(1)                                    aegis -ReMove_file(1)


NNAAMMEE
       aegis -ReMove_file - add files to be deleted to a change

SSYYNNOOPPSSIISS
       aaeeggiiss --RReeMMoovvee__ffiillee _f_i_l_e_-_n_a_m_e...  [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReeMMoovvee__ffiillee --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReeMMoovvee__ffiillee --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_R_e_M_o_v_e___f_i_l_e command is used to add files to be deleted to a
       change.  The file will be added to the list of files in the change, and
       will be removed from the baseline at integration time.

       This command may be used to remove tests, not just source files.  Tests
       are treated just like any other source file, and are subject to the
       same process.

       A file will be created in the development directory containing 1KB of
       random text.  The random text is sufficiently revolting that most
       compilers will give error messages, should the file be referenced
       accidentally.  This is often very helpful when removing include files.

       You may specify a directory name to remove all files in the named
       directory tree.  It is an error if there are no relevant files.

   FFiillee NNaammee IInntteerrpprreettaattiioonn
       The aegis program will attempt to determine the project file names from
       the file names given on the command line.  All file names are stored
       within aegis projects as relative to the root of the baseline directory
       tree.  The development directory and the integration directory are
       shadows of this baseline directory, and so these relative names apply
       here, too.  Files named on the command line are first converted to
       absolute paths if necessary.  They are then compared with the baseline
       path, the development directory path, and the integration directory
       path, to determine a baseline-relative name.  It is an error if the
       file named is outside one of these directory trees.

       The --BBAAssee__RREEllaattiivvee option may be used to cause relative filenames to be
       interpreted as relative to the baseline path; absolute filenames will
       still be compared with the various paths in order to determine a
       baseline-relative name.

       The _r_e_l_a_t_i_v_e___f_i_l_e_n_a_m_e___p_r_e_f_e_r_e_n_c_e in the user configuration file may be
       used to modify this default behavior.  See _a_e_u_c_o_n_f(5) for more
       information.

   PPrroocceessss SSiiddee EEffffeeccttss
       This command will cancel any build or test registrations, because
       adding a file logically invalidates them.

       When the change files are listed (_a_e_g_i_s _-_L_i_s_t _C_h_a_n_g_e___F_i_l_e_s _-_T_E_R_s_e) the
       removed files will not appear in the terse listing.  Similarly, when
       the project files are listed with an explicit change number (_a_e_g_i_s
       _-_L_i_s_t _P_r_o_j_e_c_t___F_i_l_e_s _-_T_E_R_s_e _-_C_h_a_n_g_e N) none of the change's files,
       including the the removed files, will not appear in the terse listing.
       These two features are very helpful when calling aegis from within a
       DMT to generate the list of source files.

   CChhaannggiinngg tthhee TTyyppee ooff aa FFiillee
       If you want to change the type of a file (say, from a test to a source
       file, or _v_i_c_e _v_e_r_s_a) you could do it as two changes, by first using
       _a_e_r_m(1) in one change and then using _a_e_n_f(1) or _a_e_n_t(1) in a second
       change, or you can combine both steps in the same change.  Remember to
       use the _a_e_r_m _-_n_o_w_h_i_t_e_o_u_t option or you will get a most peculiar new
       file template.

   NNoottiiffiiccaattiioonn
       The _r_e_m_o_v_e___f_i_l_e___c_o_m_m_a_n_d in the project _c_o_n_f_i_g file is run, if set.  The
       _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d is also run, if set, and if there has been an
       integration recently.  See _a_e_p_c_o_n_f(5) for more information.

WWHHIITTEEOOUUTT
       Aegis provides you with what is often called a ``view path'' which
       indicates to development tools (compilers, build systems, _e_t_c) look
       first in the development directory, then in the branch baseline, and so
       on up to the trunk baseline.

       The problem with view paths is that in order to remove files, you need
       some kind of "whiteout" to say ``stop looking, it's been removed.''

       When you user the _a_e_r_m(1) or _a_e_m_v(1) commands, this means "add
       information to this change which will remove the file from the baseline
       when this change is integrated".  _I_._e_. while the change is in the _b_e_i_n_g
       _d_e_v_e_l_o_p_e_d state, the file is only "removed" in the development
       directory - it's still present in the baseline, and will be until the
       change is successfully integrated.

       When you use the _a_e_r_m(1) or _a_e_m_v(1) commands, Aegis will create a 1K
       file to act as the whiteout.  It's contents are rather ugly so that if
       you compile or include the "removed" file accidentally, you get a fatal
       error.  This will remind you to remove obsolete references.

       When the change in integrated, the removed file is _n_o_t copied/linked
       from the baseline to the integration directory, and is _n_o_t copied from
       the development directory.  At this time it is physically gone (no
       whiteout).  It is assumed that because of the error inducing whiteout
       all old references were found and fixed while the change was in the
       _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.

   FFiillee MMaanniiffeessttss
       When generating list of files to be compiled or linked, it is important
       that the file manifest be generated from information known by Aegis,
       rather than from the file system.  This is for several reasons:

       (a) Aegis knows exactly what (source) files are where, whereas
           everything else is inferring Aegis' knowledge; and

       (b) looking in the file system is hard when the view path is longer
           that 2 directories (and Aegis' branching method can make it
           arbitrarily long); and

       (c) The whiteout files, and anything else left ``lying around'', will
           confuse any method which interrogates the file system.

       The easiest way to use Aegis' file knowledge is with something like an
       _a_w_k(1) script processing the Aegis file lists.  For example, you can do
       this with _m_a_k_e(1) as follows:
              # generate the file manifest
              manifest.make.inc: manifest.make.awk
                   ( aegis -l cf -ter ; aegis -l pf -ter ) | \
                   awk -f manifest.make.awk > manifest.make.inc
              # now include the file manifest
              include manifest.make.inc
       Note: this would be inefficient of you did it once per directory, but
       there is nothing stopping you writing numerous assignments into the
       _m_a_n_i_f_e_s_t_._m_a_k_e_._i_n_c file, all in one pass.

       It is possible to do the same thing with Aegis' report generator (see
       _a_e_r(1) for more information), but this is more involved than the _a_w_k(1)
       script.  However, with the information "straight from the horse's
       mouth" as it were, it can also be much smarter.

       This file manifest would become out-of-date without an interlock to
       Aegis' file operations commands.  By using the _p_r_o_j_e_c_t_-_f_i_l_e___c_o_m_m_a_n_d and
       _c_h_a_n_g_e___f_i_l_e___c_o_m_m_a_n_d fields of the project _c_o_n_f_i_g file (see _a_e_p_c_o_n_f(5)
       for more information), you can delete this file at strategic times.
              /* run when the change file manifest is altered */
              change_file_command = "rm -f manifest.make.inc";
              /* run when the project file manifest is altered */
              project_file_command = "rm -f manifest.make.inc";
       The new file manifest will thus be re-built during the next _a_e_b(1)
       command.

   OOppttiioonnss aanndd PPrreeffeerreenncceess
       There is a --NNoo--WWhhiitteeOOuutt option, which may be used to suppress whiteout
       files when you use the _a_e_r_m(1) and _a_e_m_v(1) commands.  There is a
       corresponding --WWhhiitteeOOuutt option, which is usually the default.

       There is a _w_h_i_t_e_o_u_t___p_r_e_f_e_r_e_n_c_e field in the user preferences file (see
       _a_e_u_c_o_n_f(5) for more information) if you want to set this option more
       permanently.

   WWhhiitteeoouutt FFiillee TTeemmppllaatteess
       The _w_h_i_t_e_o_u_t___t_e_m_p_l_a_t_e field of the project _c_o_n_f_i_g file may be used to
       produce language-specific error files.  If no whiteout template entry
       matches, a very ugly 1KB file will be produced - it should induce
       compiler errors for just about any language.

       If you want a more human-readable error message, entries such as
              whiteout_template =
              [
                   {
                   pattern = [ "*.[ch]" ];
                   body = "#error This file has been removed.";
                   }
              ];
       can be very effective (this example assumes _g_c_c(1) is being used).

       If it is essential that _n_o whiteout file be produced, say for C source
       files, you could use a whiteout template such as
              whiteout_template =
              [
                   { pattern = [ "*.c" ]; }
              ];
       because an absent _b_o_d_y sub-field means generate no whiteout file at
       all.

       You may have more than one whiteout template entry, but note that the
       order of the entries is important.  The first entry which matches will
       be used.

OOPPTTIIOONNSS
       The following options are understood:

       --BBAAssee__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the base of the source tree.  See
               _a_e_u_c_o_n_f(5) for the corresponding user preference.

       --CCUUrrrreenntt__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the current directory.  This is usually
               the default.  See _a_e_u_c_o_n_f(5) for the corresponding user
               preference.

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --NNoott__LLooggggiinngg
               This option may be used to disable the automatic logging of
               output and errors to a file.  This is often useful when several
               aegis commands are combined in a shell script.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       --WWhhiitteeOOuutt
               This option may be used to request that deleted files be
               replaced by a ``whiteout'' file in the development directory.
               The idea is that compiling such a file will result in a fatal
               error, in order that all references may be found.  This is
               usually the default.

       --NNoo__WWhhiitteeOOuutt
               This option may be used to request that no ``whiteout'' file be
               placed in the development directory.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aerm 'aegis -rm \!* -v'
       sh$     aerm(){aegis -rm "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
       It is an error if the change is not assigned to the current user.
       It is an error if the file does not exist in the baseline.
       It is an error if the file is already part of the change.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_c_p(1) copy files into a change

       _a_e_d_b(1) begin development of a change

       _a_e_m_v(1) rename a file as part of a change

       _a_e_n_f(1) add files to be created to a change

       _a_e_r_m_u(1)
               remove files to be deleted from a change

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -ReMove_PRoject(1)                              aegis -ReMove_PRoject(1)



NNAAMMEE
       aegis -ReMove_PRoject - remove project

SSYYNNOOPPSSIISS
       aaeeggiiss --RReeMMoovvee__PPrroojjeecctt _p_r_o_j_e_c_t_-_n_a_m_e [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReeMMoovvee__PPrroojjeecctt --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReeMMoovvee__PPrroojjeecctt --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_R_e_M_o_v_e___P_R_o_j_e_c_t command is used to remove a project, either
       entirely, or just from aegis' supervision.

       Project aliases to the removed project are also removed.

OOPPTTIIOONNSS
       The following options are understood:

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --IInntteerraaccttiivvee
               Specify that aegis should ask the user for confirmation before
               deleting each file.  Answer the question _y_e_s to delete the
               file, or _n_o to keep the file.  You can also answer _a_l_l to
               delete the file and all that follow, or _n_o_n_e to keep the file
               and all that follow.

               Defaults to the user's _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

               If aegis is running in the background, the question will not be
               asked, and the files will be deleted.

       --KKeeeepp
               This option may be used to retain files and/or directories
               usually deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --NNoo__KKeeeepp
               This option may be used to ensure that the files and/or
               directories are deleted by the command.  Defaults to the user's
               _d_e_l_e_t_e___f_i_l_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for
               more information.

       --LLIIBBrraarryy _a_b_s_p_a_t_h
               This option may be used to specify a directory to be searched
               for global state files and user state files.  (See _a_e_g_s_t_a_t_e(5)
               and _a_e_u_s_t_a_t_e(5) for more information.)  Several library options
               may be present on the command line, and are search in the order
               given.  Appended to this explicit search path are the
               directories specified by the _A_E_G_I_S___P_A_T_H environment variable
               (colon separated), and finally, _/_u_s_r_/_l_o_c_a_l_/_l_i_b_/_a_e_g_i_s is always
               searched.  All paths specified, either on the command line or
               in the _A_E_G_I_S___P_A_T_H environment variable, must be absolute.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aermpr 'aegis -rmpr \!* -v'
       sh$     aermpr(){aegis -rmpr "$@" -v}

EERRRROORRSS
       It is an error if the project has any changes between the _b_e_i_n_g
       _d_e_v_e_l_o_p_e_d and _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d states, inclusive.
       It is an error if the current user is not an administrator.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_n_p_r(1)
               create a new project

       _a_e_n_r_l_s(1)
               create a new project from an existing project

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -ReMove_file_Undo(1)                          aegis -ReMove_file_Undo(1)



NNAAMMEE
       aegis -ReMove_file_Undo - remove files to be deleted from a change

SSYYNNOOPPSSIISS
       aaeeggiiss --RReeMMoovvee__ffiillee__UUnnddoo _f_i_l_e_-_n_a_m_e...  [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReeMMoovvee__ffiillee__UUnnddoo --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReeMMoovvee__ffiillee__UUnnddoo --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_R_e_M_o_v_e___f_i_l_e___U_n_d_o command is used to remove files to be
       deleted from a change.  The files is removed from the list of files in
       the change.

       You may specify a directory name to delete from the change all files
       being removed in the named directory tree, other files in the tree will
       be ignored.  It is an error if there are no relevant files.

   FFiillee NNaammee IInntteerrpprreettaattiioonn
       The aegis program will attempt to determine the project file names from
       the file names given on the command line.  All file names are stored
       within aegis projects as relative to the root of the baseline directory
       tree.  The development directory and the integration directory are
       shadows of this baseline directory, and so these relative names apply
       here, too.  Files named on the command line are first converted to
       absolute paths if necessary.  They are then compared with the baseline
       path, the development directory path, and the integration directory
       path, to determine a baseline-relative name.  It is an error if the
       file named is outside one of these directory trees.

       The --BBAAssee__RREEllaattiivvee option may be used to cause relative filenames to be
       interpreted as relative to the baseline path; absolute filenames will
       still be compared with the various paths in order to determine a
       baseline-relative name.

       The _r_e_l_a_t_i_v_e___f_i_l_e_n_a_m_e___p_r_e_f_e_r_e_n_c_e in the user configuration file may be
       used to modify this default behavior.  See _a_e_u_c_o_n_f(5) for more
       information.

   NNoottiiffiiccaattiioonn
       The _r_e_m_o_v_e___f_i_l_e___u_n_d_o___c_o_m_m_a_n_d in the project _c_o_n_f_i_g file is run, if set.
       The _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d is also run, if set, and if there has been an
       integration recently.  See _a_e_p_c_o_n_f(5) for more information.

   PPrroocceessss SSiiddee EEffffeeccttss
       This command will cancel any build or test registrations, because
       deleting a file logically invalidates them.

OOPPTTIIOONNSS
       The following options are understood:

       --BBAAssee__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the base of the source tree.  See
               _a_e_u_c_o_n_f(5) for the corresponding user preference.

       --CCUUrrrreenntt__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the current directory.  This is usually
               the default.  See _a_e_u_c_o_n_f(5) for the corresponding user
               preference.

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aermu 'aegis -rmu \!* -v'
       sh$     aermu(){aegis -rmu "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
       It is an error if the change is not assigned to the current user.
       It is an error if the file is not in the change.
       It is an error if the was not added to the change using the _a_e_g_i_s
       _-_R_e_M_o_v_e___f_i_l_e command.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_r_m(1) add files to be deleted to a change

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Remove_Project_Alias(1)                  aegis -Remove_Project_Alias(1)



NNAAMMEE
       aegis -Remove_Project_Alias - remove a project alias

SSYYNNOOPPSSIISS
       aaeeggiiss --RReemmoovvee__PPrroojjeecctt__AAlliiaass [ _o_p_t_i_o_n...  ] _p_r_o_j_e_c_t_-_a_l_i_a_s
       aaeeggiiss --HHeellpp
       aaeeggiiss --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_R_e_m_o_v_e___P_r_o_j_e_c_t___A_l_i_a_s command is used to remove a project
       alias.

       The project alias _m_u_s_t be given on the command line, the default
       project is not sufficient.

   EExxaammppllee
       Aliases may be used in may ways.  The most common is to give a
       particular release a code name.  You would do this by saying
              aenpa example.4.2 sydney
       This would make ``sydney'' an alias for the ``example.4.2'' branch.

       Another use for aliases is to have a fixed alias for your active
       branch, so that your developer team does not need to change their
       default project, even though the branch number moves on for each
       release.  You could say
              aenpa example.4.2 example.cur
       This would make ``example.cur'' an alias for the ``example.4.2''
       branch.  When this was finished, and 4.3 started, a project
       administrator could say
              aerpa example.cur
              aenpa example.4.3 example.cur
       Now ``example.cur'' is an alias for the ``example.4.3'' branch, but the
       developers need only reference ``example.cur'' to always work on the
       right branch.

OOPPTTIIOONNSS
       The following options are understood:

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

EERRRROORRSS
       It is an error if the current user is not a project administrator.
       It is an error if the given name is not a project alias.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_n_p_a(1)
               Create a new project alias.

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Review_PASS(1)                                    aegis -Review_PASS(1)



NNAAMMEE
       aegis -Review_PASS - pass a change review

SSYYNNOOPPSSIISS
       aaeeggiiss --RReevviieeww__PPAASSSS [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReevviieeww__PPAASSSS --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReevviieeww__PPAASSSS --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_R_e_v_i_e_w___P_A_S_S command is used to notify aegis that a change
       has passed review.

       The change will be advanced from the _b_e_i_n_g _r_e_v_i_e_w_e_d state to the
       _a_w_a_i_t_i_n_g _i_n_t_e_g_r_a_t_i_o_n state.
                            
                              being
                             reviewed
                                 |
                                 |revrieevwiew
                                 |passpass
                                 |    undo
                             awaiting
                            integration



       If you use one of the -File, -Edit or -Reason options to add comments,
       the file is to be in plain text, and it is recommended that you only
       use newline to terminate paragraphs, (rather than to terminate lines)
       as this will result in better formatting in the various listings.

   NNoottiiffiiccaattiioonn
       On successful completion of this command, the _r_e_v_i_e_w___p_a_s_s___n_o_t_i_f_y___-
       _c_o_m_m_a_n_d field of the project attributes is run, if set.  See _a_e_p_a_t_t_r(5)
       and _a_e_p_a(1) for more information.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --EEddiitt
               Edit the attributes with a text editor, this is usually more
               convenient than supplying a text file.  The _V_I_S_U_A_L and then
               _E_D_I_T_O_R environment variables are consulted for the name of the
               editor to use; defaults to _v_i(1) if neither is set.  See the
               _v_i_s_u_a_l___c_o_m_m_a_n_d and _e_d_i_t_o_r___c_o_m_m_a_n_d fields in _a_e_u_c_o_n_f(1) for how
               to override this specifically for Aegis.

               Warning: Aegis tries to be well behaved when faced with errors,
               so the temporary file is left in your home directory where you
               can edit it further and re-use it with a --ffiillee option.

               The --eeddiitt option may not be used in the background, or when the
               standard input is not a terminal.

       --EEddiitt__BBaacckkGGrroouunndd
               Edit the attributes with a dumb text editor, this is most often
               desired when edit commands are being piped into the editor via
               the standard input.  Only the EEDDIITTOORR environment variable is
               consulted for the name of the editor to use; it is a fatal
               error if it is not set.  See the _e_d_i_t_o_r___c_o_m_m_a_n_d field in
               _a_e_u_c_o_n_f(1) for how to override this specifically for Aegis.

       --FFiillee _f_i_l_e_n_a_m_e
               Take the attributes from the specified file.  The filename `-'
               is understood to mean the standard input.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --RREEAAssoonn _t_e_x_t
               This option may be used to provide the failure reason on the
               command line, rather than in a file.  You will need to use
               quotes to insulate the spaces from the shell.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aerpass 'aegis -rpass \!* -v'
       sh$     aerpass(){aegis -rpass "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _b_e_i_n_g _r_e_v_i_e_w_e_d state.
       It is an error if the current user is not a reviewer of the project.
       Its is an error if the current user developed the change and the
       project is configured to disallow developers to review their own
       changes (default).

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_c_d(1) change directory

       _a_e_d_e(1) complete development of a change

       _a_e_d_e_u(1)
               recall a change for further development

       _a_e_i_b(1) begin integrating a change

       _a_e_n_r_v(1)
               add a reviewer to a project

       _a_e_r_f_a_i_l(1)
               fail review of a change

       _a_e_r_p_u(1)
               rescind a change review pass

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Review_Pass_Undo(1)                          aegis -Review_Pass_Undo(1)



NNAAMMEE
       aegis -Review_Pass_Undo - rescind a change review pass

SSYYNNOOPPSSIISS
       aaeeggiiss --RReevviieeww__PPaassss__UUnnddoo [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReevviieeww__PPaassss__UUnnddoo --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReevviieeww__PPaassss__UUnnddoo --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_R_e_v_i_e_w___P_a_s_s___U_n_d_o command is used to notify aegis that a
       change review pass has been rescinded.

       The change will be moved from the _a_w_a_i_t_i_n_g _i_n_t_e_g_r_a_t_i_o_n state to the
       _b_e_i_n_g _r_e_v_i_e_w_e_d state.
                            
                              being
                             reviewed
                                 |
                                 |revrieevwiew
                                 |passpass
                                 |    undo
                             awaiting
                            integration



   NNoottiiffiiccaattiioonn
       On successful completion of this command, the _r_e_v_i_e_w___p_a_s_s___u_n_d_o___n_o_t_i_f_y___-
       _c_o_m_m_a_n_d field of the project attributes is run, if set.  See _a_e_p_a_t_t_r(5)
       and _a_e_p_a(1) for more information.

OOPPTTIIOONNSS
       The following options are understood:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aerpu 'aegis -rp \!* -v'
       sh$     aerpu(){aegis -rp "$@" -v}

EERRRROORRSS
       It is an error if the change is not in the _a_w_a_i_t_i_n_g _i_n_t_e_g_r_a_t_i_o_n state.
       It is an error if the current user is not the reviewer of the change.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_r_p_a_s_s(1)
               pass review of a change

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Remove_ReViewer(1)                            aegis -Remove_ReViewer(1)



NNAAMMEE
       aegis -Remove_ReViewer - remove reviewers from a project

SSYYNNOOPPSSIISS
       aaeeggiiss --RReemmoovvee__RReeVViieewweerr _u_s_e_r_-_n_a_m_e...  [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReemmoovvee__RReeVViieewweerr --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --RReemmoovvee__RReeVViieewweerr --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_R_e_m_o_v_e___R_e_V_i_e_w_e_r command is used to remove reviewers from a
       project.

OOPPTTIIOONNSS
       The following options are understood:

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --DDeesscceenndd__PPrroojjeecctt__TTrreeee
               This option may be used to request that the command should be
               applied to the project and all its branches and sub-branches.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aerrv 'aegis -rrv \!* -v'
       sh$     aerrv(){aegis -rrv "$@" -v}

EERRRROORRSS
       It is an error if the current user is not an administrator of the
       project.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_n_r_v(1)
               add a new reviewer to a project

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aesub(1)                                                              aesub(1)



NNAAMMEE
       aesub - substitute and echo strings

SSYYNNOOPPSSIISS
       aaeessuubb [ _o_p_t_i_o_n...  ] string ...
       aaeessuubb --HHeellpp
       aaeessuubb --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_s_u_b command is used to perform the usual _a_e_s_u_b(5) substitutions
       on its command line arguments, and then echo them to the standard
       output.

   SShheellll SSccrriipptt QQuuoottiinngg
       The _a_e_s_u_b(1) command is often used in shell scripts.  It is important
       to remember that the shell will do its own substitutions on the command
       line argument _b_e_f_o_r_e it invokes the _a_e_s_u_b(1) command.  Usually, you
       don't want this to happen, so you need to use _s_i_n_g_l_e (') quotes to do
       this.  (The shell continues to substitute inside double (") quotes.)

       Quote _a_e_s_u_b(1) arguments using ' _s_i_n_g_l_e ' quotes.

OOPPTTIIOONNSS
       The following options are understood:

       --BBaasseeLLiinnee
               This option may be used to specify that the project baseline is
               the subject of the command.

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_s_u_b program.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_s_u_b are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

EEXXIITT SSTTAATTUUSS
       The _a_e_s_u_b command will exit with a status of 1 on any error.  The _a_e_s_u_b
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       aaeessuubb(5)
               Available string substitutions.

CCOOPPYYRRIIGGHHTT
       aesub version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aesub program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_s_u_b _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_s_u_b _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -Test(1)                                                  aegis -Test(1)



NNAAMMEE
       aegis -Test - run tests

SSYYNNOOPPSSIISS
       aaeeggiiss --TTeesstt [ _f_i_l_e_-_n_a_m_e...  ][ _o_p_t_i_o_n...  ]
       aaeeggiiss --TTeesstt --IINNDDeeppeennddeenntt [ _f_i_l_e_-_n_a_m_e...  ][ _o_p_t_i_o_n...  ]
       aaeeggiiss --TTeesstt --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeeggiiss --TTeesstt --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_T_e_s_t command is used to run tests.  If no files are named,
       all relevant tests are run.  By default both automatic and manual tests
       are run.

       You may name directories on the command line, and all relevant tests in
       that directory tree in the change will be run.  It is an error if there
       are no relevant tests.

       Each architecture must be tested separately.  This is because there may
       be subtle problems that are only revealed on some architectures.  Some
       projects may also have different code for different architectures.

       The status of the last test run is remembered so that tests are not run
       if there is no need.  (This does not apply to _-_R_E_G_r_e_s_s_i_o_n tests,
       unfortunately.)  Tests must be re-run if the test previously failed, if
       the test file has changed, if there has been a build, and for each
       architecture.

   FFiillee NNaammee IInntteerrpprreettaattiioonn
       The aegis program will attempt to determine the project file names from
       the file names given on the command line.  All file names are stored
       within aegis projects as relative to the root of the baseline directory
       tree.  The development directory and the integration directory are
       shadows of this baseline directory, and so these relative names apply
       here, too.  Files named on the command line are first converted to
       absolute paths if necessary.  They are then compared with the baseline
       path, the development directory path, and the integration directory
       path, to determine a baseline-relative name.  It is an error if the
       file named is outside one of these directory trees.

       The --BBAAssee__RREEllaattiivvee option may be used to cause relative filenames to be
       interpreted as relative to the baseline path; absolute filenames will
       still be compared with the various paths in order to determine a
       baseline-relative name.

       The _r_e_l_a_t_i_v_e___f_i_l_e_n_a_m_e___p_r_e_f_e_r_e_n_c_e in the user configuration file may be
       used to modify this default behavior.  See _a_e_u_c_o_n_f(5) for more
       information.

TTEESSTT PPRROOCCEESSSS
       Each change is required to be accompanied by tests, and those tests are
       required to be run against the built development directory, and they
       must pass.  This ensures that new functionality is accompanied by tests
       to verify its correctness, and bug fixes are accompanied by tests which
       confirm that the bug has been fixed.

   RReeggrreessssiioonn TTeessttss
       Tests are treated as any other source file, and are maintained in the
       baseline and history with all other source files.  The tests which must
       accompany every change accumulate in the project baseline, providing a
       definition of correct function for the baseline.  These accumulated
       tests may be executed using an ``aegis -REGression'' command, to verify
       that the project will not ``regress'' as a result of a change.

   BBaasseelliinnee TTeessttss
       Bug fixes are required to have their tests _f_a_i_l against the project
       baseline (in contrast to the development directory).  This ensures that
       the test actually demonstrates the bug in the baseline, as well as
       demonstrating that it is fixed by the change.  New functionality
       trivially fails against the baseline, and so aegis does not attempt to
       guess if a test is a bug fix test or new functionality test, it simply
       requires tests to fail against the baseline.

       This requirement applies both to new tests being created by a change
       and also to tests which have been copied into a change for
       modification.

   RReevviieewwiinngg TTeessttss
       Reviewers may be confident that aegis has enforced the test
       requirements; that a change must have tests, that the change must
       build, that the tests pass against the development directory, and that
       the tests fail against the baseline.  These conditions are enforced by
       _a_e_d_e(1) and the change will not be advanced to the _b_e_i_n_g _r_e_v_i_e_w_e_d state
       until these conditions are met.  Reviewers should thus review tests for
       _c_o_m_p_l_e_t_e_n_e_s_s of coverage of the code in the change, and insensitivity
       to changes in the execution environment (e.g. not date sensitive).
       Reviewers should also use ``aegis -list change_details'' to verify that
       a change does or does not have testing exemptions.

   EExxeemmppttiioonnss
       Various test exemptions may be granted by project administrators, see
       _a_e_p_a(1) and _a_e_p_a_t_t_r(5) for more information.  Copying tests into a
       change, or adding new tests to a change, may cancel those exemptions.

TTEESSTT CCOOMMMMAANNDD CCOONNFFIIGGUURRAATTIIOONN
       The command used to execute tests is defined by the _t_e_s_t___c_o_m_m_a_n_d field
       in the project _c_o_n_f_i_g file (see _a_e_p_c_o_n_f(5) for more information), this
       defaults to using the Bourne shell if not set.  The current directory
       will be the top of the appropriate directory tree.  If tests require
       temporary files, they should create them in _/_t_m_p, as a test cannot
       expect to have write permission in the current directory.

       If you want to use a more sophisticated test engine, rather than a
       simple shell script, but this test engine does not return result codes
       suitable for use with aegis, you could wrap it in a shell script which
       re-writes the exit status into the values aegis expects.  You could
       also achieve the same results by writing a more complex _t_e_s_t___c_o_m_m_a_n_d in
       the project _c_o_n_f_i_g file.

       It is also possible to write test commands which are able to test more
       than one file at once.  This is controlled by the _b_a_t_c_h___t_e_s_t___c_o_m_m_a_n_d
       field of the project _c_o_n_f_i_g file.  In this case, the ${output}
       substitution indicates the name of a file the test command must create,
       in _a_e_t_e_s_t(5) format, to contain the results of the tests run.  This is
       often used on systems with multiple CPUs or the ability to distribute
       jobs across several computers on a network.

   SSuubbssttiittuuttiioonnss
       All of the _a_e_s_u_b(5) substitutions are available in the test commands.
       Some of them are of particular note:

       _A_R_C_H_i_t_e_c_t_u_r_e
               This substitution is replaced by the name of the architecture
               to be tested.

       _S_e_a_r_c_h___P_a_t_h
               This substitution is replaced by a colon separated list of
               absolute paths to search when looking for test support files.

       _S_e_a_r_c_h___P_a_t_h___E_x_e_c_u_t_a_b_l_e
               This substitution is replaced by a colon separated list of
               absolute paths to search when looking for executable support
               files (library files and sub-commands).

       Most of the time _$_S_e_a_r_c_h___P_a_t_h___E_x_e_c_u_t_a_b_l_e are exactly the same.
       However, during ``aegis -t -bl'' they will be different, with
       _$_S_e_a_c_h___P_a_t_h starting at the development directory (the test being run)
       and _$_S_e_a_c_h___P_a_t_h___E_x_e_c_u_t_a_b_l_e starting at the baseline (the executable
       being run).

   TTeesstt RReessuulltt CCooddeess
       As each test is run (via the _t_e_s_t___c_o_m_m_a_n_d field in the project _c_o_n_f_i_g
       file), aegis determines whether the test succeeded or failed by looking
       at its exit status.  This exit status is mostly as expected for UNIX
       commands.

       Success
           A test should exit 0 to indicate success, i.e. that the specific
           function under test worked as expected.

       Failure
           A test should exit 1 to indicate failure, i.e. that the specific
           function under test did not work as expected.

       No Result
           A test should exit 2 to indicate no result, _i_._e_. that the specific
           function under test could not be exercised because something else
           went wrong.  For example, running out of disk space when creating
           the test input files in the _/_t_m_p directory.

       Actually, any exit code other than 0 or 1 will be interpreted as ``no
       result''.  However, always using 0, 1 or 2 means that if a new result
       code is required by a later release of aegis, your existing tests will
       continue to work.

TTEESSTT CCOORRRREELLAATTIIOONNSS
       The ``aegis -Test -SUGgest'' command may be used to have aegis suggest
       suitable regression tests for your change, based on the source files in
       your change.  This automatically focuses testing effort to relevant
       tests, reducing the number of regression tests necessary to be
       confident that you have not introduced a bug.

       The test correlations are generated by the ``aegis -Integrate_Pass''
       command, which associates each test in the change with each source file
       in the change.  Thus, each source file accumulates a list of tests
       which have been associated with it in the past.  This is not as exact
       as code coverage analysis, but is a reasonable approximation in
       practice.

       The _a_e_c_p(1) and _a_e_n_f(1) commands are used to associate files with a
       change.  While they do not actively perform the association, these are
       the files used by _a_e_i_p_a_s_s(1) and _a_e_t(1) to determine which source files
       are associated with which tests.

   TTeesstt CCoorrrreellaattiioonn AAccccuurraaccyy
       Assuming that the testing correlations are accurate and that the tests
       are evenly distributed across the function space, there will be a less
       than _1_/_n_u_m_b_e_r chance that a relevant test has not been run by the
       ``aegis -Test -SUGgest _n_u_m_b_e_r'' command.  A small amount of noise is
       added to the test weighting, so that unexpected things are sometimes
       tested, and the same tests are not run every time.

       Test correlation accuracy can be improved by ensuring that:

       +o Each change should be strongly focused, with no gratuitous file
         inclusions.  This avoids spurious correlations.

       +o Each item of new functionality should be added in an individual
         change, rather than several together.  This strongly correlates tests
         with functionality.

       +o Each bug should be fixed in an individual change, rather than several
         together.  This strongly correlates tests with functionality.

       +o Test correlations will be lost if files are moved.  This is because
         correlations are by name.

       The best way for tests to correlate accurately with source files is
       when a change contains a test and exactly those files relating to the
       functionality under test.  Too many spurious files will weaken the
       usefulness of the testing correlations.

OOPPTTIIOONNSS
       The following options are understood:

       --AAUUTTOOmmaattiicc
               This option may be used to specify automatic tests.  Automatic
               tests require no human assistance.

       --BBaasseeLLiinnee
               This option may be used to specify that the project baseline is
               the subject of the command.

       --BBAAssee__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the base of the source tree.  See
               _a_e_u_c_o_n_f(5) for the corresponding user preference.

       --CCUUrrrreenntt__RREEllaattiivvee
               This option may be used to cause relative filenames to be
               considered relative to the current directory.  This is usually
               the default.  See _a_e_u_c_o_n_f(5) for the corresponding user
               preference.

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --FFOOrrccee  This option may be used to specify that all tests should be
               run, even if the status of the last test run indicates that
               there is no need to run a specific test.

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       --IINNDDeeppeennddeenntt
               This option is used to specify that the test is to be run
               independent of any particular change.  If no tests are named,
               all tests in the baseline will be run.

       --LLiisstt
               This option may be used to obtain a list of suitable subjects
               for this command.  The list may be more general than expected.

       --MMAANNuuaall This option may be used to specify manual tests.  Manual tests
               require some human intervention,  e.g.: confirmation of some
               screen behavior (X11, for instance), or some user action,
               "unplug ethernet cable now".

       --NNoott__LLooggggiinngg
               This option may be used to disable the automatic logging of
               output and errors to a file.  This is often useful when several
               aegis commands are combined in a shell script.

       --PPEErrsseevveerree
               This option may be used to specify that all tests should be
               run, even if some fail.  Defaults to the user's
               _p_e_r_s_e_v_e_r_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for more
               information.

       --NNoo__PPEErrsseevveerree
               This option may be used to specify that the test run should
               stop after the first failure.  Defaults to the user's
               _p_e_r_s_e_v_e_r_e___p_r_e_f_e_r_e_n_c_e if not specified, see _a_e_u_c_o_n_f(5) for more
               information.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       --PPRROOGGrreessss
               This option may be used to specify that progress messages
               should be issued before each test run or before each batch test
               run in case _b_a_t_c_h___t_e_s_t___c_o_m_m_a_n_d field specified in project
               _c_o_n_f_i_g file (see _a_e_u_c_o_n_f(5) for more information).

       --NNoo__PPRROOGGrreessss
               This option may be used to specify that progress messages
               should be suppressed.  This is the default.

       --RREEGGrreessssiioonn
               This option is used to specify that the regression test suite
               is to be run.  The regression test suite consists of all tests
               in the baseline which do not appear in the change.  It is an
               error if there are no regression tests.  You may not name tests
               on the command line when using the -REGression option.  You may
               name individual tests to be run on the command line, without
               using the -REGression option; if they are not part of the
               change, the tests of the same name in the baseline will be run.

       --SSUUGGggeesstt [ _n_u_m_b_e_r ]
               The ``_a_e_g_i_s _-_I_n_t_e_g_r_a_t_e___P_a_s_s'' command collects test correlation
               statistics when changes are integrated.  This option may be
               used to request that aegis suggest which tests should be run,
               using these testing correlations.  If no number is specified,
               10 tests will be suggested.  This option implies the
               --RREEGGrreessssiioonn option.

       --SSUUGGggeesstt__NNooiissee _n_u_m_b_e_r
               This option may be used to control the amount of noise injected
               into the test selection performed by the --SSUUGGggeesstt option.  The
               number is a percentage of noise to be injected.  Defaults to 10
               if not specified.  The injection of noise ensures that a
               variety of tests are run on subsequent runs, and also some from
               left-field as a sanity check.

       --TTEERRssee
               This option may be used to cause listings to produce the bare
               minimum of information.  It is usually useful for shell
               scripts.

       --VVeerrbboossee
               This option may be used to cause aegis to produce more output.
               By default aegis only produces output on errors.  When used
               with the --LLiisstt option this option causes column headings to be
               added.

       --WWaaiitt   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified, see
               _a_e_u_c_o_n_f(5) for more information.

       --NNoo__WWaaiitt
               This option may be used to require Aegis commands to emit a
               fatal error if access locks cannot be obtained immediately.
               Defaults to the user's _l_o_c_k___w_a_i_t___p_r_e_f_e_r_e_n_c_e if not specified,
               see _a_e_u_c_o_n_f(5) for more information.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aet 'aegis -t \!* -v'
       sh$     aet(){aegis -t "$@" -v}

EERRRROORRSS
       It is an error if the change is not in one of the _b_e_i_n_g _d_e_v_e_l_o_p_e_d or
       _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d states.
       It is an error if the change is not assigned to the current user.
       It is an error if your have no relevant tests and no relevant
       exemption.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_b(1)  build a change

       _a_e_c_a(1) modify the attributes of a change

       _a_e_d_b(1) begin development of a change

       _a_e_i_b(1) begin integration of a change

       _a_e_n_t(1) add a new test to a change

       _a_e_c_p(1) copy an existing test into a change

       _a_e_p_c_o_n_f(5)
               project configuration file format

       _a_e_u_c_o_n_f(5)
               user configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aetar(1)                                                              aetar(1)



NNAAMMEE
       aetar - remotely distribute a change via tar

SSYYNNOOPPSSIISS
       aaeettaarr --SSeenndd [ _o_p_t_i_o_n...  ]
       aaeettaarr --RReecceeiivvee [ _o_p_t_i_o_n...  ]
       aaeettaarr --LLiisstt [ _o_p_t_i_o_n...  ]
       aaeettaarr --HHeellpp
       aaeettaarr --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_t_a_r command is used to send and receive change sets via _t_a_r(1) to
       facilitate geographically distributed development.

       The basic function is to reproduce a change, so a command like
              aetar -send | aetar -receive
       may be used to clone a change, though less efficiently than _a_e_c_l_o_n_e(1).
       The file format used is an ordinary _g_z_i_p(1) compressed _t_a_r(1) archive.

SSEENNDD
       The send variant takes a specified change, or baseline, and constructs
       a distribution package containing all of the source file contents.  No
       change meta-data is included.

       It is not necessary for the recipient to have the _a_e_t_a_r(1) command.  It
       is possible to use the regular _t_a_r _x_z_f command to extract the files
       from the archive.

   OOppttiioonnss
       The following options are understood by the send variant:

       --BBaasseeLLiinnee
               This option may be used to specify the source of a project,
               rather than a change.

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --CCOOmmpprreessss
               This option may be used to specify that the output is to be
               compressed.  This is the default.

       --NNoo__CCOOmmpprreessss
               This option may be used to specify that the output is not to be
               compressed.

       --DDEELLttaa _n_u_m_b_e_r
               This option may be used to specify a particular delta in the
               project's history to copy the file from, rather than the most
               current version.  If the delta has been given a name (see
               _a_e_d_n(1) for how) you may use a delta name instead of a delta
               number.  It is an error if the delta specified does not exist.
               Delta numbers start from 1 and increase; delta 0 is a special
               case meaning ``when the branch started''.

       --DDEELLttaa__DDaattee _s_t_r_i_n_g
               This option may be used to specify a particular date and time
               in the project's history to copy the file from, rather than the
               most current version.  It is an error if the string specified
               cannot be interpreted as a valid date and time.  Quote the
               string if you need to use spaces.

       --EEnnttiirree__SSoouurrccee
               This option may be used to send the entire source of the
               project, as well as the change source files.  This is the
               default.

       --PPaarrttiiaall__SSoouurrccee
               This option may be used to send only source files of a change.

       --OOuuttppuutt _f_i_l_e_n_a_m_e
               This option may be used to specify the output file.  The output
               is sent to the standard output by default.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

RREECCEEIIVVEE
       The receive variant takes a tarball and creates an Aegis change (see
       _a_e_n_c(1)) to implement the change within.  Files are added to the change
       (see _a_e_n_f(1), _a_e_c_p(1), _a_e_r_m(1), _a_e_n_t(1)) and then the file contents are
       unpackaged into the development directory.

       It is not necessary for the sender to have the _a_e_t_a_r(1) command.  It is
       possible to use the regular _t_a_r _c_z_f command to create the the tarball.
       You may want to use the _t_a_r_d_y(1) command to manipulate the filenames
       before extraction.

   FFiillee NNaammeess
       It is common for tar files generated to distribute open source projects
       to contain a path prefix.

       --RReemmoovvee__PPaatthh__PPrreeffiixx _s_t_r_i_n_g
               This option may be used to explicitly specify path prefixes to
               be removed, if present.  It may be specified more than once.

       If you have a complex project directory structure, from time to time
       people may send you tarballs relative to a sub-directory, rather than
       relative to the project root.

       --AAdddd__PPaatthh__PPrreeffiixx _s_t_r_i_n_g
               This option may be used to specify the path of a project sub-
               directory in which to apply the tarball.

   NNoottiiffiiccaattiioonn
       The _a_e_t_a_r command invokes various other Aegis commands.  The usual
       notifications that these commands would issue are issued.

   OOppttiioonnss
       The following options are understood by the receive variant:

       --CChhaannggee _n_u_m_b_e_r
               This option may be used to choose the change number to be used,
               otherwise one will be chosen automatically.

       --DDEELLttaa _n_u_m_b_e_r
               This option may be used to specify a particular delta in the
               project's history to copy the file from, just as for the
               _a_e_c_p(1) command.  You may also use a delta name instead of a
               delta number.

       --DDIIRReeccttoorryy _p_a_t_h
               This option may be used to specify which directory is to be
               used.  It is an error if the current user does not have
               appropriate permissions to create the directory path given.
               This must be an absolute path.

               Caution: If you are using an automounter do not use `pwd` to
               make an absolute path, it usually gives the wrong answer.

       --FFiillee _f_i_l_e_n_a_m_e
               Read the change set from the specified file.  The default is to
               read it from the standard input.  The filename `-' is
               understood to mean the standard input.

               If your system has _l_i_b_c_u_r_l(3), and Aegis was configured to use
               it at compile time (this is the default if it is available) you
               will also be able to specify a Uniform Resource Locator (URL)
               in place of the file name.  The relevant data will be
               downloaded.  (The --VVeerrbboossee option will provide a progress bar.)

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

   SSeeccuurriittyy
       Downloading a tarball and automatically committing it to the baseline
       without checking it would be a recipe for disaster.  A number of
       safeguards are provided:

       +o The file sare unpacked into a new change.  You need to edit the
         change description.  You need to uncopy unchanged files.  You need to
         difference the change.  You need to build and test the change.  This
         ensures that a local reviewer validates the change before it is
         committed, preventing accidental or malicious damage.

       +o The use of authentication and encryption systems, such as PGP and
         GPG, are encouraged.  However, it is expected that this processing
         will occur after _a_e_t_a_r _-_-_s_e_n_d has constructed the package and before
         _a_e_t_a_r _-_-_r_e_c_e_i_v_e examines and acts on the package.  Verification of
         the sender is the surest defense against trojan horses.

       +o Automatic sending and receiving of packages is supported, but not
         implemented within the aetar command.  It is expected that the aetar
         command will be used within shell scripts customized for your site
         and its unique security requirements.  See the Aegis User Guide for
         several different ways to do this.

       +o The more you use Aegis' test management facilities (see _a_e_n_t(1) and
         _a_e_t(1)) the harder it is for an inadequate change to get into the
         baseline.

LLIISSTT
       The list variant can be used to list the contents of a tarball without
       actually unpacking it first.

   OOppttiioonnss
       The following options are understood by the list variant:

       --FFiillee _f_i_l_e_n_a_m_e
               Read the change set from the specified file.  The default is to
               read it from the standard input.  The filename `-' is
               understood to mean the standard input.

               If your system has _l_i_b_c_u_r_l(3), and Aegis was configured to use
               it at compile time (this is the default if it is available) you
               will also be able to specify a Uniform Resource Locator (URL)
               in place of the file name.  The relevant data will be
               downloaded.  (The --VVeerrbboossee option will provide a progress bar.)

       --OOuuttppuutt _f_i_l_e_n_a_m_e
               This option may be used to specify the output file.  The output
               is sent to the standard output by default.  Only useful with
               the -List option.

OOPPTTIIOONNSS
       The following options to this command haven't been mentioned yet:

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_t_a_r program.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_t_a_r are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

FFIILLEE FFOORRMMAATT
       The file format re-uses existing formats, rather than introduce
       anything new.  This means it is possible to extract the contents of a
       package even when aetar is unavailable.

       +o The source files and other information is stored as a normal Unix
         _t_a_r(1) archive.

       +o On sending, the tarball is compressed using the GNU gzip format.
         Typically primary source files are ASCII text, resulting in
         significant compression.  (This is optional.)
         On receiving, if the tarball is compressed it will be automagically
         uncompressed, detection is automatic, you do not need to do this
         yourself.

EEXXIITT SSTTAATTUUSS
       The _a_e_t_a_r command will exit with a status of 1 on any error.  The _a_e_t_a_r
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

CCOOPPYYRRIIGGHHTT
       aetar version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aetar program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_t_a_r _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_t_a_r _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis -VERSion(1)                                            aegis -VERSion(1)



NNAAMMEE
       aegis -VERSion - give version information

SSYYNNOOPPSSIISS
       aaeeggiiss --VVEERRSSiioonn [ _i_n_f_o_-_n_a_m_e ]
       aaeeggiiss --VVEERRSSiioonn --HHeellpp

DDEESSCCRRIIPPTTIIOONN
       The _a_e_g_i_s _-_V_E_R_S_i_o_n command is used to give version information and
       conditions of use.

       There are a number of possible _i_n_f_o_-_n_a_m_es, as follow (abbreviations as
       for command line options):

       Copyright
               The copyright notice for the aegis program.  Version
               information will also be printed.  This is the default.

       Redistribution
               Print the conditions of use and redistribution.

       Warranty
               Print the limited warranty.

OOPPTTIIOONNSS
       The following options are understood:

       --HHeellpp
               This option may be used to obtain more information about how to
               use the _a_e_g_i_s program.

       All options may be abbreviated; the abbreviation is documented as the
       upper case letters, all lower case letters and underscores (_) are
       optional.  You must use consecutive sequences of optional letters.

       All options are case insensitive, you may type them in upper case or
       lower case or a combination of both, case is not important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj" will not
       be understood, because consecutive optional characters were not
       supplied.

       Options and other command line arguments may be mixed arbitrarily on
       the command line, after the function selectors.

       The GNU long option names are understood.  Since all option names for
       _a_e_g_i_s are long, this means ignoring the extra leading '-'.  The
       "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

RREECCOOMMMMEENNDDEEDD AALLIIAASS
       The recommended alias for this command is
       csh%    alias aev 'aegis -vers \!*'
       sh$     aev(){aegis -vers "$@"}

EERRRROORRSS
       It is an error if the _i_n_f_o_-_n_a_m_e given is unknown.

EEXXIITT SSTTAATTUUSS
       The _a_e_g_i_s command will exit with a status of 1 on any error.  The _a_e_g_i_s
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aexml(1)                                                              aexml(1)


NNAAMMEE
       aexml - Aegis database to XML

SSYYNNOOPPSSIISS
       aaeexxmmll [ _o_p_t_i_o_n...  ] _l_i_s_t_n_a_m_e
       aaeexxmmll --HHeellpp
       aaeexxmmll --LLiisstt
       aaeexxmmll --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
       The _a_e_x_m_l command is used to extract portions of Aegis' database in XML
       format.

   LLiisstt NNaammeess
       The following list names may be given

       Change_Files
               Internal change file state.  See _a_e_f_s_t_a_t_e(5) for structure.

       Change_State
               Internal change state.  See _a_e_c_s_t_a_t_e(5) for structure.

       Projects
               List of projects.  See _a_e_g_s_t_a_t_e(5) for structure.

       Project_Change_State
               Internal project change state.  See _a_e_c_s_t_a_t_e(5) for structure.

       Project_Config_File
               The project config file.  See _a_e_p_c_o_n_f(5) for structure.

       Project_Files
               Internal project file state.  See _a_e_f_s_t_a_t_e(5) for structure.

       Project_State
               Internal project state.  See _a_e_p_s_t_a_t_e(5) for structure.

       The abbreviations foe the list names follows the same rules as for
       command line options.

OOPPTTIIOONNSS
       The following options are understood:


       --LLiisstt
               This option may be used to obtain a list of suitable
               subjects for this command.  The list may be more general
               than expected.

       --HHeellpp
               This option may be used to obtain more information about
               how to use the _a_e_x_m_l program.

       All options may be abbreviated; the abbreviation is documented
       as the upper case letters, all lower case letters and
       underscores (_) are optional.  You must use consecutive
       sequences of optional letters.

       All options are case insensitive, you may type them in upper
       case or lower case or a combination of both, case is not
       important.

       For example: the arguments "-project, "-PROJ" and "-p" are all
       interpreted to mean the --PPrroojjeecctt option.  The argument "-prj"
       will not be understood, because consecutive optional characters
       were not supplied.

       Options and other command line arguments may be mixed
       arbitrarily on the command line, after the function selectors.

       The GNU long option names are understood.  Since all option
       names for _a_e_x_m_l are long, this means ignoring the extra leading
       '-'.  The "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood.

EEXXIITT SSTTAATTUUSS
       The _a_e_x_m_l command will exit with a status of 1 on any error.
       The _a_e_x_m_l command will only exit with a status of 0 if there are
       no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may
       affect this command.

CCOOPPYYRRIIGGHHTT
       aexml version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
       1999, 2000, 2001, 2002, 2003, 2004 Peter Miller; All rights
       reserved.

       The aexml program comes with ABSOLUTELY NO WARRANTY; for details
       use the '_a_e_x_m_l _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software
       and you are welcome to redistribute it under certain conditions;
       for details use the '_a_e_x_m_l _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
tkaeca(1)                                                            tkaeca(1)



NNAAMMEE
       tkaeca - GUI interface for aeca, using TCL/TK

SSYYNNOOPPSSIISS
       ttkkaaeeccaa

DDEESSCCRRIIPPTTIIOONN
       The _t_k_a_e_c_a command is used to provide a GUI interface to _a_e_c_a(1).  Its
       use should be self-evident to anyone familiar with Aegis.

       The top line of the screen contains button for selecting the project
       and the change.  They will be defaulted whenever possible, using the
       usual Aegis defaulting rules.  Click on the buttons to obtain a pick
       list if you want to change; then double-click an item to select it.  (I
       would have used tk_optionMenu, but it doesn't have a scroll bar, even
       when all the items don't fit on the screen.)

       The middle section contains text entry areas, for editing the
       _b_r_i_e_f___d_e_s_c_r_i_p_t_i_o_n and _d_e_s_c_r_i_p_t_i_o_n fields of the change attributes.  The
       text wraps in a natural way, both here and in (say) the ``_t_k_a_e_c_a _-_l_i_s_t
       _c_h_a_n_d _d_e_t_a_i_l_s'' listing, so only use newlines to indicate end-of-
       paragraph.

       The lower section contains two boxes.  The first is the testing
       required for the change - select as many or as few as is appropriate.
       The second a set of radio buttons to select the change cause - pick
       one.

       The ``OK'' and ``Cancel'' buttons do what you expect.  The cancel
       button simply quits.  The OK button runs the _a_e_c_a(1) command - if
       anything goes wrong (_e_._g_. asking for testing exemptions you can't have)
       then the error message will be displayed in the message area at the
       bottom of the window.

OOPPTTIIOONNSS
       There are no command line options.  It is best to run this command in
       the background.

EEXXIITT SSTTAATTUUSS
       The _t_k_a_e_c_a command will exit with a status of 1 on any error.  The
       _t_k_a_e_c_a command will only exit with a status of 0 if there are no
       errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_c_a(1) View and edit change attributes, from the command line.

       _t_k_a_e_g_i_s(1)
               GUI interface for Aegis, using TCL/TK

CCOOPPYYRRIIGGHHTT
       tkaeca version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The tkaeca program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_t_k_a_e_c_a _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_t_k_a_e_c_a _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
tkaegis(1)                                                          tkaegis(1)



NNAAMMEE
       tkaegis - GUI interface for Aegis, using TCL/TK

SSYYNNOOPPSSIISS
       ttkkaaeeggiiss

DDEESSCCRRIIPPTTIIOONN
       The _t_k_a_e_g_i_s command is used to provide a GUI interface to Aegis.  Its
       use should be self-evident to anyone familiar with Aegis.

       There are some areas where tkaegis is still missing functionality;
       these are primarily related to project and change attributes that are
       not yet included in the dialogs, and also issues such as configuring
       the change and history tools, the architectures, and so on.

IINNSSTTAALLLLAATTIIOONN
       First, you will need Tcl/Tk installed, and will need to modify the path
       in the first line of tkaegis to reflect the path of your Tk wish
       interpreter.  Hopefully, the _._/_c_o_n_f_i_g_u_r_e script took care of this.

       Next, you may need to modify some important variables that occur
       immediately below these comments, to specify the architecture, project
       base directory, and the editor you are using (if you leave that blank,
       tkaegis will try to determine the editor to use from the EDITOR
       environment variable; if that fails, it will fall back to emacs or vi).

NNAAVVIIGGAATTIIOONN
       When you run tkaegis, a window will appear with a menu at the top.  The
       window is used to display the output of aegis commands and some other
       feedback.  The menu will initially have only two items, Project and
       Help.  At this stage the Help menu only has an About dialog box.

       The Project menu will allow you to create new projects, select from
       your existing projects, clear the contents of the feedback window, or
       exit the program.  If you create a new project, a dialog box will
       appear allowing you to enter the project name, directory, and initial
       branch number.  When you press OK the project will be created and
       should then appear in the Project menu.

       If you select an existing project, a new option will be added to the
       Project menu, allowing you to delete the project.  A Branch menu will
       also appear.  This is similar to the Project menu, but allows you to
       create, delete, or select project branches.

       If you select a branch in the branch menu, a Role menu will appear.
       This will allow you to choose the role that you will be playing, namely
       one of administrator, developer, reviewer, or integrator.  tkaegis uses
       your UNIX login name and the names of the roleplayers associated with
       the project and branch, to determine which of the roles it will allow
       you to choose.  If you create a new project, only the administrator
       role will appear.

       Selecting a role will put you in a `mode', which will determine what
       other menus appear and what you can do next.  Each mode will now be
       described in turn, by giving a brief description of the role-specific
       menu hierarchy.  Following the name of each menu item is the
       corresponding aegis command, where applicable.

AADDMMIINNIISSTTRRAATTOORR MMOODDEE
       In this mode, you can modify the staff and roles associated with the
       branch, and create, remove, and change the attributes of change
       requests, and view all the change requests.

       Admin:

           Edit Branch Attributes (aepa) -
                   Change the attributes for the branch

       Staff:

           Administrators:

               Add (aena) -
                       Add an administrator for the branch

               View (ael a) -
                       View the administrators for the branch

               Remove (aera) -
                       Remove an administrator for the branch

           Developers:

               Add (aend) -
                       Add a developer for the branch

               View (ael d) -
                       View the developers for the branch

               Remove (aerd) -
                       Remove a developer for the branch

           Reviewers:

               Add (aenrv) -
                       Add a reviewer for the branch

               View (ael r) -
                       View the reviewers for the branch

               Remove (aerrv) -
                       Remove a reviewer for the branch

           Integrators:

               Add (aeni) -
                       Add an integrator for the branch

               View (ael i) -
                       View the integrators for the branch

               Remove (aeri) -
                       Remove an integrator for the branch

           Change:

               Add New Change (aenc) -
                       Add a new change request

               New Change Undo (aencu) -
                       Undo the addition of a change request

               Edit Change Attributes (aeca) -
                       Modify the attributes of a change request

               View Changes (ael c) -
                       View the set of changes

DDEEVVEELLOOPPEERR MMOODDEE
       This mode is used by developers.  When entering this mode, the Develop
       menu will appear, but no others.  A change must be selected after which
       the other menus will appear.  If there is only one change awaiting
       development, this will be auto-selected.

       Develop:

           View Changes (ael c) -
                   View all the change requests

           Begin Change (aedb) -
                   Start work on a new change

           Continue Change -
                   Continue work on a change in development

           View Differences (aediff) -
                   Show all the diffs for this change

           Abort Change (aedbu) -
                   Abort working on the change

           End Change (aede) -
                   (Attempt to) end working on the change

           Resume Change (aedeu) -
                   Resume work on a change awaiting review

       File:

           Edit Files -
                   Allow files to be loaded into an editor

           Add New File (aenf) -
                   Add a new file to the project

           Discard New File (aenfu) -
                   Discard a newly added file

           Remove Existing File (aerm) -
                   Discard a previously existing file

           Restore Existing File (aermu) -
                   Undo discard of a previously existing file

           Change Existing File (aecp) -
                   Allow an existing file to be edited

           Undo Changes to Existing File (aecpu) -
                   Lose changes to an existing file

       Build:

           Build Project (aeb) -
                   Attempt to build the project

       Test:

           Add New Test Script (aent) -
                   Add a new test script to the project

           Discard New Test Script (aentu) -
                   Remove a new test script

           Run New Tests (aet) -
                   Run the new tests

           Run Regression Tests (aet -reg) -
                   Run the old tests

           Run Baseline Test (aet -bl) -
                   Run the baseline test

RREEVVIIEEWWEERR MMOODDEE
       In this mode you are able to review changes.

       Review:

           View Changes (ael c) -
                   View all the changes

           Begin Review (aerb) -
                   Start reviewing a change

           Abort Review (aerbu) -
                   Abort reviewing a change

           Pass (aerpass) -
                   Pass a change review

           Fail (aerfail) -
                   Fail a change review

           Undo Pass (aerpu) -
                   Undo a previously passed review

IINNTTEEGGRRAATTOORR MMOODDEE
       In this mode you can perform integration activities.

       Integrate:

           View Changes (ael c) -
                   View all the changes

           Start Integration (aeib) -
                   Start integrating a change

           Resume Integration -
                   Resume an integration in progress

           Cancel Integration (aeibu) -
                   Cancel an integration

           View Differences (aediff) -
                   Show the file differences for the change

           Build (aeb) -
                   Build the project

           New Tests (aet) -
                   Run the new tests

           Baseline Test (aet -bl) -
                   Run the baseline test

           Regression Test (aet -reg) -
                   Run the regression tests

           Pass (aeipass) -
                   Pass the integration

           Fail (aeifail) -
                   Fail the integration

SSEEEE AALLSSOO
       _t_k_a_e_c_a(1)
               GUI interface for the _a_e_c_a(1) command.

       _t_k_a_e_n_c(1)
               GUI interface for the _a_e_n_c(1) command.

       _t_k_a_e_p_a(1)
               GUI interface for the _a_e_p_a(1) command.

CCOOPPYYRRIIGGHHTT
       tkaegis version 4.16
       Copyright (C) 1995, 1999 Graham Wheeler

AAUUTTHHOORR
       Graham Wheeler <gram@cdsec.com>
tkaenc -Glup(1)                                                tkaenc -Glup(1)



       Citadel Data Security

NNAAMMEE
       tkaenc - GUI interface for aenc, using TCL/TK

SSYYNNOOPPSSIISS
       ttkkaaeenncc

DDEESSCCRRIIPPTTIIOONN
       The _t_k_a_e_n_c command is used to provide a GUI interface to _a_e_n_c(1).  Its
       use should be self-evident to anyone familiar with Aegis.

       The top line of the screen contains button for selecting the project.
       It will be defaulted using the usual Aegis defaulting rules.  Click on
       the buttons to obtain a pick list if you want to change it; then
       double-click an item to select it.  (I would have used tk_optionMenu,
       but it doesn't have a scroll bar, even when all the items don't fit on
       the screen.)

       The middle section contains text entry areas, for editing the
       _b_r_i_e_f___d_e_s_c_r_i_p_t_i_o_n and _d_e_s_c_r_i_p_t_i_o_n fields of the change attributes.  The
       text wraps in a natural way, both here and in (say) the ``_t_k_a_e_n_c _-_l_i_s_t
       _c_h_a_n_g_e___d_e_t_a_i_l_s'' listing, so only use newlines to indicate end-of-
       paragraph.

       The lower section contains three boxes.  The first is the testing
       required for the change - select as many or as few as is appropriate.
       The second a set of radio buttons to select the change cause - pick
       one.

       The third box is whether to begin development immediately (it will also
       run the _a_e_d_b(1) command), or whether to leave the change in _a_w_a_i_t_i_n_g
       _d_e_v_e_l_o_p_m_e_n_t.

       The ``OK'' and ``Cancel'' buttons do what you expect.  The cancel
       button simply quits.  The OK button runs the _a_e_n_c(1) command - if
       anything goes wrong (_e_._g_. asking for testing exemptions you can't have)
       then the error message will be displayed in the message area at the
       bottom of the window.

       The number of the change will be printed on a message on the standard
       output, just as for a normal _a_e_n_c(1) command.

OOPPTTIIOONNSS
       There are no command line options.

EEXXIITT SSTTAATTUUSS
       The _t_k_a_e_n_c command will exit with a status of 1 on any error.  The
       _t_k_a_e_n_c command will only exit with a status of 0 if there are no
       errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_n_c(1) Create new changes from the command line.

       _a_e_d_b(1) Begin development of changes from the command line.

       _t_k_a_e_g_i_s(1)
               GUI interface for Aegis, using TCL/TK

CCOOPPYYRRIIGGHHTT
       tkaenc version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The tkaenc program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_t_k_a_e_n_c _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_t_k_a_e_n_c _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
tkaepa(1)                                                            tkaepa(1)



NNAAMMEE
       tkaepa - GUI interface for aeca, using TCL/TK

SSYYNNOOPPSSIISS
       ttkkaaeeppaa

DDEESSCCRRIIPPTTIIOONN
       The _t_k_a_e_p_a command is used to provide a GUI interface to _a_e_p_a(1).  Its
       use should be self-evident to anyone familiar with project
       administration under Aegis.

       The top line of the screen contains button for selecting the project
       The project will be defaulted whenever possible, using the usual Aegis.
       defaulting rules.  Click on the buttons to obtain a pick list if you
       want to change; then double-click an item to select it.

       There is a text entry areas for editing the _d_e_s_c_r_i_p_t_i_o_n attribute.  The
       lower section contains a number of checks boxes for the various
       attributes.

       The ``OK'' and ``Cancel'' buttons do what you expect.  The cancel
       button simply quits.  The OK button runs the _a_e_p_a(1) command - if
       anything goes wrong the error message will be displayed in the message
       area at the bottom of the window.

OOPPTTIIOONNSS
       There are no command line options.  It is best to run this command in
       the background.

EEXXIITT SSTTAATTUUSS
       The _t_k_a_e_p_a command will exit with a status of 1 on any error.  The
       _t_k_a_e_p_a command will only exit with a status of 0 if there are no
       errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_p_a(1) View and edit project attributes, from the command line.

       _t_k_a_e_g_i_s(1)
               GUI interface for Aegis, using TCL/TK

CCOOPPYYRRIIGGHHTT
       tkaepa version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The tkaepa program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_t_k_a_e_p_a _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_t_k_a_e_p_a _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
tkaer(1)                                                              tkaer(1)



NNAAMMEE
       tkaer - GUI tool for reviewing Aegis change sets, using TCL/TK

SSYYNNOOPPSSIISS
       ttkkaaeerr

DDEESSCCRRIIPPTTIIOONN
       The _t_k_a_e_r command is used to provide an easy and convenient way to
       review Aegis change sets. It provides a front-end to other tools which
       are used to view the modifications.

       Files in the change set are shown in one of four lists. The choice of
       list is based on the operation performed on the file by the change
       (create, modify, move or remove). Empty lists are not shown. The change
       details, as provided by _a_e_l(1) may be displayed by clicking on the
       ``Details'' button.

MMOODDIIFFIIEEDD AANNDD MMOOVVEEDD FFIILLEESS
       _t_k_d_i_f_f is used to show the differenceces between the change and
       baseline versions of modified and moved files. (In the case of moved
       files, the original name is used to access the baseline version.)

       Double-clicking button 1 on a file will show the differences between
       the change and the current branch baseline. Holding down button 3 will
       invoke a pop-up menu presenting the reviewer with a list of grandparent
       branches which also contain the file. This is particularly useful when
       rolling in branches.

NNEEWW AANNDD RREEMMOOVVEEDD FFIILLEESS
       New files are viewed by opening a new _x_t_e_r_m and using _v_i (in read-only
       mode) to display its contents. This method is also used for removed
       files, however it is the baseline version that is displayed (so that
       the reviewer can see what has been removed).

AADDDDIITTIIOONNAALL FFEEAATTUURREESS FFOORR RREEVVIIEEWWEERRSS..
       If the change is in the _b_e_i_n_g _r_e_v_i_e_w_e_d state, the reviewer may open the
       comments editor by clicking on the ``Comments'' button. These comments
       will be submitted should the reviewer decide that the review has
       failed. An outline of the files included in the change is automatically
       created.

       Once the review is complete, clicking the ``Finished'' button results
       in a dialog box which will allow the reviewer to pass or fail (via the
       _a_e_r_p_a_s_s(1) and _a_e_r_f_a_i_l(1) commands) the change. Alternatively, the
       reviewer may resume reviewing or quit, leaving the change state
       unmodified. If the change was not in the _b_e_i_n_g _r_e_v_i_e_w_e_d state, the
       ``Finished'' button simply causes _t_k_a_e_r to exit.

CCOONNFFIIGGUURRIINNGG TTKKAAEERR
       _t_k_a_e_r may be customised by the .tkaer file. This file is created by
       _t_k_a_e_r in the users home directory when it is first run. This newly
       created file contains the default configuration as described above,
       such as the choice of tools used in reviewing. The configuration file
       itself is a tcl script which is executed by the _t_k_a_e_r script using the
       _t_c_l ``source'' command. Each entry takes the form of a ``set''
       statement which adds an item to the pref array. Items currently
       supported are:


       pprreeff((ddiiffff__ccoommmmaanndd))
               This is the tool used to visually display the difference
               between a changes modified or moved file and the baseline
               version.

       pprreeff((vviieeww__ccoommmmaanndd))
               This is the tool used to visually display a new file or a
               removed files, prior contents. The default is _v_i(1)

       pprreeff((vviieeww__eeddiitt__ffoonntt))
               This is the font used by both the change details viewer and the
               review comments editor. Any available X11 font may be used.


OOPPTTIIOONNSS
       --CChhaannggee _n_u_m_b_e_r
               This option may be used to specify a particular change within a
               project.  See _a_e_g_i_s(1) for a complete description of this
               option.

       --PPrroojjeecctt _n_a_m_e
               This option may be used to select the project of interest.
               When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T
               environment variable is consulted.  If that does not exist, the
               user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project
               field (see _a_e_u_c_o_n_f(5) for more information).  If that does not
               exist, when the user is only working on changes within a single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

EEXXIITT SSTTAATTUUSS
       The _t_k_a_e_r command will exit with a status of 1 on any error.  The _t_k_a_e_r
       command will only exit with a status of 0 if there are no errors.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       See _a_e_g_i_s(1) for a list of environment variables which may affect this
       command.

SSEEEE AALLSSOO
       _a_e_r_p_a_s_s(1)
               pass review of a change

       _a_e_r_f_a_i_l(1)
               fail review of a change

       _t_k_a_e_g_i_s(1)
               GUI interface for Aegis, using TCL/TK

       _t_k_d_i_f_f  by John M. Klassa. TkDiff Home Page
               http://www.accurev.com/free/tkdiff

AAUUTTHHOORR
aecattr(5)                                                          aecattr(5)



       _t_k_a_e_r contributed by Scott Finneran <sfinneran@lucent.com>

NNAAMMEE
       aecattr - aegis change attributes file

DDEESSCCRRIIPPTTIIOONN
       A change attributes file is used to describe the modifiable portion of
       a change.

CCOONNTTEENNTTSS
       A change attributes file contains the following fields:

       description = string;
               This field contains a detailed description of the change.

       brief_description = string;
               This field contains a brief description of the change.

       cause = ( ... );
               This field describes the cause which motivated the change.

               external_bug
                       The change was created in response to a bug report from
                       outside the development team.  This repairs existing
                       functionality.

               external_enhancement
                       The change was created in response to an enhancement
                       request from outside the development team.  This adds
                       new functionality.

               external_improvement
                       The change was created in response to an improvement
                       request from outside the development team.  This
                       improves existing functionality.

               internal_bug
                       The change was created in response to a bug report from
                       inside the development team.  This repairs existing
                       functionality.

               internal_enhancement
                       The change was created in response to an enhancement
                       request from inside the development team.  This adds
                       new functionality.

               internal_improvement
                       The change was created in response to an improvement
                       request from inside the development team.  This
                       improves existing functionality.

               chain
                       This cause is where you have a fix to fix a fix;
                       tracking these is an interesting quality metric.

       test_exempt = boolean;
               This field is true if it is not necessary to test the change.
               It is, in general, desirable to test all changes, whether new
               functionality or a bug fix.  This is, however, a project
               management issue.

       test_baseline_exempt = boolean;
               This field is true if it is not necessary to test the change
               against the baseline before it is changed.  The test of the
               baseline is required to fail; this is to establish that the
               test has isolated the bug, and that the change has fixed that
               isolated bug.

       regression_test_exempt = boolean;
               This field is true if it is not necessary to perform a full
               regression test on the change.  If absent, defaults to true for
               all causes except improvements.

       architecture = [ string ];
               This field is a list of names of system and machine
               architectures on which the change must successfully build and
               test.

       copyright_years = [ integer ];
               This field details the years in which the change was worked on.
               This field is present in trunk, branch and leaf nodes.

               As a change is edited, years in which the change was worked on
               accumulate in this field automatically.  Branches accumulate
               years as integrations occur.  You may need to manually edit
               this, though it should be rare.

       version_previous = string;
               This field records the "previous" version, mostly to simplify
               patch generation.  It is only meaningful for trunks and
               branches.  It is set automatically when a branch is started or
               integrated.

SSEEEE AALLSSOO
       _a_e_n_c(1) create a new change

       _a_e_c_a(1) modify the attributes of a change

       _a_e_g_i_s(5)
               aegis file format syntax

       _a_e_c_s_t_a_t_e(5)
               change state file format

       _a_e_p_a_t_t_r(5)
               project attributes file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aecstate(5)                                                        aecstate(5)



NNAAMMEE
       aecstate - aegis change state file

SSYYNNOOPPSSIISS
       _p_r_o_j_e_c_t/info/change/_[_0_-_9_]/_[_0_-_9_]_[_0_-_9_]_[_0_-_9_]

DDEESSCCRRIIPPTTIIOONN
       A change state file is used to store information about a change.  These
       files are created and maintained by aegis.  These files should not be
       edited by humans.  These files is owned by the project owner and group.

       The change number is at least 3 digits, zero padded if necessary.
       (More digits will be used if a project has a thousand or more changes
       in any one release, although this is rare.)  The files are spread
       across a directory tree, 100 per subdirectory, to improve the directory
       search times, and to avoid various systems' directory length
       limitations.

CCOONNTTEENNTTSS
       description = string;
               This field contains a detailed description of the change.

       brief_description = string;
               This field contains a brief description of the change.

       cause = ( ... );
               This field describes the cause which motivated the change.

               external_bug
                       The change was created in response to a bug report from
                       outside the development team.  This repairs existing
                       functionality.

               external_enhancement
                       The change was created in response to an enhancement
                       request from outside the development team.  This adds
                       new functionality.

               external_improvement
                       The change was created in response to an improvement
                       request from outside the development team.  This
                       improves existing functionality.

               internal_bug
                       The change was created in response to a bug report from
                       inside the development team.  This repairs existing
                       functionality.

               internal_enhancement
                       The change was created in response to an enhancement
                       request from inside the development team.  This adds
                       new functionality.

               internal_improvement
                       The change was created in response to an improvement
                       request from inside the development team.  This
                       improves existing functionality.

               chain
                       This cause is where you have a fix to fix a fix;
                       tracking these is an interesting quality metric.

       test_exempt = boolean;
               This field is true if it is not necessary to test the change.
               It is, in general, desirable to test all changes, whether new
               functionality or a bug fix.  This is, however, a project
               management issue.

       test_baseline_exempt = boolean;
               This field is true if it is not necessary to test the change
               against the baseline before it is changed.  The test of the
               baseline is required to fail; this is to establish that the
               test has isolated the bug, and that the change has fixed that
               isolated bug.

       regression_test_exempt = boolean;
               This field is true if it is not necessary to perform a full
               regression test on the change.  If absent, defaults to true for
               all causes except improvements.

       architecture = [ string ];
               This field is a list of names of system and machine
               architectures on which the change must successfully build and
               test.

       copyright_years = [ integer ];
               This field details the years in which the change was worked on.
               This field is present in trunk, branch and leaf nodes.

               As a change is edited, years in which the change was worked on
               accumulate in this field automatically.  Branches accumulate
               years as integrations occur.  You may need to manually edit
               this, though it should be rare.

       version_previous = string;
               This field records the "previous" version, mostly to simplify
               patch generation.  It is only meaningful for trunks and
               branches.  It is set automatically when a branch is started or
               integrated.

       state = ( ... );
               This field is used to describe what state the change is in.
               The state determines what operations may be performed on the
               change.

               awaiting_development
                       The change has been created, but has yet to be worked
                       on.

               being_developed
                       The change is being developed.

               awaiting_review
                       The change has been developed, and is waiting to be
                       review.  (Optional, controlled by the _d_e_v_e_l_o_p _e_n_d
                       _a_c_t_i_o_n project attribute.)

               being_reviewed
                       The change has been developed, and is being reviewed.
                       (Optional, controlled by the _d_e_v_e_l_o_p _e_n_d _a_c_t_i_o_n project
                       attribute.)

               awaiting_integration
                       The change has passed review, and is queued ready for
                       integration.

               being_integrated
                       The change is being integrated.

               completed
                       The change has been completed and is now part of the
                       baseline.  Changes in this state can not be reversed.

       given_test_exemption = boolean;
               This field is the value of test_exemption (see _a_e_c_a_t_t_r(5)) when
               the change was created.

       given_regression_test_exemption = boolean;
               This field is the value of regression_test_exemption (see
               _a_e_c_a_t_t_r(5)) when the change was created.

       delta_number = integer;
               This field records the delta number for this change.  It is
               only present if the change is in one of the _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d or
               _c_o_m_p_l_e_t_e_d states.

       minimum_integration = boolean;
               This field records whether the change was placed into the
               _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d state using the -minimum option (or that
               option was implicitly set due to a file being removed).  It is
               only present if the change is in the _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d state.

       project_file_command_sync = integer;
               This field records the last change integrated into the project.
               If it disagrees with the project, a 'project_file_command'
               (from pconf) needs to be executed at the next build.

       test_time = time;
               This field records the time the last successful _a_e_g_i_s _-_T_e_s_t
               command was run for all architectures.  It is only present in
               the _b_e_i_n_g___d_e_v_e_l_o_p_e_d and _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d states.

       test_baseline_time = time;
               This field records the time the last successful _a_e_g_i_s _-_T_e_s_t
               _-_B_a_s_e_L_i_n_e command was run for all architectures.  It is only
               present in the _b_e_i_n_g___d_e_v_e_l_o_p_e_d and _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d states.

       regression_test_time = time;
               This field records the time the last successful _a_e_g_i_s _-_T_e_s_t
               _-_R_E_G_r_e_s_s_i_o_n command was run for all architectures.  It is only
               present in the _b_e_i_n_g___d_e_v_e_l_o_p_e_d and _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d states.

       build_time = time;
               This field records the last time the last successful _a_e_g_i_s
               _-_B_u_i_l_d command was run for all architectures.  It is only
               present in the _b_e_i_n_g___d_e_v_e_l_o_p_e_d and _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d states.

       architecture_times = [{ ... }];
               This field records the time of various operations for each
               variant named in the _a_r_c_h_i_t_e_c_t_u_r_e field.  It is only present in
               the _b_e_i_n_g___d_e_v_e_l_o_p_e_d and _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d states.

               variant = string;
                       This field is one of the patterns named in the
                       _a_r_c_h_i_t_e_c_t_u_r_e field.

               node = string;
                       This field is the computer on which the command was run
                       which last changed this structure.

               test_time = time;
                       This field records the last time the last successful
                       _a_e_g_i_s _-_T_e_s_t command was run for this specific pattern
                       instance.

               test_baseline_time = time;
                       This field records the last time the last successful
                       _a_e_g_i_s _-_T_e_s_t _-_B_a_s_e_L_i_n_e command was run for this specific
                       pattern instance.

               regression_test_time = time;
                       This field records the last time the last successful
                       _a_e_g_i_s _-_T_e_s_t _-_R_E_G_r_e_s_s_i_o_n command was run for this
                       specific pattern instance.

               build_time = time;
                       This field records the last time the last successful
                       _a_e_g_i_s _-_B_u_i_l_d command was run for this specific pattern
                       instance.

       development_directory = string;
               This field is the absolute path of a change's development
               directory.  It is only present of the change is in a state
               between _b_e_i_n_g___d_e_v_e_l_o_p_e_d and _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d inclusive.

               However, branches are treated slightly differently to changes.
               The directory is relative to the root of the project tree, in
               order to facilitate moving the project without rewriting any of
               the database.  Note that its doesn't point to the branch
               baseline, but one level up; just as the project root doesn't
               point to the trunk baseline, but rather one level up.

       integration_directory = string;
               This field is the absolute path of the change's integration
               directory.  It is only present of the change is in the
               _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d state.

       history = [ { ... }, ... ];
               This field records the history of the change, in the form of
               state transitions.  The history records have the form

               when = time;
                       This field records the time the state transition
                       occurred.

               what = ( ... );
                       This field records what happened.  Valid value names
                       echo the various aegis functions.

               who = string;
                       This field records the user name of the user who caused
                       the state transition.

               why = string;
                       This field is optional.  It is a comment of some sort.
                       In the cases of _r_e_v_i_e_w___f_a_i_l and _i_n_t_e_g_r_a_t_e___f_a_i_l, this
                       field will contain why the change failed.

       branch = { ... };
               This field is only present for branches (long transactions).

               umask = integer;
                       File permission mode mask.  See _u_m_a_s_k(2) for more
                       information.  This value will always be OR'ed with 022,
                       because _a_e_g_i_s is paranoid.

               developer_may_review = boolean;
                       If this field is true, then a developer may review her
                       own change.  This is probably only a good idea for
                       projects of less than 3 people.  The idea is for as
                       many people as possible to critically examine a change.

                       Note that the _d_e_v_e_l_o_p___e_n_d___a_c_t_i_o_n field may not
                       contradict the _d_e_v_e_l_o_p_e_r___m_a_y___r_e_v_i_e_w field.  If
                       developers may not review their own work, then their
                       changes may not goto directly to the _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d
                       state (as this means much the same thing).

               developer_may_integrate = boolean;
                       If this field is true, then a developer may integrate
                       her own change.  This is probably only a good idea for
                       projects of less than 3 people.  The idea is for as
                       many people as possible to critically examine a change.

               reviewer_may_integrate = boolean;
                       If this field is true, then a reviewer may integrate a
                       change she reviewed.  This is probably only a good idea
                       for projects of less than 3 people.  The idea is for as
                       many people as possible to critically examine a change.

               developers_may_create_changes = boolean;
                       This field is true if developers may created changes,
                       in addition to administrators.  This tends to be a very
                       useful thing, since developers find most of the bugs.

               forced_develop_begin_notify_command = string;
                       This command is used to notify a developer that a
                       change requires developing; it is issued when a project
                       administrator uses an _a_e_d_b _-_U_s_e_r command to force
                       development of a change by a specific user.  All of the
                       substitutions described in _a_e_s_u_b(5) are available.
                       This field is optional.

                       Executed as: the new developer.  Current directory: the
                       development directory of the change for the new
                       developer.  Exit status: ignored.

               develop_end_notify_command = string;
                       This command is used to notify that a change is ready
                       for review.  It will probably use mail, or it could be
                       an in-house bulletin board.  This field is optional, if
                       not present no notification will be given.  This
                       command could also be used to notify other management
                       systems, such as progress and defect tracking.  All of
                       the substitutions described by _a_e_s_u_b(5) are available.

                       Executed as: the developer.  Current directory: the
                       development directory of the change.  Exit status:
                       ignored.

               develop_end_undo_notify_command = string;
                       This command is used to notify that a change had been
                       withdrawn from review for further development.  It will
                       probably use mail, or it could be an in-house bulletin
                       board.  This field is optional, if not present no
                       notification will be given.  This command could also be
                       used to notify other management systems, such as
                       progress and defect tracking.  All of the substitutions
                       described by _a_e_s_u_b(5) are available.

                       Executed as: the developer.  Current directory: the
                       development directory of the change.  Exit status:
                       ignored.

               review_begin_notify_command = string;
                       This command is used to notify that a review has begun.
                       It will probably use mail, or it could be an in-house
                       bulletin board.  This field is optional, if not present
                       no notification will be given.  This command could also
                       be used to notify other management systems, such as
                       progress and defect tracking.  All of the substitutions
                       described by _a_e_s_u_b(5) are available.

                       Executed as: the reviewer.  Current directory: the
                       development directory of the change.  Exit status:
                       ignored.

               review_begin_undo_notify_command = string;
                       This command is used to notify that a review is no
                       longer in progress, the reviewer has withdrawn.  It
                       will probably use mail, or it could be an in-house
                       bulletin board.  This field is optional, if not present
                       no notification will be given.  This command could also
                       be used to notify other management systems, such as
                       progress and defect tracking.  All of the substitutions
                       described by _a_e_s_u_b(5) are available.

                       Executed as: the reviewer.  Current directory: the
                       development directory of the change.  Exit status:
                       ignored.

               review_pass_notify_command = string;
                       This command is used to notify that a review has
                       passed.  It will probably use mail, or it could be an
                       in-house bulletin board.  This field is optional, if
                       not present no notification will be given.  This
                       command could also be used to notify other management
                       systems, such as progress and defect tracking.  All of
                       the substitutions described by _a_e_s_u_b(5) are available.

                       Executed as: the reviewer.  Current directory: the
                       development directory of the change.  Exit status:
                       ignored.

               review_pass_undo_notify_command = string;
                       This command is used to notify that a review has
                       passed.  It will probably use mail, or it could be an
                       in-house bulletin board.  This field is optional, if
                       not present no notification will be given.  This
                       command could also be used to notify other management
                       systems, such as progress and defect tracking.
                       Defaults to the same action as the
                       _d_e_v_e_l_o_p___e_n_d___n_o_t_i_f_y___c_o_m_m_a_n_d field.  All of the
                       substitutions described by _a_e_s_u_b(5) are available.

                       Executed as: the reviewer.  Current directory: the
                       development directory of the change.  Exit status:
                       ignored.

               review_fail_notify_command = string;
                       This command is used to notify that a review has
                       failed.  It will probably use mail, or it could be an
                       in-house bulletin board.  This field is optional, if
                       not present no notification will be given.  This
                       command could also be used to notify other management
                       systems, such as progress and defect tracking.  All of
                       the substitutions described by _a_e_s_u_b(5) are available.

                       Executed as: the reviewer.  Current directory: the
                       development directory of the change.  Exit status:
                       ignored.

               integrate_pass_notify_command = string;
                       This command is used to notify that an integration has
                       passed.  It will probably use mail, or it could be an
                       in-house bulletin board.  This field is optional, if
                       not present no notification will be given.  This
                       command could also be used to notify other management
                       systems, such as progress and defect tracking.  All of
                       the substitutions described by _a_e_s_u_b(5) are available.

                       Some compilers bury absolute path names into object
                       files and executables.  The renaming of the integration
                       directory to become the new baseline breaks these
                       paths.  This command is passed an environment variable
                       called AEGIS_INTEGRATION_DIRECTORY so that the
                       appropriate symlink may be placed, if desired.

                       Executed as: the project owner.  Current directory: the
                       new project baseline.  Exit status: ignored.

               integrate_fail_notify_command = string;
                       This command is used to notify that an integration has
                       failed.  It will probably use mail, or it could be an
                       in-house bulletin board.  This field is optional, if
                       not present no notification will be given.  This
                       command could also be used to notify other management
                       systems, such as progress and defect tracking.  All of
                       the substitutions described by _a_e_s_u_b(5) are available.

                       Executed as: the integrator.  Current directory: the
                       development directory of the change.  Exit status:
                       ignored.

               default_test_exemption = boolean;
                       This field contains what to do when a change is created
                       with no test exemption specified.

               history = [{ ... }];
                       This field contains a history of integrations for the
                       project.  Updated by each successful 'aegis
                       -Integrate_Pass' command.

                       delta_number = integer;
                               The delta number of the integration.

                       change_number = integer;
                               The number of the change which was integrated.

                       name = [ string ];
                               The names by which this delta is known.

               change = [integer];
                       The list of changes which have been created on this
                       branch to date.

               sub_branch = [integer];
                       The list of branches which have been created on this
                       branch to date.  This will be a subset of the above
                       (possibly empty, possibly complete, never larger).

               administrator = [string];
                       The list of administrators of the branch.

               developer = [string];
                       The list of developers of the branch.

               reviewer = [string];
                       The list of reviewers of the branch.

               integrator = [string];
                       The list of integrators of the branch.

               currently_integrating_change = integer;
                       The change currently being integrated.  Only one change
                       (within a branch) may be integrated at a time.  Only
                       set when an integration is in progress.

               default_development_directory = string;
                       The pathname of where to place new development
                       directories.  The pathname must be absolute.  This
                       field is only consulted if the field of the same name
                       in the user configuration file is not set.

               minimum_change_number = integer;
                       The minimum change number for _a_e_n_c_(_1_)_, if no change
                       number is specified.  This allows the low-numbered
                       change numbers to be used for branches later in the
                       project.  Defaults to 10 if not set, may not be less
                       than 1.

               reuse_change_numbers = boolean;
                       This controls whether the automatically selected
                       _a_e_n_c(1) change numbers ``fill in'' any gaps.  Defaults
                       to true if not set.

               minimum_branch_number = integer;
                       The minimum branch number for _a_e_n_b_r_(_1_)_, if no branch
                       number is specified.  Defaults to 1 if not set.

               skip_unlucky = boolean;
                       This field may be set to true if you want to skip
                       various unlucky numbers for changes, branches and
                       tests.  Various traditions are avoided, both Eastern
                       and Western.  Defaults to false if not set.

               compress_database = boolean;
                       This field may be set to true if you want to compress
                       the database on writing.  (It is always uncompress on
                       reading if necessary.)  Defaults to false if not set.

                       Unless you have an exceptionally large project, coupled
                       with fast CPUs and high network latency, there is
                       probably very little benefit in using this feature.
                       (The database is usually less than 5% of the size of
                       the repository.)  On slow networks, however, this can
                       improve the performance of file-related commands.

               develop_end_action = (...);
                       This field controls the state the change enters after a
                       successful _a_e_d_e(1) action.

                       _g_o_t_o___b_e_i_n_g___r_e_v_i_e_w_e_d
                               This means that the change goes from the
                               _b_e_i_n_g___d_e_v_e_l_o_p_e_d state to the _b_e_i_n_g___r_e_v_i_e_w_e_d
                               state.  The _a_e_r_b(1) command only sends
                               informative email.

                       _g_o_t_o___a_w_a_i_t_i_n_g___r_e_v_i_e_w
                               This means that the change goes from the
                               _b_e_i_n_g___d_e_v_e_l_o_p_e_d state to the _a_w_a_i_t_i_n_g___r_e_v_i_e_w
                               state.  The _a_e_r_b(1) command is now mandatory.

                       _g_o_t_o___a_w_a_i_t_i_n_g___i_n_t_e_g_r_a_t_i_o_n
                               This means that the change goes from the
                               _b_e_i_n_g___d_e_v_e_l_o_p_e_d state into the _a_w_a_i_t_i_n_g___-
                               _i_n_t_e_g_r_a_t_i_o_n state.  Code review is skipped
                               entirely.

                       Note that the _d_e_v_e_l_o_p___e_n_d___a_c_t_i_o_n field may not
                       contradict the _d_e_v_e_l_o_p_e_r___m_a_y___r_e_v_i_e_w field.  If
                       developers may not review their own work, then their
                       changes may not goto directly to the _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d
                       state (as this means much the same thing).  A
                       contradictory setting will be replaced with _g_o_t_o___-
                       _b_e_i_n_g___r_e_v_i_e_w_e_d.

   OObbssoolleettee FFiieellddss
       The following fields are only present is old projects.  They will be
       moved to an appropriate file state when the change is next modified.
       See _a_e_f_s_t_a_t_e(5) for more information.

       src = [ { ... }, ... ];
               This field is a list of all the files in the change.  The
               records have the form

               file_name = string;
                       This file names the file.  The name is relative to the
                       root of the baseline directory tree.

               action = (create, modify, remove);
                       This field describes what is being done with the file.

               edit_number = string;
                       This field records the edit number of the file when it
                       was added to the change (or updated using the _a_e_g_i_s
                       _-_D_I_F_F_e_r_e_n_c_e command).  This field is not present for
                       new files.

               usage = (source, config, build, test, manual_test);
                       This field describes what function the file serves.

               diff_time = time;
                       This field records the last time modified of the change
                       file when the last _a_e_g_i_s _-_D_I_F_F_e_r_e_n_c_e command was run.
                       It is only present between the _b_e_i_n_g___d_e_v_e_l_o_p_e_d and
                       _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d states, inclusive.  It is not present
                       for files which are being deleted.  This field is used
                       to determine if a difference has been done, and if the
                       file has been tampered with before state transitions.

               diff_file_time = time;
                       This field records the last time modified of the
                       difference file when the last _a_e_g_i_s _-_D_I_F_F_e_r_e_n_c_e command
                       was run.  It is only present between the
                       _b_e_i_n_g___d_e_v_e_l_o_p_e_d and _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d states, inclusive.
                       This field is used to determine if a difference has
                       been done, and if the difference file has been tampered
                       with before state transitions.

               move = string;
                       To change the name of a file, a combination of deleting
                       the old name and creating the new name is used.  With
                       deleted files, this field is used to say where it went.
                       With new files, this field is used to say where it came
                       from.

WWRRIITTIINNGG RREEPPOORRTT SSCCRRIIPPTTSS
       When attempting to access these fields from within the report
       generator, you need a code fragment similar to the following:
              auto ps;
              ps = project[project_name()].state;
              auto cs;
              cs = ps.branch.change[change_number()];
       All of the fields mentioned in the man page can now be accessed as
       members of the cs variable.  For example, cs.state contains the state
       the change is in.

       If this change state refers to a branch, when you access a member of
       the _b_r_a_n_c_h_._c_h_a_n_g_e field, you are given access to the change state data
       of that change on the branch.

       When you index the _s_r_c field by a filename string, you may obtain
       access the the relevant file state (see _a_e_f_s_t_a_t_e(5) for more
       information).

SSEEEE AALLSSOO
       _a_e_n_c(1) create a new change

       _a_e_g_i_s(5)
               aegis file format syntax

       _a_e_c_a_t_t_r(5)
               change attributes file format

       _a_e_f_s_t_a_t_e(5)
               file state file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aedir(5)                                                              aedir(5)



NNAAMMEE
       aedir - aegis directory structures

DDEESSCCRRIIPPTTIIOONN
       The project directory structure is dictated by _a_e_g_i_s at the top level,
       but is completely under the project's control from various points below
       the top level.

       The project directory has the following contents
              _p_r_o_j_e_c_t/
                      baseline/
                              config
                              _._._._p_r_o_j_e_c_t _s_p_e_c_i_f_i_c_._._.
                              test/
                                      _[_0_-_9_]_[_0_-_9_]/
                                              t_[_0_-_9_]_[_0_-_9_]_[_0_-_9_]_[_0_-_9_]a.sh
                                              t_[_0_-_9_]_[_0_-_9_]_[_0_-_9_]_[_0_-_9_]m.sh
                      history/
                              _._._._e_c_h_o _o_f _b_a_s_e_l_i_n_e_._._.
                      delta._[_0_-_9_]_[_0_-_9_]_[_0_-_9_]/
                              _._._._e_c_h_o _o_f _b_a_s_e_l_i_n_e_._._.
                      info/
                              state
                              change/
                                      _[_0_-_9_]/
                                              _[_0_-_9_]_[_0_-_9_]_[_0_-_9_]

       The directory is structured in this way so that it is possible to pick
       an entire project up off the disk, and be confident that you got it
       all.

       The location of the root of this tree is configurable, and may even be
       changed during the life of a project.

       The contents of the _b_a_s_e_l_i_n_e subdirectory, other than those given, are
       defined by the project, and not dictated by aegis.

       The contents of the _d_e_l_t_a_._N_N_N directory, when it exists, are an image
       of the _b_a_s_e_l_i_n_e directory.  It is frequently linked with the baseline,
       rather than a copy of it; see the _l_i_n_k___i_n_t_e_g_r_a_t_i_o_n___d_i_r_e_c_t_o_r_y field
       description in _a_e_p_c_o_n_f(5) for more information.

       The contents of the _h_i_s_t_o_r_y contains the edit histories of the _b_a_s_e_l_i_n_e
       directory, and is in all other ways an image of it.  Note that _b_a_s_e_l_i_n_e
       always contains the latest source; the _h_i_s_t_o_r_y directory is just
       history.  The actual files in the history directory tree will not
       always have names the same as those in the baseline; compare the
       methods used by SCCS and RCS.

       The contents of the _b_a_s_e_l_i_n_e_/_t_e_s_t directory are the tests which are
       created by changes.  Test histories are also stored in the _h_i_s_t_o_r_y
       subdirectory.  Tests are treated as project source.

       The edit histories are separated out to simplify the task of taking a
       "snapshot" of the source of a project, without airing all the dirty
       laundry.

       The _b_a_s_e_l_i_n_e directory always contains the latest source, and so the
       _h_i_s_t_o_r_y directory need not be readily accessible, because the build
       mechanism (something like _m_a_k_e(1), but preferably better) does not need
       to know anything about it.  Similarly for tests.

       The _b_a_s_e_l_i_n_e_/_c_o_n_f_i_g file is used to tell aegis everything else it needs
       to know about a project.  See _a_e_p_c_o_n_f(5) for more information.  This
       file  is a source file of the project, and is treated in the same way
       as all source files.

SSEEEE AALLSSOO
       _a_e_n_c(1) create a new change

       _a_e_n_p_r(1)
               create a new project

       _a_e_g_i_s(5)
               aegis file format syntax

       _a_e_p_c_o_n_f(5)
               project configuration file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aefstate(5)                                                        aefstate(5)



NNAAMMEE
       aefstate - aegis file state file

SSYYNNOOPPSSIISS
       _p_r_o_j_e_c_t/info/change/_[_0_-_9_]/_[_0_-_9_]_[_0_-_9_]_[_0_-_9_].fs

DDEESSCCRRIIPPTTIIOONN
       A file state file is used to store information about the files in a
       transaction.  These files are created and maintained by aegis.  These
       files should not be edited by humans.  These files is owned by the
       project owner and group.

CCOONNTTEENNTTSS
       src = [ { ... }, ... ];
               This field is a list of all the files in the change.  The
               records have the form

               file_name = string;
                       This file names the file.  The name is relative to the
                       root of the baseline directory tree.

               action = (create, modify, remove, insulate, transparent);
                       This field describes what is being done with the file.

                       create  The file is being created.  Once integrated,
                               the edit fields record the file version created
                               and stored in the history.

                       modify  The file is being created.  Once integrated,
                               the edit fields record the file version stored
                               in the history.

                       remove  The file is being created.  The edit field is
                               only informational, and describes the file
                               version at the time it was removed from the
                               repository.

                       insulate
                               The file is insulating a development directory
                               from changes to the baseline, it shall be
                               uncopied before development may end.  This
                               action shall only be present in changes.  It
                               shall never  be present in branch change state
                               files.

                       transparent
                               The file wasonce present in the branch, however
                               it is desired that the ancestor version "show
                               through".  This is the equivalent of "uncopy"
                               for branches.  When the branch is integrated,
                               this file will be omitted.

               edit = { ... };
                       For a project or an active branch, this field records
                       the head revision of the file.  For a completed change
                       or branch, this field records the revision number after
                       integrate pass.

                       revision = string;
                               This is the edit number, as reported by the
                               _h_i_s_t_o_r_y___g_e_t___c_o_m_m_a_n_d in the project _c_o_n_f_i_g file
                               at integrate pass time.

                       encoding = (none, quoted_printable, base64);
                               This field records the encoding used when the
                               file was added to the history at integrate pass
                               time, as configured by one of the _h_i_s_t_o_r_y___p_u_t___-
                               _c_o_m_m_a_n_d or _h_i_s_t_o_r_y___g_e_t___c_o_m_m_a_n_d and _h_i_s_t_o_r_y___-
                               _c_o_n_t_e_n_t___l_i_m_i_t_a_t_i_o_n fields of the project _c_o_n_f_i_g
                               file.

                               none    No encoding was applied to the file.
                                       Either it had no binary characters, or
                                       the history tool is able to cope with
                                       binary files.

                               quoted_printable
                                       The MIME Quoted Printable encoding (see
                                       RFC 1521) has been used to escape the
                                       binary characters of the file content.

                               base64  The MIME Base 64 encoding (see RFC
                                       1521) has been used to encode the file
                                       content.

                               The _h_i_s_t_o_r_y___c_o_n_t_e_n_t___l_i_m_i_t_a_t_i_o_n field of the
                               project _c_o_n_f_i_g file is used to determine which
                               files need encoding.  The size of the encoded
                               file is compared to determine which of quoted
                               printable and base 64 encodings is used; the
                               smaller is chosen.

               edit_number = string;
                       This field is obsolescent.  It is only present for
                       backwards compatibility.  It has been replaced by the
                       _e_d_i_t field.

               edit_origin = { ... };
                       This field records the edit number of the file when it
                       was added to the change or branch.  In changes, this
                       field is not present for new files.  (A change file is
                       out of date if it's edit number_origin field does not
                       equal the edit_number field in the project.)

                       It has the same fields, with the same meaning, as the
                       _e_d_i_t field, above.

               edit_number_origin = string;
                       This field is obsolescent.  It is only present for
                       backwards compatibility.  It has been replaced by the
                       _e_d_i_t___o_r_i_g_i_n field.

               edit_origin_new = { ... };
                       This field records the edit number of the file to
                       replace the edit_number_origin field in the branch at
                       integrate pass time.  This is used to perform cross
                       branch merging.  This field cleared at integrate pass
                       time.

                       It has the same fields, with the same meaning, as the
                       _e_d_i_t field, above.

               edit_number_origin_new = string;
                       This field is obsolescent.  It is only present for
                       backwards compatibility.  It has been replaced by the
                       _e_d_i_t___o_r_i_g_i_n___n_e_w field.

               usage = (source, config, build, test, manual_test);
                       This field describes what function the file serves.

               file_fp = fingerprint;
                       This field records the last time modified of the source
                       file.  It is only present between the _b_e_i_n_g___d_e_v_e_l_o_p_e_d
                       and _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d states, inclusive (for both
                       changes and branches).  It is not present for files
                       which are being deleted.  This field is used to
                       determine if a difference has been done, or a test has
                       been done if the source file is a test, and if the file
                       has been tampered with before state transitions.

                       The fingerprint consists of the following fields:

                       youngest = time;
                               The youngest time see for this file with this
                               fingerprint.

                       oldest = time;
                               The oldest time see for this file with this
                               fingerprint.

                       crypto = string;
                               This field records a cryptographically strong
                               fingerprint for the file.  There is no known
                               method of constructing a file to match a given
                               fingerprint, and there is less than 1 in 2**200
                               chance that two files will have the same
                               fingerprint.  Thus if the fingerprint is the
                               same, the file can reliably assumed to be the
                               same.

               diff_file_fp = fingerprint;
                       This field records the last time modified of the
                       difference file when the last _a_e_g_i_s _-_D_I_F_F_e_r_e_n_c_e command
                       was run.  It is only present between the
                       _b_e_i_n_g___d_e_v_e_l_o_p_e_d and _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d states, inclusive
                       (for both changes and branches).  This field is used to
                       determine if a difference has been done, and if the
                       difference file has been tampered with before state
                       transitions.

               idiff_file_fp = fingerprint;
                       This field records the last time modified of the
                       integration difference file when the last _a_e_g_i_s
                       _-_D_I_F_F_e_r_e_n_c_e command was run.  It is only present in the
                       _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d state.  This field is used to
                       determine if a difference has been done.

               architecture_times = [{ ... }];
                       This field records the time of various operations for
                       each variant named in the _a_r_c_h_i_t_e_c_t_u_r_e field.  It is
                       only present in the _b_e_i_n_g___d_e_v_e_l_o_p_e_d and
                       _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d states.  This field is used to
                       determine if a test has been done, and thus optimize
                       test runs.

                       variant = string;
                               This field is one of the patterns named in the
                               _a_r_c_h_i_t_e_c_t_u_r_e field.

                       test_time = time;
                               This field records the last time the last
                               successful _a_e_g_i_s _-_T_e_s_t command was run for this
                               specific pattern instance.

                       test_baseline_time = time;
                               This field records the last time the last
                               successful _a_e_g_i_s _-_T_e_s_t _-_B_a_s_e_L_i_n_e command was
                               run for this specific pattern instance.

               move = string;
                       To change the name of a file, a combination of deleting
                       the old name and creating the new name is used.  With
                       deleted files, this field is used to say where it went.
                       With new files, this field is used to say where it came
                       from.

               locked_by = integer;
                       The change which locked this file.
                       Caveat: this field is redundant, you can figure it out
                       by scanning all of he change files.  Having it here is
                       very convenient, even though it means multiple updates.

               about_to_be_created_by = integer;
                       The change which is about to create this file for the
                       first time.  Same caveat as above.

               about_to_be_copied_by = integer;
                       For each change file that is acting on a project file
                       from a deeper baseline than the immediate parent
                       project's baseline, the file needs to be added to the
                       immediate parent project.  Note that this field says
                       that this file record is a place marker, so that it can
                       be deleted again should the change not be integrated
                       for some reason.

               deleted_by = integer;
                       The change which last deleted this file.  We never
                       throw them away, because (a) it may be created again,
                       and more important (b) we need it to recreate earlier
                       deltas.

       test = [ string ];
               This field is used to remember test correlations for source
               files.  This is used by _a_e_t(1) to suggest suitable tests.

       metrics = [ { ... } ];
               This field is used to describe various file metrics.  It is
               committed during _a_e_i_p_a_s_s(1), when the file is added to the
               history.  The name must be given, and exactly one value.

               name = string;
                       This is the name of the metric.  This field must be
                       set.

               value = real;
                       This is the value of the metric.  This field must be
                       set.  (If you have an integer-valued metric, just use
                       integers, Aegis will cope.  If you have a string-valued
                       metric, assign integers to the enumerands.)

       executable = boolean;
               This field is used to remember whether the source file had any
               executable permission bits set at _d_e_v_e_l_o_p _e_n_d time.  This mode
               will be restored (taking the project umask into account) when
               the file is copied.

               This field is only meaningful for changes in the _c_o_m_p_l_e_t_e_d
               state, because this field is only set by _a_e_i_p(1).  Until then,
               the mode if the file itself is the authority.

WWRRIITTIINNGG RREEPPOORRTT SSCCRRIIPPTTSS
       When attempting to access these fields from within the report
       generator, you need a code fragment similar to the following:
              auto ps, pfs;
              ps = project[project_name()].state;
              fps = ps.src["somefile"];
              auto cs, cfs;
              cs = ps.branch.change[change_number()];
              cfs = cs.src["somefile"];
       Notice that the top-level fields of the file state is not available,
       but instead are mapped onto the relevant project file and change file
       _s_r_c arrays.

       All of the src member fields mentioned in the man page can now be
       accessed as members of the pfs or cfs variables.

SSEEEE AALLSSOO
       _a_e_g_i_s(5)
               aegis file format syntax

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis(5)                                                              aegis(5)



NNAAMMEE
       aegis - file format

DDEESSCCRRIIPPTTIIOONN
       The files used by the _a_e_g_i_s program all have the same format.  Some of
       the files used by aegis are created and maintained by humans, and some
       are created an maintained by aegis itself.  The various manual entries
       say which is which.

LLEEXXIICCAALL CCOONNSSIIDDEERRAATTIIOONNSS
       Names are any C identifier.  Comments are C-style comments (or C++ or
       shell).  Numbers are decimal, octal or hexadecimal, as for C constants.
       Whitespace (spaces, tabs and newlines) are ignored except in strings or
       as they serve to separate tokens.

       Strings are C-style strings, and similar to C, sequential string
       constants are silently catenated together.

       In addition, there is a style of @string@ which use at-signs (@) for
       quoting.  Unlike the C style of string, newlines are allowed within
       these strings.  To get an at-sign in such a string, double the at-sign.
       There is no other escape mechanism available.

GGRRAAMMMMAARR
       The format of all aegis files is described by a _y_a_c_c _(_1_) grammar.
              %%
              file
                      : field_list
                      ;
       A file contains a field list.
              field_list
                      : /* empty */
                      | field_list field
                      ;
       A field list is zero or more fields.
              field
                      : NAME '=' value ';'
                      ;
       A field is set by giving a name and a value.
              value
                      : NAME
                      | INTEGER
                      | STRING
                      | structure
                      | list
                      ;
       A value may be a member of an enumeration (NAME), or an integer
       constant, or a literal string.  More complex values may be constructed
       from these simple values.
              structure
                      : '{' field_list '}'
                      ;
       A structure is a grouped list of fields.
              list
                      : '[' list_body ']'
                      ;
              list_body
                      : /* empty */
                      | value_list
                      | value_list ','
                      ;
              value_list
                      : value
                      | value_list ',' value
       A list is a sequential list of values separated by commas.  It may be
       empty, or it may have a trailing comma.

SSEEMMAANNTTIICCSS
       The types of the values must match those in the definition of the file.
       See the relevant man pages for more information.

       Files which are rewritten by aaeeggiiss will lose any comments placed in
       them.  When time fields are emitted by aaeeggiiss they are usually followed
       by a human readable date in a comment.

SSEEEE AALLSSOO
       _a_e_g_i_s(1)
               a project change supervisor

       _a_e_c_a_t_t_r(5)
               change attribute file format

       _a_e_c_s_t_a_t_e(5)
               change state file format

       _a_e_d_i_r(5)
               directory structures

       _a_e_g_s_t_a_t_e(5)
               aegis state file

       _a_e_p_a_t_t_r(5)
               project attribute file format

       _a_e_p_c_o_n_f(5)
               project configuration file format

       _a_e_p_s_t_a_t_e(5)
               project state file format

       _a_e_s_u_b(5)
               available command substitutions

       _a_e_u_c_o_n_f(5)
               user configuration file format

       _a_e_u_s_t_a_t_e(5)
               user state file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegstate(5)                                                        aegstate(5)



NNAAMMEE
       aegstate - aegis state file

SSYYNNOOPPSSIISS
       /var/lib/aegis/state

DDEESSCCRRIIPPTTIIOONN
       The aegis state file is used to store the pointers to project
       directories.

CCOONNTTEENNTTSS
       where = [{ ... }];
               This field is a table relating project name to project
               directory.  The structure is as follows:

               project_name = string;
                       The name of a project.

               directory = string;
                       Absolute path of the project's directory.  (Only set of
                       _a_l_i_a_s___f_o_r is not set.)

               alias_for = string;
                       This is the name of another project, possibly including
                       branch numbers.  It allows you to have shorter or more
                       meaningful project names.  (Only set if _d_i_r_e_c_t_o_r_y is
                       not set.)

WWRRIITTIINNGG RREEPPOORRTT SSCCRRIIPPTTSS
       When attempting to access these fields from within the report
       generator, you need a code fragment similar to the following:
              auto p;
              p = project[project_name()];
       That is, the where field is represented by the project array variable,
       however, it does not mention the aliases, only the actual projects,
       similar to the ``_a_e_l _p_r_o_j_e_c_t_s'' command.  (You can, however, index the
       projects array by an alias, or even by a project name with branches on
       the end.)

       In addition to the _p_r_o_j_e_c_t___n_a_m_e and _d_i_r_e_c_t_o_r_y fields specified above,
       the report generator insets a _s_t_a_t_e field, which gives you access to
       the project state fields (see _a_e_p_s_t_a_t_e(5) for more information).

SSEEEE AALLSSOO
       _a_e_g_i_s(5)
               aegis file format syntax

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aegis locking(5)                                              aegis locking(5)



NNAAMMEE
       aegis locks - how locking works, and which commands use them

DDEESSCCRRIIPPTTIIOONN
       Aegis maintains a database of information about the projects in its
       care, and the various changes, both completed and in progress.  In
       order to ensure the integrity of this database, and also your project
       repository, it uses locks.

       From time to time, these locks are visible to the users, because they
       will be told that a command is waiting for a particular lock.  For some
       transactions, this can be a long wait.

   DDiinniinngg PPhhiilloossoopphheerrss
       While UNIX supplies locks in various flavors, if you need an entire set
       of locks simultaneously, there is no elegant ``all or nothing''
       interface available.  This is unsurprising, as this is one of the
       classic computer science problems, known as the Dining Philosophers
       problem.

       The master lock is used to solve the Dining Philosophers problem, and
       is meant to be very transient.  It is only held while the other locks
       which are required (frequently two or more, hence the problem) are
       requested - non-blocking.  Once they are all obtained (or not, and any
       partials given back) the master lock is released.  It is usually held
       for _m_u_c_h less than a second.  If you notice the master lock being held,
       it is almost always a symptom of the NFS lock daemon misbehaving.

       If the lock(s) could not be obtained, the blocking lock is waited on
       (without the master).  This is when the "waiting for" message is
       issued.  When obtained, it is _r_e_l_e_a_s_e_d and the whole cycle starts
       again.  This is why you occasionally see a series of "waiting for"
       messages.  (This could maybe be optimized some, but it is still
       possible to block on yet another lock, and they you have to release all
       and wait again.  As yet, I'm not convinced the extra code complexity is
       required.)

   LLiissttiinngg LLoocckkss
       There is a command available to list the current Aegis locks.
              aegis -list locks
       Note that the project names are change numbers are _g_u_e_s_s_e_s as the locks
       are hashed over a 16-bit range, and range overlaps are possible.
       Collisions are also possible, but fortunately rarer.

   KKnnoowwnn PPrroobblleemmss
       There is a known problem with the HP/UX NFS clients.  If you see
       persistent "no locks available" error messages when _/_u_s_r_/_l_i_b_/_a_e_g_i_s is
       NFS mounted, try making the _/_u_s_r_/_l_i_b_/_a_e_g_i_s_/_l_o_c_k_f_i_l_e file world
       writable.  chmod 666 /usr/lib/aegis/lockfile There is the possibility
       of a denial of service attack (which is why the default is 0600) but
       since you are presently denied service anyway, it's academic.

CCOOMMMMAANNDDSS
       The following table shows the locks taken by the various commands.
       Note that theoretically some of the commands take too _f_e_w locks, but
       this has yet to prove to be a problem in practice.  Also, "project
       state file" and "change state file" are the same thing for branches, it
       just depends which way you are looking at them at the time.

       Command      Global       Project      Project      Ancestor     Change       User State
                    State File   State File   Baseline     Baselines    State File   File
       -----------------------------------------------------------------------------------------
       aeb (dev)    .            .            shared       shared       exclusive    .
       aeb (int)    .            .            .            shared       exclusive    .
       aeca         .            .            .            .            exclusive    .
       aechown      .            .            .            .            exclusive    exclusive
       aeclean      .            .            .            .            exclusive    .
       aeclone      .            exclusive    .            .            exclusive    exclusive
       aecp         .            ,            ,            ,            exclusive    .
       aecpu        .            .            .            .            exclusive    .
       aed          .            ,            ,            ,            exclusive    .
       aedb         .            .            .            .            exclusive    exclusive
       aedbu        .            .            .            .            exclusive    exclusive
       aede         .            ,            .            .            exclusive    exclusive
       aedeu        .            .            .            .            exclusive    exclusive
       aedn         .            exclusive    .            .            .            .
       aeib         .            exclusive    .            .            exclusive    exclusive
       aeibu        .            exclusive    .            .            exclusive    exclusive
       aeifail      .            exclusive    .            .            exclusive    exclusive
       aeipass      .            exclusive    exclusive    .            exclusive    exclusive
       aemv         .            ,            ,            ,            exclusive    .
       aena         .            exclusive    .            .            .            .
       aenbr        .            exclusive    .            .            .            .
       aenbru       exclusive    exclusive    .            .            .            .
       aenc         .            exclusive    .            .            .            .
       aencu        .            exclusive    .            .            .            .
       aend         .            exclusive    .            .            .            .
       aenf         .            .            .            .            exclusive    .
       aenfu        .            .            .            .            exclusive    .
       aeni         .            exclusive    .            .            .            .
       aenpa        exclusive    .            .            .            .            .
       aenpr        exclusive    .            .            .            .            .
       aenrv        .            exclusive    .            .            .            .
       aent         .            exclusive    .            .            exclusive    .
       aentu        .            .            .            .            exclusive    .
       aepa         .            exclusive    .            .            .            .
       aera         .            exclusive    .            .            .            .
       aerd         .            exclusive    .            .            .            .
       aerfail      .            .            .            .            exclusive    exclusive

       aeri         .            exclusive    .            .            .            .
       aerm         .            ,            .            .            exclusive    .
       aermu        .            .            .            .            exclusive    .
       aermpr       exclusive    .            .            .            .            .
       aerpa        exclusive    .            .            .            .            .
       aerpass      .            .            .            .            exclusive    .
       aerpu        .            .            .            .            exclusive    .
       aerrv        .            exclusive    .            .            .            .
       aet          .            .            ,            ,            exclusive    .

SSEEEE AALLSSOO
       You may wish to see the manual pages of all of the above commands.
       Many have descriptions of the locking interactions.

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aemetrics(5)                                                      aemetrics(5)



NNAAMMEE
       aemetrics - metrics values file format

SSYYNNOOPPSSIISS
       _f_i_l_e_n_a_m_e,S

DDEESSCCRRIIPPTTIIOONN
       Metrics files are created at integration build time, and recorded into
       the file attributes at integration pass time.  This allows trend
       analysis and other statistics to be calculated.

CCOONNTTEENNTTSS
       metrics = [ { ... } ];
               This field is used to describe various file metrics.  It is
               committed during _a_e_i_p_a_s_s(1), when the file is added to the
               history.  The name must be given, and exactly one value.

               name = string;
                       This is the name of the metric.  This field must be
                       set.

               value = real;
                       This is the value of the metric.  This field must be
                       set.  (If you have an integer-valued metric, just use
                       integers, Aegis will cope.  If you have a string-valued
                       metric, assign integers to the enumerands.)

SSEEEE AALLSSOO
       _a_e_g_i_s(5)
               aegis file format syntax

       _a_e_m_e_a_s_u_r_e(1)
               simple file metrics

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aepattr(5)                                                          aepattr(5)



NNAAMMEE
       aepattr - project attribute file

DDEESSCCRRIIPPTTIIOONN
       The project attribute file is used to store modifiable information
       about a project.

CCOONNTTEENNTTSS
       description = string;
               This field contains a description of the project.  Large
               amounts of prose are not required; a single line is sufficient.

       developer_may_review = boolean;
               If this field is true, then a developer may review her own
               change.  This is probably only a good idea for projects of less
               than 3 people.  The idea is for as many people as possible to
               critically examine a change.

               Note that the _d_e_v_e_l_o_p___e_n_d___a_c_t_i_o_n field may not contradict the
               _d_e_v_e_l_o_p_e_r___m_a_y___r_e_v_i_e_w field.  If developers may not review their
               own work, then their changes may not goto directly to the _b_e_i_n_g
               _i_n_t_e_g_r_a_t_e_d state (as this means much the same thing).

       developer_may_integrate = boolean;
               If this field is true, then a developer may integrate her own
               change.  This is probably only a good idea for projects of less
               than 3 people.  The idea is for as many people as possible to
               critically examine a change.

       reviewer_may_integrate = boolean;
               If this field is true, then a reviewer may integrate a change
               she reviewed.  This is probably only a good idea for projects
               of less than 3 people.  The idea is for as many people as
               possible to critically examine a change.

       developers_may_create_changes = boolean;
               This field is true if developers may created changes, in
               addition to administrators.  This tends to be a very useful
               thing, since developers find most of the bugs.

       forced_develop_begin_notify_command = string;
               This command is used to notify a developer that a change
               requires developing; it is issued when a project administrator
               uses an _a_e_d_b _-_U_s_e_r command to force development of a change by
               a specific user.  All of the substitutions described in
               _a_e_s_u_b(5) are available.  This field is optional.

               Executed as: the new developer.  Current directory: the
               development directory of the change for the new developer.
               Exit status: ignored.

       develop_end_notify_command = string;
               This command is used to notify that a change is ready for
               review.  It will probably use mail, or it could be an in-house
               bulletin board.  This field is optional, if not present no
               notification will be given.  This command could also be used to
               notify other management systems, such as progress and defect
               tracking.  All of the substitutions described by _a_e_s_u_b(5) are
               available.

               Executed as: the developer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       develop_end_undo_notify_command = string;
               This command is used to notify that a change had been withdrawn
               from review for further development.  It will probably use
               mail, or it could be an in-house bulletin board.  This field is
               optional, if not present no notification will be given.  This
               command could also be used to notify other management systems,
               such as progress and defect tracking.  All of the substitutions
               described by _a_e_s_u_b(5) are available.

               Executed as: the developer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       review_begin_notify_command = string;
               This command is used to notify that a review has begun.  It
               will probably use mail, or it could be an in-house bulletin
               board.  This field is optional, if not present no notification
               will be given.  This command could also be used to notify other
               management systems, such as progress and defect tracking.  All
               of the substitutions described by _a_e_s_u_b(5) are available.

               Executed as: the reviewer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       review_begin_undo_notify_command = string;
               This command is used to notify that a review is no longer in
               progress, the reviewer has withdrawn.  It will probably use
               mail, or it could be an in-house bulletin board.  This field is
               optional, if not present no notification will be given.  This
               command could also be used to notify other management systems,
               such as progress and defect tracking.  All of the substitutions
               described by _a_e_s_u_b(5) are available.

               Executed as: the reviewer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       review_pass_notify_command = string;
               This command is used to notify that a review has passed.  It
               will probably use mail, or it could be an in-house bulletin
               board.  This field is optional, if not present no notification
               will be given.  This command could also be used to notify other
               management systems, such as progress and defect tracking.  All
               of the substitutions described by _a_e_s_u_b(5) are available.

               Executed as: the reviewer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       review_pass_undo_notify_command = string;
               This command is used to notify that a review has passed.  It
               will probably use mail, or it could be an in-house bulletin
               board.  This field is optional, if not present no notification
               will be given.  This command could also be used to notify other
               management systems, such as progress and defect tracking.
               Defaults to the same action as the _d_e_v_e_l_o_p___e_n_d___n_o_t_i_f_y___c_o_m_m_a_n_d
               field.  All of the substitutions described by _a_e_s_u_b(5) are
               available.

               Executed as: the reviewer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       review_fail_notify_command = string;
               This command is used to notify that a review has failed.  It
               will probably use mail, or it could be an in-house bulletin
               board.  This field is optional, if not present no notification
               will be given.  This command could also be used to notify other
               management systems, such as progress and defect tracking.  All
               of the substitutions described by _a_e_s_u_b(5) are available.

               Executed as: the reviewer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       integrate_pass_notify_command = string;
               This command is used to notify that an integration has passed.
               It will probably use mail, or it could be an in-house bulletin
               board.  This field is optional, if not present no notification
               will be given.  This command could also be used to notify other
               management systems, such as progress and defect tracking.  All
               of the substitutions described by _a_e_s_u_b(5) are available.

               Some compilers bury absolute path names into object files and
               executables.  The renaming of the integration directory to
               become the new baseline breaks these paths.  This command is
               passed an environment variable called AEGIS_INTEGRATION_-
               DIRECTORY so that the appropriate symlink may be placed, if
               desired.

               Executed as: the project owner.  Current directory: the new
               project baseline.  Exit status: ignored.

       integrate_fail_notify_command = string;
               This command is used to notify that an integration has failed.
               It will probably use mail, or it could be an in-house bulletin
               board.  This field is optional, if not present no notification
               will be given.  This command could also be used to notify other
               management systems, such as progress and defect tracking.  All
               of the substitutions described by _a_e_s_u_b(5) are available.

               Executed as: the integrator.  Current directory: the
               development directory of the change.  Exit status: ignored.

       default_development_directory = string;
               The pathname of where to place new development directories.
               The pathname must be absolute.  This field is only consulted if
               the field of the same name in the user configuration file is
               not set.

       umask = integer;
               File permission mode mask.  See _u_m_a_s_k(2) for more information.
               This value will always be OR'ed with 022, because _a_e_g_i_s is
               paranoid.

       default_test_exemption = boolean;
               This field contains what to do when a change is created with no
               test exemption specified.

       minimum_change_number = integer;
               The minimum change number for _a_e_n_c_(_1_)_, if no change number is
               specified.  This allows the low-numbered change numbers to be
               used for branches later in the project.

       reuse_change_numbers = boolean;
               This controls whether the automatically selected _a_e_n_c(1) change
               numbers ``fill in'' any gaps.  Defaults to true if not set.

       minimum_branch_number = integer;
               The minimum branch number for _a_e_n_b_r_(_1_)_, if no branch number is
               specified.  Defaults to 1 if not set.

       skip_unlucky = boolean;
               This field may be set to true if you want to skip various
               unlucky numbers for changes, branches and tests.  Various
               traditions are avoided, both Eastern and Western.  Defaults to
               false if not set.

       compress_database = boolean;
               This field may be set to true if you want to compress the
               database on writing.  (It is always uncompressed on reading if
               necessary.)  Defaults to false if not set.

               Unless you have an exceptionally large project, coupled with
               fast CPUs and high network latency, there is probably very
               little benefit in using this feature.  (The database is usually
               less than 5% of the size of the repository.)  On slow networks,
               however, this can improve the performance of file-related
               commands.

       develop_end_action = ( ...);
               This field controls the state the change enters after a
               successful _a_e_d_e(1) action.

               _g_o_t_o___b_e_i_n_g___r_e_v_i_e_w_e_d
                       This means that the change goes from the _b_e_i_n_g___-
                       _d_e_v_e_l_o_p_e_d state to the _b_e_i_n_g___r_e_v_i_e_w_e_d state.  The
                       _a_e_r_b(1) command only sends informative email.

               _g_o_t_o___a_w_a_i_t_i_n_g___r_e_v_i_e_w
                       This means that the change goes from the _b_e_i_n_g___-
                       _d_e_v_e_l_o_p_e_d state to the _a_w_a_i_t_i_n_g___r_e_v_i_e_w state.  The
                       _a_e_r_b(1) command is now mandatory.

               _g_o_t_o___a_w_a_i_t_i_n_g___i_n_t_e_g_r_a_t_i_o_n
                       This means that the change goes from the _b_e_i_n_g___-
                       _d_e_v_e_l_o_p_e_d state into the _a_w_a_i_t_i_n_g___i_n_t_e_g_r_a_t_i_o_n state.
                       Code review is skipped entirely.  If the _d_e_v_e_l_o_p_e_r___-
                       _m_a_y___r_e_v_i_e_w is false, it is not possible to use this
                       setting.

               Note that the _d_e_v_e_l_o_p___e_n_d___a_c_t_i_o_n field may not contradict the
               _d_e_v_e_l_o_p_e_r___m_a_y___r_e_v_i_e_w field.  If developers may not review their
               own work, then their changes may not goto directly to the _b_e_i_n_g
               _i_n_t_e_g_r_a_t_e_d state (as this means much the same thing).  A
               contradictory setting will be replaced with _g_o_t_o___b_e_i_n_g___-
               _r_e_v_i_e_w_e_d.

       protect_development_directory = boolean;
               This field may be used to protect the development directory
               after the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.  It does this by making it
               read-only at develop end time.  Should the change ever be
               returned to the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state, it will be made writable
               again.

               The default is false, meaning to leave the development
               directory writable while is being reviewed and integrated.
               Aegis' normal tampering detection will notice if files are
               changed, but there is no reminder to the developer that the
               change should be left alone.

               This field defaults to false, because it can sometimes be slow.

SSEEEE AALLSSOO
       _a_e_p_a(1) modify the attributes of a project

       _a_e_g_i_s(5)
               aegis file format syntax

       _a_e_c_a_t_t_r(5)
               change attributes file format

       _a_e_c_s_t_a_t_e(5)
               change state file format, particularly as branches are used to
               remember most project state

       _a_e_p_s_t_a_t_e(5)
               project state file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aepconf(5)                                                          aepconf(5)



NNAAMMEE
       aepconf - aegis project configuration file

SSYYNNOOPPSSIISS
       _p_r_o_j_e_c_t/baseline/config

DDEESSCCRRIIPPTTIIOONN
       A project configuration file is used to store information about a
       project.  This file is under source control, and is one of the
       project's source files.  Developers may thus modify this file as part
       of a change.

       This file contains a number of commands to be executed by Aegis.  There
       are times when the substitutions in these commands may contain shell
       special characters, which would change the meaning of the commands in
       unintended ways.  There are two main sources of these problems:
       filenames and architecture names.  In order to have shell special
       characters in filenames, you must set the _s_h_e_l_l___s_a_f_e___f_i_l_e_n_a_m_e_s field
       (see below) to _f_a_l_s_e.  If you do this, you will need to use the quote
       substitution (see _a_e_s_u_b(5)) to quote them, so that the shell does not
       abuse them.  Other things which may need quoting include architecture
       names if you get creative, and edit numbers if unusual ones are
       generated by your history tool.

   GGeettttiinngg SSttaarrtteedd
       Because the project _c_o_n_f_i_g file is under source control like any other
       file, you must create the project _c_o_n_f_i_g file in the very first change
       of your project.  Use the
              $ aaeennff ccoonnffiigg
              $
       command and then editing the file to fill in the fields.  Subsequent
       Aegis commands in that change will use that file.  Once the change is
       completed (see _a_e_i_p_a_s_s(1) for more information) the file will be
       present in the baseline, and be used by all users and all changes.

       If you ever need to change one of the fields of the project _c_o_n_f_i_g
       file, you do this the same way as for any other souce file, by copying
       it into a change using the
              $ aaeeccpp ccoonnffiigg
              $
       command and then edit the file to make the desired changes.  While it's
       _b_e_i_n_g _d_e_v_e_l_o_p_e_d your change will use it's copy of the project _c_o_n_f_i_g
       file, but once the change is completed (see _a_e_i_p_a_s_s(1) for more
       information), it becomes the new version used by all users and changes.

CCOONNTTEENNTTSS
       This file contains the following fields:

       configuration_directory = string;
               This field names a directory which will be searched for
               additional configuration files.  (This directive is only legal
               or meaningful in the master project _c_o_n_f_i_g file.)

               All source files (change source files and project source files)
               present in this directory will be read in as if they were added
               to the end of the project "config" file.

               The usual priority of files (development directory, branch
               baseline, _e_t_c, project trunk baseline) is observed when these
               files are read.

               Please note that the physical directories are never searched,
               only the Aegis concept of the change and project files is
               consulted (_i_._e_.  files created and modified in the usual way
               with _a_e_n_f(1) and _a_e_c_p(1) commands).  Placing additional files
               in the physical directories will have no effect.

               It is recommended that if you use this field at all, that your
               top level project _c_o_n_f_i_g file should only contain this one
               field.  This is to avoid overly-large re-reading of this file
               when it is joined to all the others.

       build_command = string;
               This field describes how to build the project (actually, how to
               do an integration build).  This field is mandatory.  Used by
               the _a_e_b(1) command.  All of the substitutions described by
               _a_e_s_u_b(5) are available.

               Executed as: the integrator (for integration builds) or the
               developer (for development builds).  Current directory: the
               integration directory of the change (for integration builds)
               the development directory of the change (for development
               builds).  Exit status: zero is considered success, non-zero is
               a failure and a subsequent successful (exit zero) build will be
               required.

       development_build_command = string;
               This field describes how to do a development build.  If this
               field is absent, it defaults to the above.  Used by the _a_e_b(1)
               command.  All of the substitutions described by _a_e_s_u_b(5) are
               available.

               Executed as: the developer.  Current directory: the development
               directory of the change.  Exit status: zero is considered
               success, non-zero is a failure and a subsequent successful
               (exit zero) build will be required.

       build_time_adjust_notify_command = string;
               This command is run when Aegis adjusts the last-time-modified
               time-stamp on files in the integration directory.  If the build
               tool uses additional information to supplement file
               modification times, this command gives you the opportunity to
               re-sync the associated database.

               Executed as: the project owner.

               Current directory: the project baseline. Note that the contents
               of the project baseline reflect content _b_e_f_o_r_e the currently
               integrating change. In particular note that for the first delta
               in a project or branch, the baseline directory is empty.  If
               data is required from the change just completed one must use
               the _$_{_I_N_T_e_g_r_a_t_i_o_n___D_i_r_e_c_t_o_r_y_} substitution.

               Exit status: NOT ignored. Note that a failure here puts the
               change in a partial state from which recovery may be difficult.
               Best to define this command with a _s_e_t+e so that errors are
               ignored at the command level.

       build_covers_all_architectures = boolean;
               This field is set to true if the build command, when executed
               on any architecture, results in all architectures being built.
               This may be accomplished, for example, by using cross-
               compilation techniques, or Cook's ability to nominate hosts on
               which to execute each build rule.

       create_symlinks_before_build = boolean;
               This flag is true if Aegis should create symlinks from the
               development directory to the baseline for all files in the
               baseline not in the development directory immediately before a
               development_build_command is issued.  Usually used to trick
               dumb DMTs into believing the development directory contains an
               entire copy of the project, though sometimes the DMT is smart
               enough, the tools it must work with are not.  Symlinks in the
               development directory which point to nonexistent files will be
               removed.

               Defaults to false if not set.

       create_symlinks_before_integration_build = boolean;
               This flag is true if Aegis should create symlinks from the
               integration directory to the ancestral baseline for all files
               in the ancestral not in the integration directory immediately
               before a build_command is issued.  Usually used to trick dumb
               DMTs into believing the integration directory contains an
               entire copy of the project, though sometimes the DMT is smart
               enough, the tools it must work with are not.  Symlinks in the
               integration directory which point to nonexistent files will be
               removed.

               Defaults to the same value as _c_r_e_a_t_e___s_y_m_l_i_n_k_s___b_e_f_o_r_e___b_u_i_l_d if
               not set.

       remove_symlinks_after_build = boolean;
               This flag is true if Aegis should remove symlinks which point
               from the development directory to the baseline directory
               immediately after a development_build_command is issued.  Only
               consulted if the _c_r_e_a_t_e___s_y_m_l_i_n_k_s___b_e_f_o_r_e___b_u_i_l_d field is true,
               for the purpose of reversing the actions of the _c_r_e_a_t_e___-
               _s_y_m_l_i_n_k_s___b_e_f_o_r_e___b_u_i_l_d field.

               Defaults to false if not set.

       remove_symlinks_after_integration_build = boolean;
               This flag is true if Aegis should remove symlinks which point
               from the integration directory to the ancestral baseline
               directory immediately after a build_command is issued.  Only
               consulted if the _c_r_e_a_t_e___s_y_m_l_i_n_k_s___b_e_f_o_r_e___i_n_t_e_g_r_a_t_i_o_n___b_u_i_l_d field
               is true, for the purpose of reversing the actions of the
               _c_r_e_a_t_e___s_y_m_l_i_n_k_s___b_e_f_o_r_e___i_n_t_e_g_r_a_t_i_o_n___b_u_i_l_d field.

               Defaults to ttrruuee if not set.  This default is intentional.  It
               is important that there are no symlinks in the (new) baseline,
               because they could go stale between integrations.  If you set
               this field to false, _c_a_v_e_a_t _e_m_p_t_o_r.

       symlink_exceptions = [ string ];
               This field is used to list filename patterns for which symbolic
               links must not be made between the development directory and
               the baseline.  These are usually state files for various tools.
               The patterns are matched against the whole filename; naming
               only the last filename path element will _n_o_t work (unless the
               pattern starts with ``*'').

       change_file_command = string;
               This field contains a command to be executed whenever a 'aegis
               -CoPy_file', 'aegis -New_File' 'aegis -New_Test' 'aegis
               -MoVe_file' or 'aegis -ReMove_file' command is successful.  See
               also command-specific overrides.  If this field is absent,
               nothing is done.  Used by the _a_e_c_p(1), _a_e_n_v(1), _a_e_n_f(1),
               _a_e_r_m(1), and _a_e_m_v(1) commands.  All of the substitutions
               described by _a_e_s_u_b(5) are available; in addition,

               ${File_List}
                       Space separated list of files named.

               Executed as: the developer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       change_file_undo_command = string;
               This field contains a command to be executed whenever a 'aegis
               -CoPy_file_Undo', 'aegis -MoVe_file_Undo' 'aegis
               -New_File_Undo', 'aegis -New_Test_Undo', or 'aegis
               -ReMove_file_Undo' command is successful.  Default to _c_h_a_n_g_e___-
               _f_i_l_e___c_o_m_m_a_n_d if absent.  See also command-specific overrides.
               If both fields are absent, nothing is done.  Used by the
               _a_e_c_p_u(1), _a_e_m_v_u(1), _a_e_n_f_u(1), _a_e_n_t_u(1) or _a_e_r_m_u(1), commands.
               All of the substitutions described by _a_e_s_u_b(5) are available;
               in addition,

               ${File_List}
                       Space separated list of files named.

               Executed as: the developer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       new_file_command = string;
               Executed whenever the aegis -new_file command is run
               successfully.  Defaults to `change_file_command' if not set.

               All of the substitutions described in _a_e_s_u_b(5) are available.
               In addition:

               ${File_List}
                      Space separated list of files named (at times, can be
                      empty).

               Executed as: the developer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       new_test_command = string;
               Executed whenever the aegis -new_test command is run
               successfully.  Defaults to `change_file_command' if not set.

               All of the substitutions described in _a_e_s_u_b(5) are available.
               In addition:

               ${File_List}
                      Space separated list of files named (at times, can be
                      empty).

               Executed as: the developer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       copy_file_command = string;
               Executed whenever the aegis -copy_file command is run
               successfully.  Defaults to `change_file_command' if not set.

               All of the substitutions described in _a_e_s_u_b(5) are available.
               In addition:

               ${File_List}
                      Space separated list of files named (at times, can be
                      empty).

               Executed as: the developer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       remove_file_command = string;
               Executed whenever the aegis -remove_file command is run
               successfully.  Defaults to `change_file_command' if not set.

               All of the substitutions described in _a_e_s_u_b(5) are available.
               In addition:

               ${File_List}
                      Space separated list of files named (at times, can be
                      empty).

               Executed as: the developer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       new_file_undo_command = string;
               Executed whenever the aegis -new_file_undo command is run
               successfully.  Defaults to change_file_undo_command if not set.

               All of the substitutions described in _a_e_s_u_b(5) are available.
               In addition:

               ${File_List}
                      Space separated list of files named (at times, can be
                      empty).

               Executed as: the developer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       new_test_undo_command = string;
               Executed whenever the aegis -new_test_undo command is run
               successfully.  Defaults to change_file_undo_command if not set.

               All of the substitutions described in _a_e_s_u_b(5) are available.
               In addition:

               ${File_List}
                      Space separated list of files named (at times, can be
                      empty).

               Executed as: the developer Current directory: the development
               directory of the change Exit status: ignored

       copy_file_undo_command = string;
               Executed whenever the aegis -copy_file_undo command is run
               successfully.  Defaults to change_file_undo_command if not set.

               All of the substitutions described in _a_e_s_u_b(5) are available.
               In addition:

               ${File_List}
                      Space separated list of files named (at times, can be
                      empty).

               Executed as: the developer Current directory: the development
               directory of the change Exit status: ignored

       remove_file_undo_command = string;
               Executed whenever the aegis -remove_file_undo command is run
               successfully.  Defaults to change_file_undo_command if not set.

               All of the substitutions described in _a_e_s_u_b(5) are available.
               In addition:

               ${File_List}
                      Space separated list of files named (at times, can be
                      empty).

               Executed as: the developer Current directory: the development
               directory of the change Exit status: ignored

       make_transparent_command = string;
               The make_transparent_command is executed whenever the aegis
               -make_transparent command is run successfully.  Defaults to
               change_file_command if not set.

               All of the substitutions described in _a_e_s_u_b(5) are available.
               In addition:

               ${File_List}
                      Space separated list of files named (at times, can be
                      empty).

               Executed as: the developer Current directory: the development
               directory of the change Exit status: ignored

       make_transparent_undo_command = string;
               The make_transparent_undo_command is executed whenever the
               aegis -make_transparent_undo command is run successfully.
               Defaults to change_file_undo_command if not set.

               All of the substitutions described in _a_e_s_u_b(5) are available.
               In addition:

               ${File_List}
                      Space separated list of files named (at times, can be
                      empty).

               Executed as: the developer Current directory: the development
               directory of the change Exit status: ignored

       project_file_command = string;
               This field contains a command to be executed during a
               development build before the _d_e_v_e_l_o_p_m_e_n_t _b_u_i_l_d _c_o_m_m_a_n_d above,
               when (a) it is the first build after a develop begin, or (b)
               some other change has been integrated into the baseline since
               the last build.  If this field is absent, nothing is done.
               Used by the _a_e_b(1) command.  All of the substitutions described
               by _a_e_s_u_b(5) are available.

       develop_begin_command = string;
               This field contains a command to be executed whenever a 'aegis
               -Develop_Begin' command is successful.  If this field is
               absent, nothing is done.  Used by the _a_e_d_b(1) command.  All of
               the substitutions described by _a_e_s_u_b(5) are available.

               Executed as: the developer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       develop_begin_undo_command = string;
               This field contains a command to be executed whenever a 'aegis
               -Develop_Begin_Undo' command is successful.  If this field is
               absent, nothing is done.  Used by the _a_e_d_b_u(1) command.  All of
               the substitutions described by _a_e_s_u_b(5) are available.

               Executed as: the developer.  Current directory: wherever the
               command was executed from.  Exit status: ignored.

       integrate_begin_command = string;
               This field contains a command to be executed whenever a 'aegis
               -Integrate_Begin' command is successful.  If this field is
               absent, nothing is done.  Used by the _a_e_i_b(1) command.  All of
               the substitutions described by _a_e_s_u_b(5) are available.

               Executed as: the project owner.  Current directory: the
               integration directory.  Exit status: ignored.

       link_integration_directory = boolean;
               This flag is true if Aegis should link the files from the
               baseline into the integration directory, rather than copy them
               (the default).  This has risks, as the build script (e.g.
               _H_o_w_t_o_._c_o_o_k or _M_a_k_e_f_i_l_e, etc) must unlink targets before
               rebuilding them; if this is not done the baseline will be
               corrupted.  Used by the _a_e_i_b(1) command.

       integrate_begin_exceptions = [ string ];
               This field may be used to specify a list of file names (and
               file name patterns) which are to be omitted from the copy
               (link) of the baseline when creating the integration directory.
               Used by the _a_e_i_b(1) command.  This field only applies to
               derived files, it does _n_o_t apply to source files.  The patterns
               are matched against the whole filename; naming only the last
               filename path element will _n_o_t work (unless the pattern starts
               with ``*'').

       history_create_command = string;
               This field is used to create a new history.  The command is
               always executed as the project owner.  Used by the _a_e_i_p_a_s_s(1)
               command.

               It is strongly recommended that the _h_i_s_t_o_r_y___c_r_e_a_t_e___c_o_m_m_a_n_d and
               _h_i_s_t_o_r_y___p_u_t___c_o_m_m_a_n_d fields are identical.  If not set, the
               _h_i_s_t_o_r_y___c_r_e_a_t_e___c_o_m_m_a_n_d field defaults to the same value as the
               _h_i_s_t_o_r_y___p_u_t___c_o_m_m_a_n_d field.

               All of the substitutions described by _a_e_s_u_b(5) are available;
               in addition,

               ${Input}
                       Absolute path of the source file.

               ${History}
                       Absolute path of the history file.  This may need to be
                       reworked with the _D_i_r_n_a_m_e and _B_a_s_e_n_a_m_e substitutions to
                       yield a string suitable for the history tool in
                       question.

               See also the _h_i_s_t_o_r_y___p_u_t___t_r_a_s_h_e_s___f_i_l_e field, below.

               Executed as: the project owner.  Current directory: the base of
               the history tree.  Exit status: zero indicates success, all
               non-zero exits indicate failure (the integrate pass will fail).

       history_get_command = string;
               This field is used to get a file from history.  The command may
               be executed by developers.  Used by the _a_e_i_p_a_s_s(1) and _a_e_c_p(1)
               commands.  All of the substitutions described by _a_e_s_u_b(5) are
               available; in addition,

               ${History}
                       The absolute path of the history file.  This may need
                       to be reworked with the _D_i_r_n_a_m_e and _B_a_s_e_n_a_m_e
                       substitutions to yield a string suitable for the
                       history tool in question.

               ${Edit}
                       The edit number to be extracted.  It may be an
                       arbitrary string, varying on the particular history
                       tool.

               ${Output}
                       The absolute path of the destination file.

               Executed as: the developer (or the executing user, in the case
               of the -independent option).  Current directory: the base of
               the history tree Exit status: zero indicates success, all non-
               zero exits indicate failure (the _a_e_c_p will fail).

       history_put_command = string;
               This field is used to add a new change to the history.  The
               command is always executed as the project owner.  Used by the
               _a_e_i_p_a_s_s(1) command.

               It is strongly recommended that the _h_i_s_t_o_r_y___p_u_t___c_o_m_m_a_n_d and
               _h_i_s_t_o_r_y___c_r_e_a_t_e_____c_o_m_m_a_n_d fields are identical.  If not set, the
               _h_i_s_t_o_r_y___p_u_t___c_o_m_m_a_n_d field defaults to the same value as the
               _h_i_s_t_o_r_y___c_r_e_a_t_e___c_o_m_m_a_n_d field.

               All of the substitutions described by _a_e_s_u_b(5) are available;
               in addition,

               ${Input}
                       The absolute path of the source file.

               ${History}
                       The absolute path of the history file.  This may need
                       to be reworked with the _D_i_r_n_a_m_e and _B_a_s_e_n_a_m_e
                       substitutions to yield a string suitable for the
                       history tool in question.

               See also the _h_i_s_t_o_r_y___p_u_t___t_r_a_s_h_e_s___f_i_l_e field, below.

               Executed as: the project owner.  Current directory: the base of
               the history tree.  Exit status: zero indicates succes, all non-
               zero exits indicate failure (the integrate pass will fail).

       history_query_command = string;
               This field is used to query the topmost edit of a history file.
               Result to be printed on the standard output.  This command may
               be executed by developers.  Used by the _a_e_i_p_a_s_s(1) and _a_e_c_p(1)
               commands.  All of the substitutions described by _a_e_s_u_b(5) are
               available; in addition,

               ${History}
                       The absolute path of the history file.  This may need
                       to be reworked with the _D_i_r_n_a_m_e and _B_a_s_e_n_a_m_e
                       substitutions to yield a string suitable for the
                       history tool in question.

               Executed as: the project owner.  Current directory: the base of
               the history tree.  Exit status: zero indicates succes, all non-
               zero exits indicate failure (the integrate pass will fail).

       history_label_command = string;
               This field contains a command to be executed whenever a
               _a_e_i_p_a_s_s(1) or _a_e_d_n(1) command is successful.  This command is
               invoked for eevveerryy file in the project.  So using it incurs a
               performance penalty.  If this field is absent, nothing is done.
               All of the substitutions described by _a_e_s_u_b(5) are available;
               in addition,

               ${History}
                       The absolute path of the history file.

               ${Edit}
                       The edit number to be labeled.  It may be an arbitrary
                       string, varying on the particular history tool.

               ${Label}
                       The label to  be attached to the history.  When
                       executed from _a_e_i_p_a_s_s(1) this value is the same as
                       _$_{_V_e_r_s_i_o_n_}_, which may need to be reworked with the
                       _$_{_S_u_b_s_t_} substitutions to yield a string suitable for
                       the history tool in question.  When executed from
                       _a_e_d_n(1) it is set to the value passed in from the
                       command line.

               Executed as: the project owner.  Current directory: the base of
               the history tree.  Exit status: zero indicates success, all
               non-zero exits indicate failure (a warning will be issued).

               Labeling does not scale, so the use of this command is not
               encouraged.  If you have a project with 10,000 files, and a
               change modified exactly one of them, only one _h_i_s_t_o_r_y___p_u_t___-
               _c_o_m_m_a_n_d execution is required, which operates on one history
               file.  If you have labeling turned on, it will also be
               necessary to execute 10,000 _h_i_s_t_o_r_y___l_a_b_e_l___c_o_m_m_a_n_ds, to add
               information Aegis will never use.

       history_put_trashes_file = (fatal, warn, ignore);
               Many history tools (e.g. RCS) can modify the contents of the
               file when it is committed.  While there are usually options to
               turn this off, they are seldom used.  The problem is: if the
               commit changes the file, the source in the repository now no
               longer matches the object file in the repository - i.e. the
               history tool has compromised the referential integrity of the
               repository.

               fatal
                   Emit a fatal error if one or more source files are modified
                   by a _h_i_s_t_o_r_y___p_u_t___c_o_m_m_a_n_d or _h_i_s_t_o_r_y___c_r_e_a_t_e___c_o_m_m_a_n_d.  This
                   is the default.

               warn
                   Emit a warning if a source file is modified.

               ignore
                   Ignore a source file changing.  You sure better hope it was
                   only in a comment!

       history_content_limitation = (ascii_text, international_text,
       binary_capable);
               This field describes the content style which the history tool
               is capable of working with.

               ascii_text
                       The history tool can only cope with files which contain
                       printable ASCII characters, plus space, tab and
                       newline.    The file must end with a newline.  This is
                       the default.

               international_text
                       The history tool can only cope with files which do not
                       contain the NUL character.  The file must end with a
                       newline.

               binary_capable
                       The history tool can cope with all files without any
                       limitation on the form of the contents.

               When a file is added to the history (by either the _h_i_s_t_o_r_y___-
               _c_r_e_a_t_e___c_o_m_m_a_n_d or the _h_i_s_t_o_r_y___p_u_t___c_o_m_m_a_n_d field) it is examined
               for conformance to this limitation.  If there is a problem, the
               file is encoded in either quoted printable for MIME64,
               whichever is smaller, before being given to the history tool.
               This encoding is transparent, the file in the baseline is
               unchanged.

               On extract (the _h_i_s_t_o_r_y___g_e_t___c_o_m_m_a_n_d field) the encoding is
               reversed, using information attached to the change file
               information.  This is because each put could use a different
               encoding (although in practice, file contents rarely change
               that dramatically, and the same encoding is likely to be
               deduced every time).

       diff_command = string;
               This field is used to difference of 2 files.  The command is
               always executed by developers.  Used by the _a_e_d(1) command.
               All of the substitutions described by _a_e_s_u_b(5) are available;
               in addition,

               ${ORiginal}
                       The absolute path of the original file copied into the
                       change.  Usually in the baseline, but not always.

               ${Input}
                       The absolute path of the file in the development
                       directory.

               ${Output}
                       The absolute path of the file in which to write the
                       difference listing.

               Executed as: the project owner (for integration diffs), or the
               developer (for development diffs).  Current directory: the
               integration directory (for integration diffs), or the
               development directory (for development diffs).  Exit status:
               zero indicates success, all non-zero exits indicate failure
               (the aed will fail).

       merge_command = string;
               This field is used to merge two competing edits to a file.  The
               command is always executed by developers.  The current
               directory will be the development directory.  This field is
               used by the _a_e_d(1) command.  All of the substitutions described
               by _a_e_s_u_b(5) are available; in addition,

               ${ORiginal}
                       The absolute path of the original file copied into the
                       change.  Usually not in the baseline, often a temporary
                       file.

               ${Most_Recent}
                       The absolute path of the competing edit, usually in the
                       baseline.

               ${Input}
                       The absolute path of the file in the development
                       directory.  This is the ``preferred'' edit, if the tool
                       has this concept when highlighting conflicting edits.

               ${Output}
                       The absolute path of the file in which to write the
                       merged result.  This will usually be the name if a
                       change source file in the development directory.

               It is important that this command does not move files around.
               (See the obsolete _d_i_f_f_3___c_o_m_m_a_n_d field, below, for some
               history.)

               Executed as: the project owner (for integration diffs), or the
               developer (for development diffs).  Current directory: the
               integration directory (for integration diffs), or the
               development directory (for development diffs).  Exit status:
               zero indicates succes, all non-zero exits indicate failure (the
               aed will fail).

       patch_diff_command = string;
               The difference of 2 files, to send around as a patch.  (This
               isn't the same as diff_command, because it's aimed at GNU
               Patch, not at humans.)  The command is always executed by
               developers.  Used by the _a_e_p_a_t_c_h(1) command.

               Defaults to "set +e; diff -c -L $index -L $index $original
               $input > $output; text $? -le 1" if not set.

               All of the substitutions described by _a_e_s_u_b(5) are available;
               in addition,

               ${ORiginal}
                       The absolute path of the original file copied into the
                       change.  Usually in the baseline, but not always.

               ${Input}
                       The absolute path of the file in the development
                       directory.

               ${Output}
                       The absolute path of the file in which to write the
                       difference listing.

               ${INDex}
                       The project-relative name of the file, for use when the
                       file name is embedded in the output.  (Optional.)

               Executed as: the project owner (for integration diffs), or the
               developer (for development diffs).  Current directory: the
               integration directory (for integration diffs), or the
               development directory (for development diffs).  Exit status:
               zero indicates succes, all non-zero exits indicate failure (the
               aed will fail).

       annotate_diff_command = string;
               The difference of 2 files, for the use of the _a_e_a_n_n_o_t_a_t_e(1)
               command.  (This isn't the same as the _d_i_f_f___c_o_m_m_a_n_d field,
               because it's aimed at _a_e_a_n_n_o_t_a_t_e(1), not at humans.)  The
               command is always executed by developers.  Used by the
               _a_e_a_n_n_o_t_a_t_e(1) command.

               Extreme care should be taken if you are considering setting
               this field, otherwise the result reported by _a_e_a_n_n_o_t_a_t_e(1) may
               bear little relation to reality.  The most useful option is GNU
               diff's ----iiggnnoorree--aallll--ssppaaccee option, which will have the effect of
               ignoring the majority of indenting and code formatting changes.
               The ----iiggnnoorree--ccaassee option could also be useful for case
               insensitive languages such as FORTRAN or PL/1.  Avoid options
               which would alter the number of lines, such as -- --iiggnnoorree--bbllaannkk--
               lliinneess or ----ccoonntteexxtt as these will produce misleading results.

               Defaults to "set +e; diff $option $original $input > $output;
               text $? -le 1" if not set.

               All of the substitutions described by _a_e_s_u_b(5) are available;
               in addition,

               ${ORiginal}
                       The absolute path of the original file copied into the
                       change.  Usually in the baseline, but not always.

               ${Input}
                       The absolute path of the file in the development
                       directory.

               ${Output}
                       The absolute path of the file in which to write the
                       difference listing.

               ${INDex}
                       The project-relative name of the file, for use when the
                       file name is embedded in the output.  (Optional.)

               ${OPTion}
                       Extra options to be passed to the diff command, as set
                       by the _a_e_a_n_n_o_t_a_t_e(1) --ddiiffff--ooppttiioonn command line option.
                       Use with extreme care.

               Executed as: the project owner (for integration diffs), or the
               developer (for development diffs).  Current directory: the
               integration directory (for integration diffs), or the
               development directory (for development diffs).  Exit status:
               zero indicates succes, all non-zero exits indicate failure (the
               aed will fail).

       test_command = string;
               This field is used to set the command to be executed by the
               _a_e_t(1) command.  Defaults to "$shell $file_name" if not set.

               All of the substitutions described in _a_e_s_u_b(5) are available.
               In addition:

               ${File_Name}
                       The absolute path of the test to be executed.

               ${Search_Path}
                       Colon separated list of directories to search for tests
                       and test support files.  (This is a normal _a_e_s_u_b(5)
                       substitution.)

               ${Search_Path_Executable}
                       Colon separated list of directories to search for
                       executable files and executable support files.  Usually
                       it is the same as the above, _e_x_c_e_p_t during an ``aet
                       -bl'' command.

               Note that tests are source files, and thus never have the
               execute bit set.

               Executed as: the project owner (for integration tests) or the
               developer (for development tests), or the executing user (for
               -independent tests).  Current directory: the integration
               directory (for integration tests), the development directory
               (for development tests), the project baseline (for -bl tests),
               or the current directory (for -independent tests).  Exit
               status: zero indicates success, one indicates failure, anything
               else indicates "no result".

       development_test_command = string;
               This field is used to set the command to be executed by the
               _a_e_t(1) command when a change is in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
               Defaults to be the same as the _t_e_s_t___c_o_m_m_a_n_d field if not set.

               NNoottee:: It is a significantly bad idea to make tests behave
               differently in _b_e_i_n_g _d_e_v_e_l_o_p_m_e_n_t and _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d states;
               avoid this at all costs.

               All of the substitutions described in _a_e_s_u_b(5) are available.
               In addition:

               ${File_Name}
                       The absolute path of the test to be executed.

               ${File_Name}
                       The absolute path of the test to be executed.

               ${Search_Path}
                       Colon separated list of directories to search for tests
                       and test support files.  (This is a normal _a_e_s_u_b(5)
                       substitution.)

               ${Search_Path_Executable}
                       Colon separated list of directories to search for
                       executable files and executable support files.  Usually
                       it is the same as the above, _e_x_c_e_p_t during an ``aet
                       -bl'' command.

               Note that tests are source files, and thus never have the
               execute bit set.

               Executed as: the developer.  Current directory: the development
               directory (for development tests), the project baseline (for
               -bl tests).  Exit status: zero indicates success, one indicates
               failure, anything else indicates "no result".

       batch_test_command = string;
               This field is used to set the command to be executed by the
               _a_e_t(1) command, in preference to the _t_e_s_t___c_o_m_m_a_n_d or
               _d_e_v_e_l_o_p_m_e_n_t___t_e_s_t___c_o_m_m_a_n_d, if set.  It is capable of running
               more than one test at once.

               All of the substitutions described in _a_e_s_u_b(5) are available.
               In addition:

               ${Output}
                      This is the name of the file to be generated to hold the
                      test results.  See _a_e_t_e_s_t(5) for the format of this
                      file.
                      A space separated list of absolute paths of the tests to
                      be executed.

               ${File_Names}
                      The absolute path of the tests to be executed.

               ${File_Name}
                       The absolute path of the test to be executed.

               ${Search_Path}
                       Colon separated list of directories to search for tests
                       and test support files.  (This is a normal _a_e_s_u_b(5)
                       substitution.)

               ${Search_Path_Executable}
                       Colon separated list of directories to search for
                       executable files and executable support files.  Usually
                       it is the same as the above, _e_x_c_e_p_t during an ``aet
                       -bl'' command.

               ${Current}
                       Number of first test in the batch.

               ${Total}
                       Total number of tests. If this is 0 then no progress
                       messages should be issued.

               Note that tests are source files, and thus never have the
               execute bit set.

               It is strongly recommended that you design your test scripts so
               that they may be executed by either batch or non-batch methods.
               This permits simple migration when your environment changes.

               Executed as: the project owner (for integration tests) or the
               developer (for development tests), or the executing user (for
               -independent tests).  Current directory: the integration
               directory (for integration tests), the development directory
               (for development tests), the project baseline (for -bl tests),
               or the current directory (for -indenpendent tests).  Exit
               status: zero indicates succes, one indicates failure, anything
               else indicates "no result".

       architecture_discriminator_command = string;
               If this field is present it is used as a command to be executed
               in order to further identify the platform architecture (see
               below).  All of the substitutions described by _a_e_s_u_b(5) are
               available;
               Executed as: the developer.  Current directory: the development
               directory of the change.  Exit status: zero indicates success,
               all non-zero exits indicate failure.

       architecture = [{ ... }];
               This field is a list of system and machine architectures on
               which each change must successfully build and test.  The
               structures listed have fields as follows:

               name = string;
                       The name of the architecture.  This name is available
                       in the _$_{_A_R_C_H_i_t_e_c_t_u_r_e_} substitution (see _a_e_s_u_b(5) for
                       more information), as well as being used internally by
                       Aegis.  You may use almost any name for your
                       architecture, but it is best to avoid shell special
                       characters and white space, because it may be
                       substituted into commands to be executed by Aegis.

               pattern = string;
                       The system and machine architecture are determined by
                       using the _u_n_a_m_e(2) system call.  The _u_n_a_m_e(2) return
                       value is assembled into a string of the form "_s_y_s_n_a_m_e--
                       _r_e_l_e_a_s_e--_v_e_r_s_i_o_n--_m_a_c_h_i_n_e", or "_s_y_s_n_a_m_e--_r_e_l_e_a_s_e--_v_e_r_s_i_o_n--
                       _m_a_c_h_i_n_e--_d_i_s_c" if _a_r_c_h_i_t_e_c_t_u_r_e___d_i_s_c_r_i_m_i_n_a_t_o_r___c_o_m_m_a_n_d is
                       used.

                       The pattern field must match this uname result string.
                       The first match found is used.  The pattern is a shell
                       file name pattern, see _s_h(1) for more information.

                       For example, the pattern _S_u_n_O_S_-_4_._1_*_-_*_-_s_u_n_4_* matches a
                       machine the author commonly uses, which returns
                       _S_u_n_O_S_-_4_._1_._3_-_8_-_s_u_n_4_m from the _u_n_a_m_e(2) system call.

               mode = (required, optional, forbidden);
                       The _m_o_d_e field is used to control how the architecture
                       information is used.

                       required
                               Architectures of thus mode will be copied into
                               changes as their required architectures when
                               the change is created.  This is the default.

                       optional
                               Architectures of thus mode will _n_o_t be copied
                               into changes as their required architectures
                               when the change is created.  However, if you
                               add them subsequently, they become required _f_o_r
                               _t_h_a_t _c_h_a_n_g_e.

                       forbidden
                               Aegis will refuse to build or test on
                               architectures of this mode.

                       When a change is created, the _r_e_q_u_i_r_e_d architecture
                       names are copied into the change's architecture list.
                       Once names are in this list, they are required for the
                       change, and the project attributes are less relevant.

               If the architecture field is not set, it defaults to
                      architecture =
                      [
                           {
                                name = "unspecified";
                                pattern = "*";
                                mode = required;
                           }
                      ];

       file_template = [ { ... } ];
               The file template is consulted whenever a new file is created,
               by one of the _a_e_n_f(1) or _a_e_n_t(1) commands.  Each list item has
               the form:

               pattern = [ string ];
                       The name of the file, relative to the development
                       directory.  Each string is a shell file name pattern;
                       see _s_h(1) for more information.  The patterns are
                       matched against the whole filename; naming only the
                       last filename path element will _n_o_t work (unless the
                       pattern starts with ``*'').

               body_command = string;
                       Command to run to initialize the body of the file.
                       Executed as: the developer.  Current directory: the
                       development directory of the change.  Exit status:
                       ignored.

               body = string;
                       What to initialize the body of the file to.

               All of the substitutions described in _a_e_s_u_b(5) are available
               for the _b_o_d_y and _b_o_d_y___c_o_m_m_a_n_d strings.  (Only specify one of
               them.)  In addition:

               ${File_Name}
                       will be replaced by the name of the new file.

       whiteout_template = [ { ... } ];
               The file template is consulted whenever a file is removed, by
               one of the _a_e_r_m(1) or _a_e_m_v(1) commands.  It is used to place a
               ``whiteout'' entry in the development directory, in order to
               induce compile errors of the removed file is referenced during
               the build.  Each list item has the form:

               pattern = [ string ];
                       The name of the file, relative to the development
                       directory.  Each string is a shell file name pattern;
                       see _s_h(1) for more information.  The patterns are
                       matched against the whole filename; naming only the
                       last filename path element will _n_o_t work (unless the
                       pattern starts with ``*'').

               body = string;
                       What to initialize the body of the file to.  If not
                       present, no whiteout file will be created; if the empty
                       string, a zero-length whiteout file will be created.

               All of the substitutions described in _a_e_s_u_b(5) are available
               for the body string.  In addition:

               ${File_Name}
                       will be replaced by the name of the removed file.

               If the name of the file being removed does not match any of the
               filename patterns, a file consisting of 1KB of very ugly
               garbage will be generated.  The idea is that it will produce a
               syntax error for most languages if you try to run it, compile
               it, or include it.

       maximum_filename_length = integer;
               This field is used to limit the length of filenames.  All new
               files may not have path components longer than this.  Existing
               files are not affected.  The last component must also allow for
               the ",D" suffix of difference files.  Where this value is
               larger than the file system allows, the file system limit will
               be imposed.  Defaults to 255 if not set.  Legal values range
               from 9 to 255.

               The file name lengths of project files will be checked at
               develop end if the project _c_o_n_f_i_g file is in the change.  See
               _a_e_d_e _(_1_) for more information.

       posix_filename_charset = boolean;
               This field may be used to limit the characters allowed in
               filenames to only those explicitly allowed by POSIX.  Defaults
               to false if not set.

               For a filename to be portable across conforming implementations
               of IEEE Std 1003.1-1988, it shall consist only of alphanumeric
               characters, dot, hyphen or underscore.  Hyphen shall not be
               used as the first character of a portable filename.

               If this field is false, all characters are allowed except non-
               printing characters, space characters and leading hyphens.

       dos_filename_required = boolean;
               This field may be used to limit filenames so that they conform
               to the DOS 8+3 filename limits and to the DOS filename
               character set.  Also denies filenames which look like devices
               (AUX, _e_t_c).  Defaults to false if not set.  This field is used
               in combination with the other filename fields, it does not
               replace them.

       windows_filename_required = boolean;
               This field may be used to limit filenames so that they conform
               to the Windows98 and WindowsNT filename limits and character
               set.  Also denies filenames which look like devices (AUX, _e_t_c).
               Defaults to false if not set.  This field is used in
               combination with the other filename fields, it does not replace
               them.

       shell_safe_filenames = boolean;
               This field may be used to limit filenames so that they may not
               contain shell special characters.  If you do not set this to
               true, you will need to use the ${quote} substitution around
               filenames in commands, or risk unexpected errors.  This field
               defaults to true if not set.

       filename_pattern_accept = [ string ];
               This field is used to specify a list of patterns of acceptable
               filenames.  The patterns are matched against each filename path
               element.  The patterns are constructed from the usual shell
               filename wildcards.  Defaults to "*" if not set.

       filename_pattern_reject = [ string ];
               This field is used to specify a list of patterns of
               unacceptable filenames.  The patterns are matched against each
               filename path element.  The patterns are constructed from the
               usual shell filename wildcards.  Defaults to "*,D" if not set.
               The pattern "*,D" is always appended.  Where the
               _f_i_l_e_n_a_m_e___p_a_t_t_e_r_n___a_c_c_e_p_t and filename_pattern_reject fields
               conflict, the reject takes precedence.

       new_test_filename = string;
               This field is used to form the filename of new tests, where the
               filename is not specified on the aent command line.  Defaults
               to "test/${zpad $hundred 2}/t${zpad $number 4}${left $type
               1}.sh" if not set.

               All of the substitutions defined in _a_e_s_u_b(5) are available.
               The following three substitutions are also available:

               $Hundred
                       The test number divided by 100, optional

               $Number The test number, mandatory

               $Type   The test type: "automatic" or "manual", optional

       development_directory_template = string;
               This field is used to determine the name of the development
               directory at develop begin.  All of the substitutions defined
               in _a_e_s_u_b(5) are available.  The following substitutions is also
               available:

               Default_Development_Directory
                       The directory within which the development directory is
                       to be created.

               Magic   A single letter, starting from ``C'', which can be
                       inserted.  This must be used, as it allows Aegis to try
                       different names should there be a conflict.

               If not set, defaults to "$ddd/${left $p ${expr ${namemax $ddd}
               - ${length .$magic$c}}}.$magic$c".

               For DOS compatibility (8+3 filenames), a useful setting is
               "$ddd/${downcase ${left ${id $p} 8}.$magic${right 0$c 2}}".
               This ensures that the filename is always a valid 8.3 filename,
               that it is always lowercase, and it translates any punctuation
               in the project name into underscores.

       metrics_filename_pattern = string;
               This field is used to form the name of the metrics file, given
               a source file.  All of the substitutions defined in _a_e_s_u_b(5)
               are available.  The following substitutions is also available:

               File_Name
                       The absolute pathname of the source file.

               Defaults to "$filename,S" if not set.

       trojan_horse_suspect = [ string ];
               This list of filename patterns is consulted by aedist --receive
               when it is checking for files which could be used to host
               Trojan horse attacks.  This will be different for different
               projects, so you will need to update this yourself.  The
               patterns are matched against the whole filename; naming only
               the last filename path element will _n_o_t work (unless the
               pattern starts with ``*'').

       project_specific = [ { ... } ];
               This is a list of name and value pairs for use within the
               ${project-specific} substitution (see _a_e_s_u_b(5) for more
               information).  The sub-fields are

               name = string;
                       The name of the value.

               value = string;
                       The value to be substituted.

               There are almost no limitations on the strings which may appear
               in either of these fields.

       build_time_adjust = (...);
               This field controls the adjustment of file modification times
               at the end of integrate-pass.  File times are adjusted so that
               development directories are, in the main, out of date with
               respect to the baseline.  The idea is that, at the very least,
               programs need to be relinked so that _a_e_t _-_r_e_g does not give
               false negatives.

               Combining this with the _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d (above) can
               alleviate the vast majority of file modification time
               inconsistencies experienced as a result of a project
               integration and the subsequent changes in the baseline's file
               modification times.

               Unless you are a masochist, do not set this field.  Leave it as
               the default.

               adjust_and_sleep
                       Causes the file times to be adjusted, and if the file
                       times would extend into the future, aeipass will sleep
                       until that time has passed.  This is the default.

               adjust_only
                       Causes the file times to be adjusted.  If the file time
                       extend into the future, a warning is issued.

               dont_adjust
                       File modification times are not adjusted.  This is a
                       really bad idea.  Really.  Make sure that, at the very
                       minimum, _p_r_o_j_e_c_t___f_i_l_e___c_o_m_m_a_n_d touches all of the
                       change's files, otherwise the build problems which
                       ensue are going to take you weeks to track down and
                       lose you mucho productivity.  You have been warned.

               See also the _b_u_i_l_d___t_i_m_e___a_d_j_u_s_t___n_o_t_i_f_y___c_o_m_m_a_n_d field.

OOBBSSOOLLEETTEE FFIIEELLDDSS
       There are some obsolete fields in the file.  They are provided for
       backwards compatibility only, and should not be used.

       diff3_command = string;
               This field is used to difference 3 files.  The command is
               always executed by developers.  Used by the _a_e_d(1) command.
               All of the substitutions described by _a_e_s_u_b(5) are available;
               in addition,

               ${ORiginal}
                       The absolute path of the original file copied into the
                       change.  Usually not in the baseline.

               ${Most_Recent}
                       The absolute path of the competing edit, usually in the
                       baseline.

               ${Input}
                       The absolute path of the file in the development
                       directory.

               ${Output}
                       The absolute path of the file in which to write the
                       difference listing.

               Executed as: the project owner (for integration diffs), or the
               developer (for development diffs).  Current directory: the
               integration directory (for integration diffs), or the
               development directory (for development diffs).  Exit status:
               zero indicates success, all non-zero exits indicate failure
               (the aed will fail).

               The problem with this field was that the default usage placed
               the merged source in a strange place.  And subsequent _a_e_d(1)
               commands would over-write it.  This meant that merges would be
               lost, causing a number of nasty problems.  Some sites overcame
               this by adding ``mv'' commands to put the output back where the
               input came from, but this meant that Aegis' commentary was
               misleading.  Use the ``merge_command'' field instead.  It is
               almost identical, but Aegis will move the files around for you
               - so you get the good behavior by default (no lost merges) and
               the error message is consistent.

SSEEEE AALLSSOO
       _a_e_b(1)  build a change

       _a_e_c_p(1) copy a file into a change

       _a_e_c_p_u(1)
               reverse action of aecp

       _a_e_d(1)  find differences between a change and the baseline

       _a_e_d_e(1) end development of a change

       _a_e_i_b(1) begin integration of a change

       _a_e_i_p_a_s_s(1)
               pass integration of a change

       _a_e_m_v(1) rename a file as part of a change

       _a_e_n_f(1) add new files to be created by a change

       _a_e_n_f_u(1)
               remove new files from a change

       _a_e_n_t(1) add a new test to be created by a change

       _a_e_n_t_u(1)
               remove new tests from a change

       _a_e_t(1)  run tests

       _a_e_g_i_s(5)
               aegis file format syntax

       _a_e_s_u_b(5)
               available command substitutions

       _a_e_t_e_s_t(5)
               batch test results file

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aepstate(5)                                                        aepstate(5)



NNAAMMEE
       aepstate - project state file

SSYYNNOOPPSSIISS
       _p_r_o_j_e_c_t/info/state

DDEESSCCRRIIPPTTIIOONN
       The _p_r_o_j_e_c_t/info/state file is used to store state information about a
       project.

       This file is maintained by aaeeggiiss and thus should not be edited by
       humans.

CCOONNTTEENNTTSS
       next_test_number = integer;
               Each test is numbered uniquely across all branches of the
               project.  The name is of the form _t_[_0_-_9_]_[_0_-_9_]_[_0_-_9_]_[_0_-_9_]_[_a_m_]_._s_h
               ('a' for automatic and 'm' for manual.)

   AAllmmoosstt OObbssoolleettee FFiieellddss
       The following fields are obsolete.  They will persist until the next
       _a_e_n_r_l_s(1), and the new project so generated will use them to define its
       default branching.

       version_major = integer;
               The major version number of this release of the project.
               Always one or more.

       version_minor = integer;
               The minor version number of this release of the project.
               Always zero or more.

   OObbssoolleettee FFiieellddss
       The following fields are obsolete.  They are only present in projects
       which have yet to be converted to the new branch format.  When _A_e_g_i_s
       sees them, they will be moved into the "trunk" transaction.

       description = string;
               This field contains a description of the project.  Large
               amounts of prose are not required; a single line is sufficient.

       owner_name = string;
               This field is ignored.

       group_name = string;
               This field is ignored.

       developer_may_review = boolean;
               If this field is true, then a developer may review her own
               change.  This is probably only a good idea for projects of less
               than 3 people.  The idea is for as many people as possible to
               critically examine a change.

       developer_may_integrate = boolean;
               If this field is true, then a developer may integrate her own
               change.  This is probably only a good idea for projects of less
               than 3 people.  The idea is for as many people as possible to
               critically examine a change.

       reviewer_may_integrate = boolean;
               If this field is true, then a reviewer may integrate a change
               she reviewed.  This is probably only a good idea for projects
               of less than 3 people.  The idea is for as many people as
               possible to critically examine a change.

       developers_may_create_changes = boolean;
               This field is true if developers may created changes, in
               addition to administrators.  This tends to be a very useful
               thing, since developers find most of the bugs.

       forced_develop_begin_notify_command = string;
               This command is used to notify a developer that a change
               requires developing; it is issued when a project administrator
               uses an _a_e_d_b _-_U_s_e_r command to force development of a change by
               a specific user.  All of the substitutions described in
               _a_e_s_u_b(5) are available.  This field is optional.

               Executed as: the new developer.  Current directory: the
               development directory of the change for the new developer.
               Exit status: ignored.

       develop_end_notify_command = string;
               This command is used to notify that a change is ready for
               review.  It will probably use mail, or it could be an in-house
               bulletin board.  This field is optional, if not present no
               notification will be given.  This command could also be used to
               notify other management systems, such as progress and defect
               tracking.  All of the substitutions described by _a_e_s_u_b(5) are
               available.

               Executed as: the developer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       develop_end_undo_notify_command = string;
               This command is used to notify that a change had been withdrawn
               from review for further development.  It will probably use
               mail, or it could be an in-house bulletin board.  This field is
               optional, if not present no notification will be given.  This
               command could also be used to notify other management systems,
               such as progress and defect tracking.  All of the substitutions
               described by _a_e_s_u_b(5) are available.

               Executed as: the developer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       review_pass_notify_command = string;
               This command is used to notify that a review has passed.  It
               will probably use mail, or it could be an in-house bulletin
               board.  This field is optional, if not present no notification
               will be given.  This command could also be used to notify other
               management systems, such as progress and defect tracking.  All
               of the substitutions described by _a_e_s_u_b(5) are available.

               Executed as: the reviewer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       review_pass_undo_notify_command = string;
               This command is used to notify that a review has passed.  It
               will probably use mail, or it could be an in-house bulletin
               board.  This field is optional, if not present no notification
               will be given.  This command could also be used to notify other
               management systems, such as progress and defect tracking.
               Defaults to the same action as the _d_e_v_e_l_o_p___e_n_d___n_o_t_i_f_y___c_o_m_m_a_n_d
               field.  All of the substitutions described by _a_e_s_u_b(5) are
               available.

       review_fail_notify_command = string;
               This command is used to notify that a review has failed.  It
               will probably use mail, or it could be an in-house bulletin
               board.  This field is optional, if not present no notification
               will be given.  This command could also be used to notify other
               management systems, such as progress and defect tracking.  All
               of the substitutions described by _a_e_s_u_b(5) are available.

               Executed as: the reviewer.  Current directory: the development
               directory of the change.  Exit status: ignored.

       integrate_pass_notify_command = string;
               This command is used to notify that an integration has passed.
               It will probably use mail, or it could be an in-house bulletin
               board.  This field is optional, if not present no notification
               will be given.  This command could also be used to notify other
               management systems, such as progress and defect tracking.  All
               of the substitutions described by _a_e_s_u_b(5) are available.

               Some compilers bury absolute path names into object files and
               executables.  The renaming of the integration directory to
               become the new baseline breaks these paths.  This command is
               passed an environment variable called AEGIS_INTEGRATION_-
               DIRECTORY so that the appropriate symlink may be placed, if
               desired.

               Executed as: the project owner.  Current directory: the new
               project baseline.  Exit status: ignored.

       integrate_fail_notify_command = string;
               This command is used to notify that an integration has failed.
               It will probably use mail, or it could be an in-house bulletin
               board.  This field is optional, if not present no notification
               will be given.  This command could also be used to notify other
               management systems, such as progress and defect tracking.  All
               of the substitutions described by _a_e_s_u_b(5) are available.

               Executed as: the integrator.  Current directory: the
               development directory of the change.  Exit status: ignored.

       default_development_directory = string;
               The pathname of where to place new development directories.
               The pathname must be absolute.  This field is only consulted if
               the field of the same name in the user configuration file is
               not set.

       umask = integer;
               File permission mode mask.  See _u_m_a_s_k(2) for more information.
               This value will always be OR'ed with 022, because _a_e_g_i_s is
               paranoid.

       default_test_exemption = boolean;
               This field contains what to do when a change is created with no
               test exemption specified.

       copyright_years = [ integer ];
               This field contains a list of copyright years, for use in
               copyright notices, etc.  It is updated each integrate_begin, if
               necessary, to include the current year.  Available as the
               ${Copyright_Years} substitution, and included in the version
               listing.

       next_change_number = integer;
               Changes are numbered sequentially from one.  This field records
               the next unused change number.

       next_delta_number = integer;
               Deltas are numbered sequentially from one.  This field records
               the next unused delta number.

       src = [ { ... } ];
               If you are writing a report, see _a_e_f_s_t_a_t_e(5) for the current
               documentation for this field.  This field is a list of files in
               the project.  Each list item has the form:

               file_name = string;
                       The name of the file, relative to the baseline.

               usage = (source, config, build, test, manual_test);
                       What the file is for.

               edit_number = string;
                       The edit number of the file.

               locked_by = integer;
                       The change which locked this file.
                       Caveat: this field is redundant, you can figure it out
                       by scanning all of he change files.  Having it here is
                       very convenient, even though it means multiple updates.

               about_to_be_created_by = integer;
                       The change which is about to create this file for the
                       first time.  Same caveat as above.

               deleted_by = integer;
                       The change which last deleted this file.  We never
                       throw them away, because (a) it may be created again,
                       and more important (b) we need it to recreate earlier
                       deltas.

       history = [{ ... }];
               This field contains a history of integrations for the project.
               Updated by each successful 'aegis -Integrate_Pass' command.

               delta_number = integer;
                       The delta number of the integration.

               change_number = integer;
                       The number of the change which was integrated.

               name = [ string ];
                       The names by which this delta is known.

       change = [integer];
               The list of changes which have been created to date.

       administrator = [string];
               The list of administrators of the project.

       developer = [string];
               The list of developers of the project.

       reviewer = [string];
               The list of reviewers of the project.

       integrator = [string];
               The list of integrators of the project.

       currently_integrating_change = integer;
               The change currently being integrated.  Only one change (within
               a project) may be integrated at a time.  Only set when an
               integration is in progress.

       version_major = integer;
               The major version number of this release of the project.
               Always one or more.

       version_minor = integer;
               The minor version number of this release of the project.
               Always zero or more.

       version_previous = string;
               The version number this project was derived from.  This is of
               most use when producing "patch" files.

WWRRIITTIINNGG RREEPPOORRTT SSCCRRIIPPTTSS
       When attempting to access these fields from within the report
       generator, you need a code fragment similar to the following:
              auto ps;
              ps = project[project_name()].state;
       All of the fields mentioned in the man page can now be accessed as
       members of the ps variable.

       When you access the _b_r_a_n_c_h field, you obtain access to the change state
       of the branch.  Even the trunk has one of these, it just doesn't have a
       number, and it is perpetually being developed.

       When you index the _b_r_a_n_c_h_._c_h_a_n_g_e field by a change number, you obtain
       access to the change state of that change.

       When you index the _b_r_a_n_c_h_._s_r_c field by a filename string, you may
       obtain access the the relevant project file state (see _a_e_f_s_t_a_t_e(5) for
       more information).

       In addition to the above fields, the report generator inserts a _n_a_m_e
       field containing the project name, and a _d_i_r_e_c_t_o_r_y field containing the
       project directory path.

SSEEEE AALLSSOO
       _a_e_n_p_r(1)
               create a new project

       _a_e_g_i_s(5)
               aegis file format syntax

       _a_e_p_a_t_t_r(5)
               project attributes file format

       _a_e_c_s_t_a_t_e(5)
               change state file

       _a_e_f_s_t_a_t_e(5)
               file state file

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aer(5)                                                                  aer(5)


NNAAMMEE
       aer - report script language definition

DDEESSCCRRIIPPTTIIOONN
       This manual entry describes the report generator script language used
       by the _a_e_r(1) command.  The language resembles C, with a touch of _a_w_k
       and _p_e_r_l for flavour.  It also closely resembles the appearance of
       aegis' database files.

       This language grew out of the need to have a general purpose
       programming language to describe reports, and yet be as familiar as
       possible to the people who will be using it.

WWOORRDDSS AANNDD SSYYMMBBOOLLSS
       This section describes the various words and symbols understood by the
       language.

   NNaammeess
       A name is a contiguous set of alphanumeric characters, including
       underscore (_).  It must not start with a digit.  Names may be of any
       length.  Names are case sensitive, so uppercase and lowercase letters
       are unique.

       Here are some examples of names

                           +-----------------------------+
                           | print       sqrt       if   |
                           |how_long   UpperCase   dig57 |
                           +-----------------------------+
       Some words are _r_e_s_e_r_v_e_d as keywords.  These are the words which appear
       in bboolldd in the statement descriptions, below.

   IInntteeggeerr CCoonnssttaannttss
       An integer constant may be decimal, any sequence of digits.  Constants
       may be octal, any sequence of octal digits starting with a zero.
       Constant may be hexadecimal, any sequence of hexadecimal digits,
       starting with a 0x prefix.  These are represented by the internal long
       type, so significance is limited.

       Here are some examples of integer constants:

                      +---------------------------------------+
                      |        43            015       0xbeEf |
                      |2147483647   017777777777   0x7FFFFFFF |
                      +---------------------------------------+
   FFllooaattiinngg PPooiinntt CCoonnssttaannttss
       A floating point constant has an integer part, a fraction part and an
       exponent part.

       Here are some examples of floating point constants:

                            +---------------------------+
                            |1.2e3   4.2e+1   1.628e-94 |
                            |0.567      5e6         .67 |
                            +---------------------------+
   SSttrriinngg CCoonnssttaannttss
       A string constant is represented as characters within double quotes
       (").  All characters in the script file are required to be printable,
       so special characters are represented by _e_s_c_a_p_e _s_e_q_u_e_n_c_e_s_.  These
       escape sequences are:

                           +-----------------------------+
                           |\"     the " character       |
                           |\\     the \ character       |
                           |\n     Newline               |
                           |\f     Form Feed             |
                           |\r     Carriage Return       |
                           |\b     Backspace             |
                           |\t     Horizontal Tab        |
                           |\_n_n_n   octal character value |
                           +-----------------------------+
       Here are some examples of string constants:

                +---------------------------------------------------+
                |"Hello, World!"     "Go away"            ""        |
                |   "The End0      "slosh is \\"   "Say \"Please\"" |
                +---------------------------------------------------+
   SSyymmbboollss
       The non-alphanumeric characters are used to represent symbols, usually
       expression operators or statement terminators.  The symbols used
       include:

                             +--------------------------+
                             | !    !=   !~    ##   ##= |
                             | %    %=    &    &&   &=  |
                             | (    )     *    **   **= |
                             |*=    +    ++    +=    ,  |
                             | -    --   -=    .     /  |
                             |/=    :     ;    <    <<  |
                             |<<=   <=    =    ==    >  |
                             |>=    >>   >>=   ?     [  |
                             | ]    ^    ^=    {     |  |
                             ||=    ||    }    ~    ~~  |
                             +--------------------------+
   WWhhiittee SSppaaccee
       White space serves to separate words and symbols, and has no other
       significance.  The language is free-form.  White space includes the
       SPACE, TAB, FF, and NEWLINE characters.

   CCoommmmeennttss
       Comments are delimited by /* and */ pairs, and are treated as a single
       white space character.

SSTTAATTEEMMEENNTTSS
       Statement serve to control the flow of execution of the program, or the
       existence of variables.

   TThhee EExxpprreessssiioonn SSttaatteemmeenntt
       The commonest statement consists of an expression terminated by a
       semicolon.  The expression is evaluated, and any result is discarded.

       Examples of this statement include
              x = 42;
              print("Hello, World!0);

   TThhee IIff SSttaatteemmeenntt
       The _i_f statement is used to conditionally execute portions of code.
       Examples if the _i_f statement include:
              if (x == 42)
                   x = 1;
              if (x * x < 1)
                   print("no");
              else
                   print("yes");

   TThhee FFoorr SSttaatteemmeenntt
       The _f_o_r statement has two forms.  The first form is described as
              for (_e_x_p_r_1; _e_x_p_r_2; _e_x_p_r_3)
                   _s_t_m_t
       The _e_x_p_r_1 is done before the loop begins.  The _e_x_p_r_2 controls, the
       loop; if it does not evaluate to true the loop terminates.  The loop
       body is the _s_t_m_t.  The loop increment is done by the _e_x_p_r_3, and the the
       test is performed again.

       Each of the expressions is optional; any or all may be omitted.

       Here is an example of a _f_o_r loop:
              for (j = 0; j < 10; ++j)
                   print(j);

       The second form of the _f_o_r statement looks like this:
              for (name in keys(passwd))
                   print(name, passwd[name].pw_comment);

   TThhee BBrreeaakk SSttaatteemmeenntt
       The _b_r_e_a_k statement is used to break out of a loop.

       Here is an example of a _b_r_e_a_k statement:
              for (j = 0; ; j = 2 * j + 4)
              {
                   print(j);
                   if (j >= 0x800)
                        break;
              }
       The _b_r_e_a_k statement works within all loop statements.

   TThhee CCoonnttiinnuuee SSttaatteemmeenntt
       The _c_o_n_t_i_n_u_e statement is used to terminate the loop body and start
       another repetition.

       Here is an example of a _c_o_n_t_i_n_u_e statement:
              for (j = 0; j < 1000; j = 2 * j + 4)
              {
                   if (j < 42)
                        continue;
                   print(j);
              }
       The _c_o_n_t_i_n_u_e statement works within all loop statements.

   TThhee WWhhiillee SSttaatteemmeenntt
       The _w_h_i_l_e statement is another loop construct.  The condition is
       evaluated before the loop body.
              line = 0;
              while (line < 7)
              {
                   print("");
                   ++line;
              }

   TThhee DDoo SSttaatteemmeenntt
       The _d_o statement is another loop construct.  The condition is evaluate
       after the loop body.
              do
                   print("yuck");
              while
                   (line++ < 7);

   TThhee CCoommppoouunndd SSttaatteemmeenntt
       The _c_o_m_p_o_u_n_d statement is a way of grouping other statements together.
       It is enclosed in curly braces.
              if ( lines < 7)
              {
                   print("This\n");;
                   print("could\n");;
                   print("have\n");;
                   print("been\n");;
                   print("seven\n");;
                   print("blank\n");;
                   print("lines.\n");;
              }

   TThhee LLooccaall SSttaatteemmeenntt
       The _a_u_t_o statement is used to declare variables and initialize them to
       be nul.
              auto x, y, z;
              x = 42;
       All user-defined variables must be declared before they are used.

   TThhee NNuullll SSttaatteemmeenntt
       The _n_u_l_l statement does nothing.  It consists of a single semicolon.
       It is most often seen as a loop body.
              for (n = 0, bit = 1; n < bit_num; ++n, bit <<= 1)
                   ;

   TThhee TTrryy CCaattcchh SSttaatteemmeenntt
       The _t_r_y _c_a_t_c_h statement is used to catch errors which would usually
       cause the report to fail.
              try
                   _s_t_a_t_e_m_e_n_t_1
              catch (_v_a_r_i_a_b_l_e)
                   _s_t_a_t_e_m_e_n_t_2
       The first statement is executed.  If no error occurs, nothing else is
       done.  If an error occurs in the execution of the first statement the
       firsdt statement execution is terminated and then the given variable is
       set to a description of the error and the second statement is executed.

EEXXPPRREESSSSIIOONNSS
       Expressions are much the same as in C, using the same operators.  The
       following table describes operator precedence and associativity:


       [ ]     subscripting                _v_a_l_u_e [ _e_x_p_r ]
       ( )     function call               _e_x_p_r ( _e_x_p_r___l_i_s_t )
       ( )     grouping                    ( _e_x_p_r )


       ++      post increment              _l_v_a_l_u_e ++
       ++      pre increment               ++_l_v_a_l_u_e
       --      post decrement              _l_v_a_l_u_e --
       --      pre decrement               --_l_v_a_l_u_e
       ~       compliment                  ~ _e_x_p_r
       !       not                         ! _e_x_p_r
       -       unary minus                 - _e_x_p_r
       +       unary plus                  + _e_x_p_r


       **      exponentiation              _e_x_p_r ** _e_x_p_r


       *       multiply                    _e_x_p_r * _e_x_p_r
       /       divide                      _e_x_p_r / _e_x_p_r
       %       modulo (remainder)          _e_x_p_r % _e_x_p_r
       ~~      matches                     _e_x_p_r ~~ _e_x_p_r
       !~      does not match              _e_x_p_r !~ _e_x_p_r
       in      list member                 _e_x_p_r in _e_x_p_r


       +       addition (plus)             _e_x_p_r + _e_x_p_r
       -       subtraction (minus)         _e_x_p_r - _e_x_p_r
       ##      list and string join        _e_x_p_r ## _e_x_p_r


       <<      shift left                  _e_x_p_r << _e_x_p_r
       >>      shift right                 _e_x_p_r >> _e_x_p_r


       <       less than                   _e_x_p_r < _e_x_p_r
       <=      less than or equal          _e_x_p_r <= _e_x_p_r
       >       greater than                _e_x_p_r > _e_x_p_r
       >=      greater than or equal       _e_x_p_r >= _e_x_p_r


       ==      equal                       _e_x_p_r == _e_x_p_r
       !=      not equal                   _e_x_p_r != _e_x_p_r


       &       bitwise AND                 _e_x_p_r & _e_x_p_r


       ^       bitwise exclusive OR        _e_x_p_r ^ _e_x_p_r


       |       bitwise inclusive OR        _e_x_p_r | _e_x_p_r


       ? :     arithmetic if               _e_x_p_r ? _e_x_p_r : _e_x_p_r


       =       simple assignment           _e_x_p_r = _e_x_p_r
       *=      multiply and assign         _e_x_p_r *= _e_x_p_r
       /=      divide and assign           _e_x_p_r /= _e_x_p_r
       %=      modulo and assign           _e_x_p_r %= _e_x_p_r
       +=      add and assign              _e_x_p_r += _e_x_p_r
       -=      subtract and assign         _e_x_p_r -= _e_x_p_r
       <<=     shift left and assign       _e_x_p_r <<= _e_x_p_r
       >>=     shift right and assign      _e_x_p_r >>= _e_x_p_r
       &=      AND and assign              _e_x_p_r &= _e_x_p_r
       ^=      exclusive OR and assign     _e_x_p_r ^= _e_x_p_r
       |=      inclusive OR and assign     _e_x_p_r |= _e_x_p_r


       ,       comma (sequencing)          _e_x_p_r , _e_x_p_r

       Most of these operators behave as they do in C, but some of these
       operators will require some explanation.

   EExxppoonneennttiiaattiioonn
       The ** operator raises the left argument to the right'th power.  It is
       right associative.

   MMaattcchh
       The ~~ operator compares two strings.  It returns a number between 0.0
       and 1.0.  Zero means completely different, one means identical.  Case
       is significant.

   NNoott MMaattcchh
       The !~ is used to compare two strings, and returns the opposite of the
       ~~ operator; one if completely different, and zero if identical.

   SSttrriinngg JJooiinn
       The ## operator is used to join two strings together.

TTYYPPEESS
       There are several types used within the report language.

       array   Values of this type contain other values, indexed by a string.
               If you attempt to index by an arithmetic type, it will be
               silently converted to a string.  Use the _k_e_y_s function to
               determine all of the keys; use the _c_o_u_n_t function to determine
               how many entries an array has.  The type of an array element is
               not restricted, only the index must be a string.

       boolean This type has two values: true and false.  These value arise
               from the boolean operators described earlier.

       integer This type is represented by the _l_o_n_g C type.  It has a limited
               range of values (usually -2e9 to 2e9 approximately).  If used
               in a string context, it will be silently converted to a string.
               For exact control of the format, used the _s_p_r_i_n_t_f function.

       list    Values of this type contain a list of other values.  The type
               of these values is not restricted.  The array index operator
               (e[e]) may be used to access list elements; indexes start at
               zero (0).

       string  Values of this type are an arbitrary string of C characters,
               except the NUL character ( ).  Strings may be of any length.

       struct  Values of this type contain additional values.  These values
               are accessed using the "dot" operator.  These values may also
               be treated as if they were arrays.

       real    This type is represented the the _d_o_u_b_l_e C type.  If used in a
               string context, it will be silently converted to a string.  For
               exact control of the format, used the _s_p_r_i_n_t_f function.

FFUUNNCCTTIIOONNSS
       There are a number of built-in functions.

       basename
               This function is used to extract the last element from a file
               path.

       capitalize
               This function converts it argument to a capitalized string in
               Title Case.

       ceil    This function is used to round a number to an integer, towards
               positive infinity.

       change_number
               This function is used to determine the change number.  It may
               be set by the --CChhaannggee command line option, or it may default.
               The return value is an integer.

       change_number_set
               This function maybe used to determine if the change number was
               set by the --CChhaannggee command line option.  The return value is a
               boolean.

       columns This function is used to define the report columns.  Each
               argument is a structure containing some or all of the following
               fields:

                     left      the left margin, counting characters
                               from 0 on the left
                     right     the right margin, plus one
                     width     the width in characters, defaults to 7
                               if right not specified
                     padding   white space between columns, defaults to
                               1 if not set
                     title     the title for this column, separate
                               multiple lines with \n
               The columns must be defined before the _p_r_i_n_t function is used.

       count   This function is used to count the number of elements in a list
               or array.

       dirname This function is used to extract all but the last element from
               a file path.

       downcase
               This functions converts its argument to lower case.

       eject   This function is used to start a new page of output.

       floor   This function is used to round a number to an integer, towards
               negative infinity.

       getenv  This function is used to get the value of an environment
               variable.  Will return the empty string if not set.

       gettime This function is used to parse a string to produce a time.  It
               understands a variety of different date formats.

       getuid  This function takes no arguments, and returns the user ID of
               the process which invoked the report generator. The return
               value is an integer.

       keys    This function may be given an array or a list as argument.  It
               returns a list of keys which may be used to index the argument.
               Most often seen in for loops.

       length  This function is used to find the length of a string.

       mktime  This a synonym for the _g_e_t_t_i_m_e function.

       mtime   This function may be used to obtain the modification time of a
               file.

       need    This function is used to insert a page break into the report if
               the required number of lines is not available before the end of
               page.  If sufficient lines are available, only a single blank
               line will be inserted.  The return value is void.

       now     This function takes no arguments, and returns the current time.

       page_length
               This function may be used to determine the length of the output
               page in lines.  The return value is an integer.

       page_width
               This function may be used to determine the width of the output
               page in columns.  The return value is an integer.

       print   This function is used to print into the defined columns.
               Columns will wrap around.

       project_name
               This function is used to determine the project name.  It may be
               set by the --PPrroojjeecctt command line option, or it may default.
               The return value is a string.

       project_name_set
               This function maybe used to determine if the project name was
               set by the --PPrroojjeecctt command line option.  The return value is a
               boolean.

       quote_html
               This function quotes its argument string to insulate HTML
               special characters; these include ``less than'' (<),
               ``ampersand'' (&) and non-printing characters.  This is most
               often used to generate suitable text for web pages.

       quote_tcl
               This function quotes its argument string to insulate TCL
               special characters; these include ``[]'' and non-printing
               characters.  This is most often used to generate suitable text
               for TCL interface scripts.

       quote_url
               This function quotes its argument string to insulate URL
               special characters; these include ``?+#:&='' and non-printing
               characters.  This is most often used to generate suitable text
               for web pages.

       round   This function is used to round a number to an integer, towards
               the closest integer.

       sort    This function must be given a list as argument.  The values are
               sorted into ascending order.  A new list is returned.

       split   This function is used to split a string into a list of strings.
               The first argument is the string to split, the second argument
               is the character to split around.

       sprintf This function is used to build strings.  It is similar to the
               _s_p_r_i_n_t_f(3) function.

       strftime
               This function is used to format times as strings.  The first
               argument is the format string, the second argument is a time.
               See the _s_t_r_f_t_i_m_e(3) man page for more the format specifiers.

       subst   This function is used to substitute strings by regular
               expression.  The first argument is the pattern to match, the
               second argument is the substitution pattern, the third argument
               is the input string to be substituted.  The option fourth
               argument is the number of substitutions to perform; the default
               is as many as possible.

       substr  This function is used to extract substrings from strings.  The
               first argument is a string, the second argument is the starting
               position, starting from 0, and the third argument is the
               length.

       terse   This function may be used to determine of the --TTEERRssee command
               line option was used.  The return type is a boolean.

       title   This function is used to set the title of the report.  It takes
               at most two arguments, one for each available title line.

       trunc   This function is used to round a number to an integer, towards
               zero.

       typeof  This function is used to determine the type of a value.  The
               return type is a string containing the name of the type, as
               described in the

       unquote_url
               This function will remove URL quoting from the argument string.
               URL quoting takes the form of a percent sign (%) followed by
               two hex digits.  This is replaced by a single character with
               the value represented by the hex digits.

       upcase  This functions converts its argument to upper case.

       working_days
               This function is used to determine the number of working days
               between two times.

       wrap    This function is used to wrap a string into a list of strings.
               The first argument is the wring to wrap, the second argument is
               the maxmium width of the output strings.

       wrap_html
               This function is used to wrap a string into a list of strings.
               The first argument is the wring to wrap, the second argument is
               the maxmium width of the output strings.  This is very similar
               to the _w_r_a_p functions, except thatit inserts HTML paragraph
               breaks <p> or line breaks <br> to reflect the newlines within
               the string (2 or 1, respectively).  _T_Y_P_E_S section.

VVAARRIIAABBLLEESS
       There are a number of built-in variables.

       arg     This variable is a list containing the arguments passed on the
               _a_e_r(1) command line.

       change
               There is a special type of variable created by using an
               expression similar to _p_r_o_j_e_c_t_[_p_r_o_j_e_c_t___n_a_m_e_(_)_]_._s_t_a_t_e_._c_h_a_n_g_e_[_n_]
               which contains all of the fields described in aecstate_(_5_)_, _p_l_u_s
               _s_o_m_e _e_x_t_r_a_s_:

               _c_h_a_n_g_e  Branches have a change array, just like _p_r_o_j_e_c_t below.

               change_number
                       The number of the change.

               config  This gives access to all of the fields described in
                       _a_e_p_c_o_n_f_(_5_)_.

               _p_r_o_j_e_c_t___n_a_m_e
                       The name of the project containing the change.

               src     This gives access to the change files, and when indexed
                       by file name, yields a value conataining fields as
                       described in _a_e_f_s_t_a_t_e(5), for the _s_r_c field.

       group   This variable is an array containing all of the entries in the
               _/_e_t_c_/_g_r_o_u_p file.  Each entry is a structure with fields as
               documented in the _g_r_o_u_p(5) manual entry.  The _g_r___m_e_m element is
               a list of strings.  This array may be indexed by either a
               string, treated as a group name, or by an integer, treated as a
               GID.

       passwd  This variable is an array containing all of the entries in the
               _/_e_t_c_/_p_a_s_s_w_d file.  Each entry is a structure with fields as
               documented in the _p_a_s_s_w_d(5) manual entry.  This array may be
               indexed by either a string, treated as a user name, or by an
               integer, treated as a uid.

       project This variable is an array containing one entry for each aegis
               project, indexed by name.  Each array element is a structure,
               containing

                     name        the project name
                     directory   the root of the project directory tree
                     state       the project state
               The project state contains the fields documented in the
               _a_e_p_s_t_a_t_e(5) manual entry.  Except: the _c_h_a_n_g_e field is not a
               list of change numbers, it is an array indexed by change number
               of change states, as documented in the _a_e_c_s_t_a_t_e(5) manual
               entry.  (See _c_h_a_n_g_e, above.)

       user    This variable is an array containing the _._a_e_g_i_s_r_c file of each
               user.  Each entry is a structure with fields as documented in
               the _a_e_u_c_o_n_f(5) manual entry.  This array may be indexed by
               either a string, treated as a user name, or by an integer,
               treated as a uid.  Files which are unreadable or absent will
               generate an error, so you need to wrap accesses in a try/catch
               statement.  (Note: count() and keys() functions think the array
               is empty; if you want a list of users, consult the passwd
               array.)

FFIILLEESS
       The reports are kept in the _/_u_s_r_/_s_h_a_r_e_/_a_e_g_i_s_/_r_e_p_o_r_t directory.  The
       reports are associated with a name by the _/_u_s_r_/_s_h_a_r_e_/_a_e_g_i_s_/_r_e_p_o_r_t_._i_n_d_e_x
       file.  Their names use the command line argument abbreviation scheme,
       so that report names may be abbreviated.

SSEEEE AALLSSOO
       _a_e_r(1)  report generator

       _a_e_c_s_t_a_t_e(5)
               change state description

       _a_e_p_s_t_a_t_e(5)
               project state description

       _a_e_r_p_t_i_d_x(5)
               report index file format

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aerptidx(5)                                                        aerptidx(5)



NNAAMMEE
       aerptidx - report index file format

SSYYNNOOPPSSIISS
       /usr/share/aegis/report.index
       /usr/share/aegis/report.local

DDEESSCCRRIIPPTTIIOONN
       The report index file is used to store pointers to report scripts, and
       descriptions of the reports.

       When searching for a report, the _a_e_r(1) command searches down the
       _A_E_G_I_S___P_A_T_H looking for _r_e_p_o_r_t_._i_n_d_e_x files, and searching them for the
       report named.

CCOONNTTEENNTTSS
       where = [{ ... }];
               This field is a table relating report name to file name.  The
               structure is as follows:

               name = string;
                       The name of a report.  The command line argument naming
                       scheme is used, to provide abbreviatable names.

               description = string;
                       A brief description of the report.  It should not be
                       very long, one or two lines at most.

               filename = string;
                       The name of the file containing the report script.  If
                       a relative path is given, it will be interpreted to be
                       relative to the directory containing the _r_e_p_o_r_t_._i_n_d_e_x
                       file.

SSEEEE AALLSSOO
       _a_e_r(1)  report generator

       _a_e_g_i_s(5)
               aegis file format syntax

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aesub(5)                                                              aesub(5)


NNAAMMEE
       aesub - available command substitutions

DDEESSCCRRIIPPTTIIOONN
       When other programs are invoked by the _a_e_g_i_s program, it is usually via
       a command string in a configuration file.  This section describes the
       format of these command strings.

GGEENNEERRAALL FFOORRMM
       The command strings are very similar to shell variables.  An example
       will illustrate this:
               build_command =
                    "cook project=${project} change=${change}";
       In this command definition, the "${project}" part is a substitution:
       the name of the project will be substituted in the command at this
       point.

       Substitutions may take several forms:

       $name
               This is the same as saying "${name}".  The name must start with
               an alphabetic, and be followed by zero or more alphanumerics.

       ${name}
               The name in this form may contain any non-blank characters, and
               it may be subject to substitution.

       ${name _a_r_g...}
               The name and the arguments in this form may contain any non-
               blank characters, and it may be subject to further
               substitution.  Within the braces ({{ and }}) pairs of single
               quote characters (''_b_l_a_h _b_l_a_h'') may be used to insulate spaces
               and other special characters, or you may use the back quote (\\)
               to escape a single character.

       $$
               This is replaced by a single $ character.  It avoid RCS
               expansions, you can also use ${$}.

       %%
               This is replaced by a single % character.  Percent (%%) followed
               by anything else is illegal.

       $#...\n This is a comment, usually found in template files read in
               using the ${read_file} substitution.  It consumes all
               characters up to and including the next newline.  (See also
               ${comment}, below.)

       As another example, the _d_i_r_n_a_m_e substitution is replaced by the
       directory name of the argument, rather like the _d_i_r_n_a_m_e(1) command.  In
       the command
              history_query_command =
                   "get -t -g ${Dirname $History}/s.${Basename $History}";
       the _D_i_r_n_a_m_e and _B_a_s_e_n_a_m_e substitutions are used to construct a suitable
       path to the SCCS file in the history directory.

AABBBBRREEVVIIAATTIIOONNSS
       The names of the various substitutions may be abbreviated.  In the
       above examples, and in the lists which follow, the minimum abbreviation
       is the uppercase letters.  All substitution name are case insensitive.

       The above example could be abbreviated to
              history_query_command =
                   "get -t -g ${d $h}/s.${b $h}";

       Ambiguous abbreviations will result in a fatal error message.

SSUUBBSSTTIITTUUTTIIOONNSS
       There are many substitutions which are always understood, and some
       which are specific to the command being substituted.  Specific entries
       will be defined in the relevant manual section.

       The following lists contains those substitutions which are always
       understood:

       Add_Path_Suffix
               This substitution may be used to add a suffix to each element
               of a colon-separated path list.  The first argument is the
               suffix to use, the second and subsequent arguments are the
               colon-separated paths to work on.  The result is a single colon
               separated path.  Often used in combination with the
               ${search_path} substitution, below.

       Administrator_List
               Space separated list of the project's administrators.  Takes an
               optional argument in the same form as the _u_s_e_r substitution.

       ARCHitecture
               This substitution is replaced by the architecture name
               appropriate for the current execution environment.  Requires no
               arguments.  See the _a_r_c_h_i_t_e_c_t_u_r_e field of _a_e_p_c_o_n_f(5) for more
               information.  When used in commands, you may need to surround
               this substitution with the _q_u_o_t_e substitution (see below), if
               any of your architecture names contain shell special
               characters.

       BaseLine
               Absolute path of the the project's baseline.

       Basename
               This substitution takes one argument, a pathname.  The value of
               the substitution will be the last element of the pathname.
               This is similar to the _b_a_s_e_n_a_m_e(1) command.

       BAse_RElative
               This substitution takes at least one pathname.  The value of
               the substitution is the base-relative filenames, with any
               change-specific or project baseline specific leading path
               removed.  The file does not have to be a project source file.
               (This is almost the inverse of the $source substitution,
               below.)

       BINary_DIRectory
               The absolute path of Aegis' architecture-specific binary
               (executables) directory.  This corresponds to the ``_._/_c_o_n_f_i_g_u_r_e
               _-_b_i_n_d_i_r'' option when Aegis was built.  This is where most of
               the Aegis executable programs are installed.

       CAPitalize
               This substitution takes at least one argument.  The value of
               the substitution will be the arguments with the first letter of
               each word forced to upper case and the rest forced to lower
               case.

       Change
               This substitution provides various information about the
               change, based on the argument it is given.

               cause   This returns the cause of the change.

               date _f_o_r_m_a_t
                       This returns the completion date of the change.  See
                       _D_A_T_E section for additional arguments.

               delta   This returns the delta number of the change.

               description
                       This returns the brief description of the change.

               developer
                       This returns the name of the developer of the change.

               development_directory
                       This returns the development directory of the change.

               integrator
                       This returns the name of the integrator of the change.

               integration_directory
                       This returns the integration directory of the change.

               number  This returns the number of the change.  (This is the
                       default if no argument is given.)

               reviewer
                       This returns the name of the reviewer of the change.

               state   This returns the state of the change.

               version This returns the version of the change.

       Change_Files
               This is replaced by a space separated list of change file
               names.  There are several qualifying arguments you can give to
               this substitution:

               _a_c_t_i_o_n  You may give one or more file actions (e.g. _m_o_d_i_f_y).
                       Only files with one of the actions will be returned.
                       By default, all file actions are returned.

               _t_y_p_e    You may give one or more file types (e.g. _s_o_u_r_c_e).
                       Only files with one of the types will be returned.  By
                       default, all file types are returned.

               not     Inverts the sense of operations.  For example
                       _$_{_c_h_a_n_g_e___f_i_l_e_s _n_o_t _r_e_m_o_v_e_} will return the names of all
                       change files not being removed.

               quote   This does not affect which file are selected, but it
                       causes the file names to be quoted if they contain
                       shell meta-characters.

               If you specify both actions and types, only files both
               qualifiers will be returned.  For example _$_{_c_h_a_n_g_e___f_i_l_e_s _m_o_d_i_f_y
               _t_e_s_t_} will return only the names of automatic test files which
               are being modified.

       COMment
               Inserts exactly nothing; any and all arguments are ignored.
               Another form of comment is ``$#'' which extends to the end of
               the current line.

       Copyright_Years
               Inserts a comma separated list of copyright years from the
               project attributes.  This list of years is maintained by _a_e_g_i_s
               at integrate begin, and so is only guaranteed to be up-to-date
               in the'_b_e_i_n_g _i_n_t_e_g_r_a_t_e_d' state.  Do not use this substitution
               in new file templates, it is not guaranteed to be up-to-date in
               the '_b_e_i_n_g _d_e_v_e_l_o_p_e_d' state; use the ${date %Y} substitution in
               new file templates.

               This list contains spaces, so if you use it to build commands,
               you will probably need to quote, it as well.

       DATa_DIRectory
               The absolute path of Aegis' architecture-neutral library
               directory.  This corresponds to the ``_._/_c_o_n_f_i_g_u_r_e _-_d_a_t_a_d_i_r''
               option when Aegis was built.  This is where most of the scripts
               included with Aegis are installed.

       DAte
               With no arguments, the output is the current date.  If there
               are arguments, they form a format string.  This is similar to
               the _d_a_t_e(1) command on many UNIX systems.  For a description of
               the date formats, see the _D_A_T_E section, below.

       DELta
               The delta number of the change.  This is only available when
               the change is in the _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d state or the _c_o_m_p_l_e_t_e_d
               state.

       DEVeloper
               The name of the developer.  Takes an optional argument in the
               same form as the _u_s_e_r substitution.

       DEVeloper_List
               Space separated list of the project's developers.  Takes an
               optional argument in the same form as the _u_s_e_r substitution.

       Development_Directory
               The absolute path of the change's development directory.  Only
               available when the change is between the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state
               and the _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d state.

       Dirname
               This substitution takes at least one argument, a pathname.  The
               value of the substitution will be everything but the last
               element of the pathname.  This is similar to the _d_i_r_n_a_m_e(1)
               command.

       Dirname_RELative
               This substitution takes at least one argument, a pathname.  The
               value of the substitution will be everything but the last
               element of the pathname.  This is similar to the _d_i_r_n_a_m_e
               substitution, except that if there are no directory components,
               it returns dot (``.'').

       DownCase
               This substitution takes at least one argument.  The value of
               the substitution will be the argument with any upper case
               letters mapped to lower case.

       ENVironment
               This substitution takes at least one argument.  The value of
               the substitution is the value of the corresponding environment
               variable, or empty of undefined.

       ERrno
               This substitution takes no arguments.  The value of the
               substitution will be the value if the _e_r_r_n_o variable provided
               by the system, as mapped through the _s_t_r_e_r_r_o_r function.  Thus
               you may give the users informative system error messages.

       EXpression
               This substitution evaluates simple arithmetic expressions.
               Addition, subtraction, division, multiplication, modulo and
               negation are understood.  The 6 basic comparison operators are
               available.  The usual C syntax and precedence are used.  The
               arguments must constitute a valid expression, white space and
               word boundaries are ignored.

       History_Directory
               This substitution takes zero arguments.  It is replaced by the
               absolute path of the history directory of the project.

       IDentifier
               This substitution takes at least one argument.  The value of
               the substitution will be the argument with all characters but
               alpha numerics mapped into an underscore (_), so as to form a
               legal C identifier.

       INTegration_Directory
               The absolute path of the change's integration directory.  Only
               available when the change is in the _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d state.

       INTegrator
               The name of the change's integrator.  Only available when the
               change is in the _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d state or the _c_o_m_p_l_e_t_e_d state.
               Takes an optional argument in the same form as the _u_s_e_r
               substitution.

       INTegrator_List
               Space separated list of the project's integrators.  Takes an
               optional argument in the same form as the _u_s_e_r substitution.

       LEFt    This substitution extracts the left hand side of strings.  It
               takes two arguments: the first is the string, the second is the
               number of characters.

       LENgth  This substitution determines the length of strings, the result
               is a number.  It takes one argument: the string to be measured.

       LIBrary
               The absolute path of Aegis' library directory.  This
               corresponds to the ``_._/_c_o_n_f_i_g_u_r_e _-_d_a_t_a_d_i_r'' option when Aegis
               was built.  This substitution is deprecated - please use
               ${datadir} instead.

       LIBrary_DIRectory
               The absolute path of Aegis' architecture-specific library
               directory.  This corresponds to the ``_._/_c_o_n_f_i_g_u_r_e _-_l_i_b_d_i_r''
               option when Aegis was built.

       Name_Maximum
               This substitution is used to get the maximum file name length
               within a file system.  It takes at least one argument: the name
               of a directory within the file system.  Frequently used with
               ${left} to crop filenames to the file system maximum.

       PERL    This function requires zero arguments.  It is replaced by the
               absolute path of a Perl interpreter.

       PLural
               This function requires 2 or 3 arguments.  The first argument is
               evaluated as a number, if it is plural (not equal to 1) the
               second argument is the result, otherwise the third argument is
               the result (or empty if not given).  This is mostly used to
               pluralize sentences in Germainic error messages.

       PLural_Forms
               The _p_l_u_r_a_l___f_o_r_m_s substitution is similar to the _$_{_p_l_u_r_a_l_}
               substitution, except that it reads and understands the Plural-
               Forms: header in the message catalogue.  This means that it
               understands a greater range of pluralization mechanisms than
               the simple _$_{_p_l_u_r_a_l_} substitution.  (For a description of the
               Plural-Forms: header, see the GNU Gettext manual.)

               The first argument is the number.  Second is the singular form
               (corresponding to the Plural-Forms: expression evaluating to
               zero), the third and subsequent arguments are the various
               plural forms (corresponding to the Plural-Forms: expression
               evaluating to 1, 2, 3, _e_t_c.

               The Plural-Forms: expression is required evaluate to less than
               nplurals.  If it does not, the second arguement (the singular
               form) is used.  If there are too few arguments to this
               substitution, the second argument (the singular form) is again
               used.

               Note that in the default case (used for English and other
               Germanic languages), the arguments are the _r_e_v_e_r_s_e of those
               expected by the _$_{_p_l_u_r_a_l_} substitution.

       Project
               This substitution provides various information about the
               project, based on the argument it is given.

               name    This returns the name of the project.  (This is the
                       default if no argument is given.)

               description
                       This returns the description of the project (the one
                       which appears in the project listing).

               trunk_name
                       This returns the name of the trunk of the project (i.e.
                       no branch numbers included).

               trunk_description
                       This returns the description of the trunk of the
                       project.

       Project_Specific
               This substitution takes exactly one argument.  This argument is
               a name to be found in the project _c_o_n_f_i_g file's _p_r_o_j_e_c_t___-
               _s_p_e_c_i_f_i_c field (see _a_e_p_c_o_n_f(5) for more information).  This
               returns the value listed in the project _c_o_n_f_i_g file.

       QUote
               This substitution may be used to quote shell special
               characters.  If no quoting is required, not quotes will be
               inserted.  This is used to insulate shell special characters in
               filenames when forming commands.

       Read_File
               Read a file and substitute the contents of the file.  Requires
               exactly one argument, the pathname of the file to be read.  If
               the pathname is a project source file, you will need to use the
               _s_o_u_r_c_e substitution to resolve the path.  It is a fatal error
               if the file does not exist, or is not readable.  It is a fatal
               error if the pathname is not absolute (because the current
               directory is undefined).

       Read_File_Simple
               Read a file and without substituting the contents of the file.
               Requires exactly one argument, the pathname of the file to be
               read.  If the pathname is a project source file, you will need
               to use the _s_o_u_r_c_e substitution to resolve the path.  It is a
               fatal error if the file does not exist, or is not readable.  It
               is a fatal error if the pathname is not absolute (because the
               current directory is undefined).

       Reviewer
               The name of the change's reviewer.  Only available when the
               change is between the _a_w_a_i_t_i_n_g _i_n_t_e_g_r_a_t_i_o_n state and the
               _c_o_m_p_l_e_t_e_d state.  Takes an optional argument in the same form
               as the _u_s_e_r substitution.

       Reviewer_List
               Space separated list of the project's reviewers.  Takes an
               optional argument in the same form as the _u_s_e_r substitution.

       RIght   This substitution extracts the right hand side of strings.  It
               takes two arguments: the first is the string, the second is the
               number of characters.

       Search_Path
               The Search_Path substitution is replaced by a colon separated
               list of absolute paths to search when building a change, it
               will point from a change to its branch and so on up to the
               project trunk.

       Search_Path_Executable
               The Search_Path_Executable substitution is usually the same as
               the Search_Path substitution.  However, during an ``aegis -Test
               -BaseLine'' command, it contains the baseline as the first
               element, rather then the development directory or the
               integration directory.  This is of most use when looking for
               executables and executable support files while running tests.

       SHell
               The absolute path of a Bourne shell which understands
               functions.  Requires exactly zero arguments.

       Source
               Resolve the argument filename into a pathname.  It is an error
               if the file is not a source file.  An optional second argument
               may be "Absolute" or "Relative", and may be abbreviated.
               Relative will attempt to provide a development-directory-
               relative pathname whenever possible, absolute will always
               result in an absolute path.  The default is "Relative".  (For
               the inverse mapping, see _$_{_B_A_s_e___R_E_l_a_t_i_v_e_}, above.)

       SPLit   This substitution may be used to split strings are specified
               separators.  The first argument is the separator character to
               be used, subsequent arguments are strings to be split.  The
               result is the collection is split strings of the second a
               follwoing arguments, separated by spaces.

       STate
               The state the current change is in.  It is an error if the
               substitution does not refer to a change.

       SUBSTitute
               Regular expression substitution.  The first argument is the
               pattern to match, the second argument is the replacement
               string.  The third and subsequent arguments are modified as
               specified by the first two arguments.  The search is not
               anchored, and the replacement will happen as many times as
               possible.  Use ``^'' to match the beginning, and ``$'' to match
               the end.

       SUBSTRing
               This substitution extracts a substring from the middle of
               strings.  It takes three arguments: the first is the string,
               the second is the star character (counting from zero), the
               third is the number of characters.

       SWitch
               Select amongst a set of values.  The first argument is expected
               to be a number.  If the number is zero, the second argument is
               used; if the number is one, the third argument is used; etc.
               If the number is negative, or exceeds the available arguments,
               the last argument is used.

       Trim_DIRectory
               This substitution takes one or two arguments.  If given one
               argument, one directory component (if present) is removed from
               the argument, which is assumed to be a file name.  If two
               arguments are present, the first is a directory count; at most
               this many directory components (if present) will be removed.
               The base file name is always left.

       Trim_EXTension
               This substitution takes one argument.  Any file name extension
               (a dot characters and the characters following) will be removed
               from the final filename section of the argument.

       UNSplit This substitution may be used to reverse the effects of the
               _s_p_l_i_t substitution.  The first arguments is a seaparator
               character, the second and following arguments are strings to be
               joined together using the separator character.  The result is a
               single string.

       UpCase
               This substitution takes at least one argument.  The value of
               the substitution will be the argument with any lower case
               letters mapped to upper case.

       USer
               This substitution provides various information about the user
               who executed the command, based on the argument it is given.

               login   The login name of the user.  (This is the default if no
                       argument is given.)

               name    The full name of the user.

               email   The email address of the user.

               quoted_email
                       The email address of the user, quoted to avoid shell
                       special characters.

               home    The home directory of the user.

       Version
               The version of the change.  If the change is in the _b_e_i_n_g
               _i_n_t_e_g_r_a_t_e_d state or the _c_o_m_p_l_e_t_e_d state, the version will be of
               the form "_a.._b..DD_d_d_d", where "a" is the project's major version
               number, "b" is the project's minor version number, and "ddd" is
               the change's delta number.  If the change is in any other
               state, the version will be of the form "_a.._b..CC_c_c_c", where "ccc"
               is the change number.

       Zero_Pad
               This substitution is used to zero pad a string on the left.  It
               takes two arguments: the first is the string to be padded, the
               second is the minimum string width.

DDAATTEE
       This section describes the format specifiers accepted by the date
       substitution.  These are the same specifiers as defined by the ANSI C
       standard for the strftime function.

       %%      The percent character (%)

       %a      the abbreviated weekday name

       %A      the full weekday name

       %b      the abbreviated month name

       %B      the full month name

       %c      the date and time

       %d      the day of the month, zero padded

       %H      the hour of the 24-hour day

       %I      the hour of the 12-hour day

       %j      the day number of year, zero padded, one based

       %m      the month of the year, zero padded, one based

       %M      the minute of the hour, zero padded

       %p      meridian indicator, AM or PM as appropriate

       %S      the second of the minute

       %U      the Sunday week of the year

       %w      the day of the week, Sunday is 0

       %W      the Monday week of the year

       %x      the date, as _m_m_m _d_d _y_y_y_y

       %X      the time, as _h_h_:_m_m_:_s_s

       %y      the year of the century

       %Y      the year including the century

       %Z      time zone abbreviation

       Using an undefined format specifier will produce random results,
       depending on the version of UNIX you are on.

SSEEEE AALLSSOO
       aaeessuubb(1)
               Substitute and print strings.

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aetest(5)                                                            aetest(5)



NNAAMMEE
       aetest - test results file format

DDEESSCCRRIIPPTTIIOONN
       The default configuration of the _t_e_s_t___c_o_m_m_a_n_d and _d_e_v_e_l_o_p_m_e_n_t___t_e_s_t___-
       _c_o_m_m_a_n_d commands of the project _c_o_n_f_i_g file (see _a_e_p_c_o_n_f(5) for more
       information) is for the test commands to test a single test file and a
       single architecture at a time.  On some systems, this is not efficient.

       When configured to run multiple simultaneous tests, or multiple
       simultaneous architectures, a file of the format described here is used
       to communicate the test results back to Aegis.

CCOONNTTEENNTTSS
       Use a separate row for each unique filename and architecture
       combination.

       test_result = [ { ... } ];
               All the fields are mandatory.

               file_name = string;
                       This is the name of the file being tested.  Use the
                       same filename as was given to the test command.

               exit_status = integer;
                       This is the exit status returned by the test.

               architecture = string;
                       This is the architecture which the test was run on.
                       Defaults to the architecture of the current system if
                       not set.  (Try to avoid setting this field unless you
                       have a very clever multi-architecture test system.)

SSEEEE AALLSSOO
       _a_e_t(1)  run tests

       _a_e_g_i_s(5)
               aegis file format syntax

       _a_e_p_c_o_n_f(5)
               Project configuration file format.

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aeuconf(5)                                                          aeuconf(5)



NNAAMMEE
       aeuconf - user configuration file

SSYYNNOOPPSSIISS
       _$_A_E_G_I_S___F_L_A_G_S
       _$_H_O_M_E/.aegisrc
       _/_u_s_r_/_s_h_a_r_e_/_a_e_g_i_s_/_a_e_g_i_s_r_c
       _/_u_s_r_/_l_i_b_/_a_e_g_i_s_/_a_e_g_i_s_r_c

DDEESSCCRRIIPPTTIIOONN
       A user configuration file is used to hold user defaults.  This file is
       created and edited by the user.  This file is only ever read by aegis,
       it is never written.

       The sources of user preferences are scanned in the order given above.
       Earlier sources have higher priority.

   AAEEGGIISS__FFLLAAGGSS
       This environment variable has the same format.  It is read first, and
       over-rides the _._a_e_g_i_s_r_c file contents.  This is intended to be used
       within the tests distributed with aegis, but can also be of use within
       some shell scripts.  It contains session specific preferences.

   _$_H_O_M_E/.aegisrc
       This file contains user specific preferences.

   _/_u_s_r_/_s_h_a_r_e_/_a_e_g_i_s_/_a_e_g_i_s_r_c
       This file contains architecture-neutral preferences.

   _/_u_s_r_/_l_i_b_/_a_e_g_i_s_/_a_e_g_i_s_r_c
       This file contains architecture-specific preferences.

CCOONNTTEENNTTSS
       The file contains the following fields:

       default_development_directory = string;
               The pathname of where to place new development directories.
               The pathname may be relative, in which case it is relative to
               _$_H_O_M_E.  The default is the field of the same name in the
               project attributes, or _$_H_O_M_E neither is set.

       default_project_directory = string;
               The pathname of where to place new project directories.  The
               pathname may be relative.  If this path is relative, it is
               relative to _$_H_O_M_E.  The default is _$_H_O_M_E.

       delete_file_preference = (no_keep, interactive, keep);
               All of the commands which delete files will consult this field
               to determine if the file should be deleted.  Defaults to
               _n_o___k_e_e_p if not set.

       default_project_name = string;
               The name of a project.

       default_change_number = integer;
               The number of a change.

       Please note that the _d_e_f_a_u_l_t___p_r_o_j_e_c_t___n_a_m_e field and the
       _d_e_f_a_u_l_t___c_h_a_n_g_e___n_u_m_b_e_r field are unrelated.  Specifying both does not
       mean that single change within that single project, they have nothing
       to do with each other.

       diff_preference = (automatic_merge, no_merge, only_merge);
               The _a_e_d_(_1_) command will consult this field to determine what to
               do:

               nnoo__mmeerrggee
                       means only diff the files, even if some have out of
                       date versions.

               oonnllyy__mmeerrggee
                       means merge those files with out of date versions, and
                       do not do anything else, even if they need to be
                       diffed.

               aauuttoommaattiicc__mmeerrggee
                       means to do _o_n_l_y___m_e_r_g_e if any source files require
                       merging, otherwise do _n_o___m_e_r_g_e.  It never combines
                       merges and differences in the same pass.

               The corresponding command line options to the _a_e_d(1) command
               take precedence, this field is only consulted if you do not
               give a corresponding command line argument.  Defaults to
               _a_u_t_o_m_a_t_i_c___m_e_r_g_e if not set.

       pager_preference = (foreground, never);
               This field is consulted for listings and help.  The standard
               output is only piped to a pager if the command is run in the
               foreground and the standard output is directed at a terminal.

               foreground
                       The standard output will be piped through the command
                       given in the PAGER environment variable (or _m_o_r_e if not
                       set).

               never   The standard output will not be redirected.

               This field defaults to _f_o_r_e_g_r_o_u_n_d if not set.

       persevere_preference = (all, stop);
               This field is consulted by the _a_e_t(1) command, to determine if
               it should run all tests, or stop after the first failure.  This
               field defaults to _a_l_l if not set.

       log_file_preference = (snuggle, append, replace, never);
               This field controls the behavior of the log file.  It usually
               defaults to _s_n_u_g_g_l_e if not set, although some commands may
               default it to _a_p_p_e_n_d.  When the log file is in use, the output
               continues to be sent to the screen if the process is in the
               foreground and the standard output is a terminal.

               never   Do not redirect the output to a log file.

               replace Replace any log file that is present, create a new one
                       if none already exists.

               append  Append the log to the end of any existing log file,
                       create a new one if none already exists.

               snuggle Append the log to the end of any existing log file if
                       that log file was last modified less than 30 seconds
                       ago, otherwise replace any existing log file; create a
                       new one if none already exists.  This option allows
                       runs of aegis commands to produce a meaningful log
                       file.

       lock_wait_preference = (always, background, never);
               This field is consulted by all commands which wait for locks.

               always  The "always" setting says that all commands should
                       always wait for locks.  This is the default.

               background
                       The "background" setting says that background commands
                       should always wait for locks, and foreground commands
                       will not.

               never   The "never" setting says that no command should ever
                       wait for locks.  If the command would wait, it will
                       exit with status 1.

               This user preference can be over-ridden by the --wwaaiitt and
               --nnoowwaaiitt command line options.

       symbolic_link_preference = (verify, assume);
               This field is consulted by _a_e_b(1) when the project config file
               specifies _c_r_e_a_t_e___s_y_m_b_o_l_i_c___l_i_n_k_s___b_e_f_o_r_e___b_u_i_l_d as true.  The
               verification of the links can be quite time consuming; if you
               are confident that they are already correct (say, from a recent
               build run) you may wish to assume they are correct and not
               verify them repeatedly.

               verify  This setting says to always verify the symbolic links
                       to the baseline.  This is the default.

               assume  This setting says to always assume the links are
                       correct, unless there has been a recent integration.

               This user preference can be over-ridden by the
               --VVeerriiffyy__SSyymmbboolliicc__LLiinnkkss and --AAssssuummee__SSyymmbboolliicc__LLiinnkkss command line
               options.

       relative_filename_preference = (current, base);
               This field is consulted by most commands which accept filenames
               on the command line.  It controls whether relative filenames
               are relative to the current directory (this is the default), or
               relative to the base of the project source tree.

               current This setting says to interpret relative filenames
                       against the current directory.

               base    This setting says to interpret relative filenames
                       against the base of the source tree.

               This user preference can be over-ridden by the --BBAAssee__RREEllaattiivvee
               and --CCUUrrrreenntt__RREEllaattiivvee command line options.

       email_address = string;
               This field may be used to set the preferred email address.  If
               not set, defaults to `whoami`@`cat /etc/mailname` if not set,
               and if _/_e_t_c_/_m_a_i_l_n_a_m_e exists.  Otherwise, defaults to
               `whoami`@`hostname` if not set, which is usually not what is
               required, particularly if you are behind a firewall.

       whiteout_preference = (always, never);
               All of the commands which cause a change to remove files will
               consult this field to determine if the file should be have a
               dummy "whiteout" file put in the development directory.
               Defaults to ``always'' if not set.

       editor_command = string;
               This command is used to edit a file, if the editing is being
               done in the background.  Defaults to the EDITOR environment
               variable if not set, or "ed" if not set.

       visual_command = string;
               This command is used to edit a file, if the editing is being
               done in the foreground.  Defaults to the VISUAL environment
               variable if not set, or to the EDITOR environment variable if
               not set, or "vi" if not set.

       pager_command = string;
               This is the command used to paginate report and listing output.
               Defaults to the PAGER environment variable if not set, or to
               "more" if not set.

SSEEEE AALLSSOO
       _a_e_g_i_s(5)
               aegis file format syntax

       _a_e_d(1)  difference and merge files

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
aeustate(5)                                                        aeustate(5)



NNAAMMEE
       aeustate - user state file

SSYYNNOOPPSSIISS
       /var/lib/aegis/user/_u_s_e_r_-_n_a_m_e

DDEESSCCRRIIPPTTIIOONN
       A user state file is used to store information about a user.  These
       file are created and maintained by aegis.  These file should not be
       edited by humans.

CCOONNTTEENNTTSS
       own = [{ ... }];
               This field is a list of change the user is currently working
               on, within project.  The changes are in either the
               _b_e_i_n_g___d_e_v_e_l_o_p_e_d or _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d state.  The structure of
               this field is as follows:

               project = string;
                       The name of a project.

               change = [integer];
                       The changes this user is working on in the project.

SSEEEE AALLSSOO
       _a_e_g_i_s(5)
               aegis file format syntax

CCOOPPYYRRIIGGHHTT
       aegis version 4.16
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004 Peter Miller; All rights reserved.

       The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
       the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.  This is free software and you
       are welcome to redistribute it under certain conditions; for details
       use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.

AAUUTTHHOORR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/
Table of Contents(Aegis)                              Table of Contents(Aegis)



        The README File  . . . . . . . . . . . . . . . . . . . . . . . . .   0
        Release Notes  . . . . . . . . . . . . . . . . . . . . . . . . . .   5
        How to Build the Sources . . . . . . . . . . . . . . . . . . . . .  26
            Windows NT . . . . . . . . . . . . . . . . . . . . . . . . . .  32
aegis(1)                                                                   project change supervisor 33
ae-sccs-put(1)                                                             put file version into SCCS 36
ae_c(1) set change number  . . . . . . . . . . . . . . . . . . . . . . . .  37
ae_p(1) set project name . . . . . . . . . . . . . . . . . . . . . . . . .  37
aeb(1)  build a change . . . . . . . . . . . . . . . . . . . . . . . . . .  38
aebuffy(1)                                                                 watch for changes 41
aeca(1) modify the attributes of a change  . . . . . . . . . . . . . . . .  41
aecd(1) change directory . . . . . . . . . . . . . . . . . . . . . . . . .  42
aechown(1)                                                                 set change owner 43
aecomp(1)                                                                  compare two changes 48
aecomplete(1)                                                              command completion 48
aecp(1) copy a file into a change  . . . . . . . . . . . . . . . . . . . .  48
aecpu(1)                                                                   reverse action of aecp 51
aed(1)  difference a change  . . . . . . . . . . . . . . . . . . . . . . .  53
aedb(1) begin development of a change  . . . . . . . . . . . . . . . . . .  54
aedbu(1)                                                                   undo the effects of aedb 56
aede(1) complete development of a change . . . . . . . . . . . . . . . . .  58
aedeu(1)                                                                   recall a change for further development 59
aedist(1)                                                                  remotely distribute a change 60
aedn(1) assign a symbolic name to a project delta  . . . . . . . . . . . .  63
aeedit(1)                                                                  edit a change's files 63
aefind  search for files in directory hierarchy  . . . . . . . . . . . . .  64
aefp(1) calculate file fingerprint . . . . . . . . . . . . . . . . . . . .  67
aeget(1)                                                                   Aegis CGI file access 68
aegis.cgi(1)                                                               Aegis web interface script 68
aeib(1) begin integrating a change . . . . . . . . . . . . . . . . . . . .  68
aeibu(1)                                                                   reverse the aeib command 70
aeifail(1)                                                                 fail a change integration 71
aeimport(1)                                                                import foreign repository into Aegis 72
aeintegratq(1)                                                             integrate changes into projects 74
aeipass(1)                                                                 pass a change integration 76
ael(1)  list interesting things  . . . . . . . . . . . . . . . . . . . . .  78
aelic(1)                                                                   GNU General Public License 80
aels(1) annotated directory listing  . . . . . . . . . . . . . . . . . . .  83
aemeasure(1)                                                               simple file metrics 84
aemt(1) make branch file transparent . . . . . . . . . . . . . . . . . . .  84
aemtu(1)                                                                   no longer make branch file transparent 85
aemv(1) rename a file as part of a change  . . . . . . . . . . . . . . . .  87
aemvu(1)                                                                   undo the rename a file as part of a change 88
aena(1) add a new administrator to a project . . . . . . . . . . . . . . .  90
aenbr(1)                                                                   create a new branch 91
aenbru(1)                                                                  remove a branch 91
aenc(1) add a new change to a project  . . . . . . . . . . . . . . . . . .  92
aencu(1)                                                                   remove a change 93
aend(1) add new developers to a project  . . . . . . . . . . . . . . . . .  94
aenf(1) add new files to be created by a change  . . . . . . . . . . . . .  95
aenfu(1)                                                                   remove new files from a change 97
aeni(1) add new integrators to a project . . . . . . . . . . . . . . . . .  98
aenpa(1)                                                                   create a new project alias 99
aenpr(1)                                                                   create a new project 99
aenrls(1)                                                                  create  a  new project from an old-style project
. . . .                                                                    101
aenrv(1)                                                                   add new reviewers to a project 102
aent(1) add a new test to a change . . . . . . . . . . . . . . . . . . . . 103
aentu(1)                                                                   remove new tests from a change 105
aepa(1) modify the attributes of a project . . . . . . . . . . . . . . . . 106
aepatch(1)                                                                 send and receive changes as patches 107
aer(1)  report generator . . . . . . . . . . . . . . . . . . . . . . . . . 109
aera(1) remove administrators from a project . . . . . . . . . . . . . . . 110
aerb(1) begin a change review  . . . . . . . . . . . . . . . . . . . . . . 110
aerbu(1)                                                                   stop reviewing a change 111
aerd(1) remove developers from a project . . . . . . . . . . . . . . . . . 112
aerect  draw a rectangle . . . . . . . . . . . . . . . . . . . . . . . . . 112
aerfail(1)                                                                 fail a change review 113
aeri(1) remove integrators from a project  . . . . . . . . . . . . . . . . 114
aerm(1) add files to be deleted to a change  . . . . . . . . . . . . . . . 115
aermpr(1)                                                                  remove project 116
aermu(1)                                                                   remove files to be deleted from a change 117
aerpass(1)                                                                 pass a change review 118
aerpu(1)                                                                   rescind a change review pass 119
aerrv(1)                                                                   remove reviewers from a project 120
aet(1)  run tests  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
aetar(1)                                                                   remotely distribute a change via tar 123
aev(1)  version information  . . . . . . . . . . . . . . . . . . . . . . . 124
aexml(1)                                                                   Aegis database to XML 125
tkaeca(1)                                                                  GUI interface for aeca, using TCL/TK 125
tkaegis(1)                                                                 GUI interface for Aegis, using TCL/TK 125
tkaenc(1)                                                                  GUI interface for aenc, using TCL/TK 127
tkaeca(1)                                                                  GUI interface for aeca, using TCL/TK 127
tkaer(1)                                                                   GUI tool for reviewing Aegis change  sets,  using
TCL/TK .                                                                   127
aecattr(5)                                                                 change attributes file format 128
aecstate(5)                                                                change state file format 128
aedir(5)                                                                   directory structures 131
aefstate(5)                                                                file state file format 132
aegis(5)                                                                   file format 133
aegstate(5)                                                                global state file format 134
aelock(5)                                                                    how locking works, and which commands use them
. . . .                                                                    134
aemetrics(5)                                                               metrics values file format 135
aepattr(5)                                                                 project attribute file format 135
aepconf(5)                                                                 project configuration file format 136
aepstate(5)                                                                project state file format 142
aer(5)  report script language definition  . . . . . . . . . . . . . . . . 144
aerptidx(5)                                                                report index file format 146
aesub(5)                                                                   available command substitutions 147
aetest(5)                                                                  test results file format 149
aeuconf(5)                                                                 user configuration file format 149
aeustate(5)                                                                user state file 150
Permuted Index(Aegis)                                    Permuted Index(Aegis)



aeget(1)          68      aeget - Aegis CGI file   access
aecpu(1)          51     aegis -CoPy file Undo -   action of aecp
                                         reverse
aena(1)           90    aegis -New Administrator   add a new administrator
                                               -   to a project
aenc(1)           92         aegis -New Change -   add a new change to a
                                                   project
aent(1)          103           aegis -New Test -   add a new test to a
                                                   change
aerm(1)          115        aegis -ReMove file -   add files to be deleted
                                                   to a change
aend(1)           94      aegis -New Developer -   add new developers to a
                                                   project
aenf(1)           95           aegis -New File -   add new files to be
                                                   created by a change
aeni(1)           98     aegis -New Integrator -   add new integrators to a
                                                   project
aenrv(1)         102       aegis -New ReViewer -   add new reviewers to a
                                                   project
aena(1)           90                  aegis -New   Administrator - add a new
                                                   administrator to a
                                                   project
aera(1)          110               aegis -Remove   Administrator - remove
                                                   administrators from a
                                                   project
aera(1)          110               aegis -Remove   administrators from a
                          Administrator - remove   project
aena(1)           90    aegis -New Administrator   administrator to a
                                     - add a new   project
aeannotate(1)                                      aeannotate - annotated
                                                   source file listing
aecattr(5)       128                               aecattr - aegis change
                                                   attributes file
tkaeca(1)        127   aegis - GUI interface for   aeca, using TCL/TK
tkaepa(1)              aegis - GUI interface for   aeca, using TCL/TK
aecomplete(1)     48                               aecomplete - command
                                                   completion
aecpu(1)          51     aegis -CoPy file Undo -   aecp
                               reverse action of
ae_c(1)           37                               ae c - set change number
aecstate(5)      128                               aecstate - aegis change
                                                   state file
aedbu(1)          56   aegis -Develop Begin Undo   aedb
                           - undo the effects of
aedir(5)         131                               aedir - aegis directory
                                                   structures
aedist(1)         60                               aedist - remotely
                                                   distribute a change
aeedit(1)         63                               aeedit - edit a change's
                                                   files
aefstate(5)      132                               aefstate - aegis file
                                                   state file
aeget(1)          68                               aeget - Aegis CGI file
                                                   access
aeget(1)          68                     aeget -   Aegis CGI file access
tkaer(1)         127        aegis - GUI tool for   Aegis change sets, using
                                       reviewing   TCL/TK
aexml(1)         125                     aexml -   Aegis database to XML
tkaegis(1)       125   aegis - GUI interface for   Aegis, using TCL/TK
aegis.cgi(1)      68                 aegis.cgi -   Aegis web interface
                                                   script
aegstate(5)      134                               aegstate - aegis state
                                                   file
aeibu(1)          70      aegis -Integrate Begin   aeib command
                              Undo - reverse the
aemeasure(1)      84                               aemeasure - simple file
                                                   metrics
aemetrics(5)     135                               aemetrics - metrics
                                                   values file format
tkaenc(1)        127   aegis - GUI interface for   aenc, using TCL/TK
aepattr(5)       135                               aepattr - project
                                                   attribute file
aepconf(5)       136                               aepconf - aegis project
                                                   configuration file
ae_p(1)           37                               ae p - set project name
aepstate(5)      142                               aepstate - project state
                                                   file
aerect(1)                                          aerect - draw a rectangle
aerptidx(5)      146                               aerptidx - report index
                                                   file format
aer(5)           144                               aer - report script
                                                   language definition
aesub(5)         147                               aesub - available command
                                                   substitutions
aesub(1)                                           aesub - substitute and
                                                   echo strings
aetar(1)         123                               aetar - remotely
                                                   distribute a change via
                                                   tar
aetest(5)        149                               aetest - test results
                                                   file format
aeuconf(5)       149                               aeuconf - user
                                                   configuration file
aeustate(5)      150                               aeustate - user state
                                                   file
aexml(1)         125                               aexml - Aegis database to
                                                   XML
aenpa(1)          99    aegis -New Project Alias   alias
                          - create a new project
aerpa(1)                   aegis -Remove Project   alias
                        Alias - remove a project
aenpa(1)          99          aegis -New Project   Alias - create a new
                                                   project alias
aerpa(1)                   aegis -Remove Project   Alias - remove a project
                                                   alias
aeclone(1)                   aegis -clone - make   an exact copy of a change
aels(1)           83                     aegis -   annotated directory
                                                   listing
aeannotate(1)                       aeannotate -   annotated source file
                                                   listing
aenrls(1)        101        aegis -New ReLeaSe -   an old-style project.
                       create a new project from
aedn(1)           63         aegis -DELta NAme -   assign a symbolic name to
                                                   a project delta
aepattr(5)       135           aepattr - project   attribute file
aecattr(5)       128      aecattr - aegis change   attributes file
aeca(1)           41               aegis -Change   Attributes - modify the
                                                   attributes of a change
aepa(1)          106              aegis -Project   Attributes - modify the
                                                   attributes of a project
aeca(1)           41    aegis -Change Attributes   attributes of a change
                                    - modify the
aepa(1)          106   aegis -Project Attributes   attributes of a project
                                    - modify the
aesub(5)         147                     aesub -   available command
                                                   substitutions
aed(1)            53    aegis -DIFFerence - find   baseline
                           differences between a
                                  change and the
aerb(1)          110       aegis -Review Begin -   begin a change review
aerb(1)          110               aegis -Review   Begin - begin a change
                                                   review
aedb(1)           54              aegis -Develop   Begin - begin development
                                                   of a change
aeib(1)           68            aegis -Integrate   Begin - begin integrating
                                                   a change

aedb(1)           54      aegis -Develop Begin -   begin development of a
                                                   change
aeib(1)           68    aegis -Integrate Begin -   begin integrating a
                                                   change
aeibu(1)          70            aegis -Integrate   Begin Undo - reverse the
                                                   aeib command
aerbu(1)         111               aegis -Review   Begin Undo - stop
                                                   reviewing a change
aedbu(1)          56              aegis -Develop   Begin Undo - undo the
                                                   effects of aedb
aed(1)            53    aegis -DIFFerence - find   between a change and the
                                     differences   baseline
aenbr(1)          91         aegis -New BRanch -   branch
                                    create a new
aenbru(1)         91    aegis -New BRanch Undo -   branch
                                        remove a
aenbr(1)          91                  aegis -New   BRanch - create a new
                                                   branch
aemt(1)           84   aegis -Make Transparent -   branch file transparent
                                            make
aemtu(1)          85     aegis -Make Transparent   branch file transparent
                           Undo - no longer make
aenbru(1)         91                  aegis -New   BRanch Undo - remove a
                                                   branch
aeb(1)            38              aegis -Build -   build a change
aeb(1)            38                     aegis -   Build - build a change
aefp(1)           67                     aegis -   calculate file
                                                   fingerprint
aegis.cgi(1)      68                      aegis.   cgi - Aegis web interface
                                                   script
aeget(1)          68               aeget - Aegis   CGI file access
aedist(1)         60           aedist - remotely   change
                                    distribute a
aeb(1)            38      aegis -Build - build a   change
aeca(1)           41    aegis -Change Attributes   change
                         - modify the attributes
                                            of a
aeclone(1)                aegis -clone - make an   change
                                 exact copy of a
aecp(1)           48   aegis -CoPy file - copy a   change
                                     file into a
aedb(1)           54      aegis -Develop Begin -   change
                          begin development of a
aede(1)           58        aegis -Develop End -   change
                       complete development of a
aeib(1)           68    aegis -Integrate Begin -   change
                             begin integrating a
aemv(1)           87   aegis -MoVe file - rename   change
                             a file as part of a
aemvu(1)          88     aegis -MoVe file Undo -   change
                       undo the rename a file as
                                       part of a
aenf(1)           95   aegis -New File - add new   change
                        files to be created by a
aenfu(1)          97      aegis -New File Undo -   change
                         remove new files from a
aent(1)          103     aegis -New Test - add a   change
                                   new test to a
aentu(1)         105      aegis -New Test Undo -   change
                         remove new tests from a
aerm(1)          115    aegis -ReMove file - add   change
                        files to be deleted to a
aermu(1)         117   aegis -ReMove file Undo -   change
                              remove files to be
                                  deleted from a
aerbu(1)         111    aegis -Review Begin Undo   change
                              - stop reviewing a
aenc(1)           92                  aegis -New   Change - add a new change
                                                   to a project
aed(1)            53    aegis -DIFFerence - find   change and the baseline
                           differences between a
aecattr(5)       128             aecattr - aegis   change attributes file
aeca(1)           41                     aegis -   Change Attributes -
                                                   modify the attributes of
                                                   a change
aecd(1)           42   aegis -Change Directory -   change directory
aecd(1)           42                     aegis -   Change Directory - change
                                                   directory
aedeu(1)          59   aegis -Develop End Undo -   change for further
                                        recall a   development
aencu(1)          93    aegis -New Change Undo -   change from a project
                                    remove a new
aeifail(1)        71     aegis -Integrate Fail -   change integration
                                          fail a
aeipass(1)        76     aegis -Integrate Pass -   change integration
                                          pass a
ae_c(1)           37                  ae c - set   change number
aechown(1)        43   aegis -Change Owner - set   change owner
aechown(1)        43                     aegis -   Change Owner - set change
                                                   owner
aerb(1)          110       aegis -Review Begin -   change review
                                         begin a
aerfail(1)       113   aegis -Review FAIL - fail   change review
                                               a
aerpass(1)       118   aegis -Review PASS - pass   change review
                                               a
aerpu(1)         119   aegis -Review Pass Undo -   change review pass
                                       rescind a
aecomp(1)         48         aegis - compare two   changes
aebuffy(1)        41           aegis - watch for   changes
aepatch(1)       107    aegis - send and receive   changes as patches
tkaer(1)         127        aegis - GUI tool for   change sets, using TCL/TK
                                 reviewing Aegis
aeedit(1)         63             aeedit - edit a   change's files
aeintegratq(1)    74           aegis - integrate   changes into projects
aecstate(5)      128            aecstate - aegis   change state file
aegis(1)          33             aegis - project   change supervisor
aenc(1)           92   aegis -New Change - add a   change to a project
                                             new
aencu(1)          93                  aegis -New   Change Undo - remove a
                                                   new change from a project
aetar(1)         123            aetar - remotely   change via tar
                                    distribute a
aeclean(1)                               aegis -   CLEan - clean files from
                                                   development directory
aeclean(1)                        aegis -CLEan -   clean files from
                                                   development directory
aeclone(1)                               aegis -   clone - make an exact
                                                   copy of a change
aeibu(1)          70      aegis -Integrate Begin   command
                         Undo - reverse the aeib
aecomplete(1)     48                aecomplete -   command completion
aesub(5)         147           aesub - available   command substitutions
aelock(5)        134   aegis locks - how locking   commands use them
                                works, and which
aecomp(1)         48                     aegis -   compare two changes
aede(1)           58        aegis -Develop End -   complete development of a
                                                   change
aecomplete(1)     48        aecomplete - command   completion
aepconf(5)       136     aepconf - aegis project   configuration file
aeuconf(5)       149              aeuconf - user   configuration file
aecp(1)           48          aegis -CoPy file -   copy a file into a change
aecp(1)           48                     aegis -   CoPy file - copy a file
                                                   into a change
aecpu(1)          51                     aegis -   CoPy file Undo - reverse
                                                   action of aecp
aeclone(1)                aegis -clone - make an   copy of a change
                                           exact
aenbr(1)          91         aegis -New BRanch -   create a new branch
aenpr(1)          99        aegis -New PRoject -   create a new project
aenpa(1)          99    aegis -New Project Alias   create a new project
                                               -   alias
aenrls(1)        101        aegis -New ReLeaSe -   create a new project from
                                                   an old-style project.
aenf(1)           95   aegis -New File - add new   created by a change
                                     files to be
ae_c(1)           37                          ae   c - set change number
aexml(1)         125               aexml - Aegis   database to XML
aer(5)           144         aer - report script   definition
                                        language
aermu(1)         117   aegis -ReMove file Undo -   deleted from a change
                              remove files to be
aerm(1)          115    aegis -ReMove file - add   deleted to a change
                                     files to be
aedn(1)           63         aegis -DELta NAme -   delta
                       assign a symbolic name to
                                       a project
aedn(1)           63                     aegis -   DELta NAme - assign a
                                                   symbolic name to a
                                                   project delta
aedb(1)           54                     aegis -   Develop Begin - begin
                                                   development of a change
aedbu(1)          56                     aegis -   Develop Begin Undo - undo
                                                   the effects of aedb
aede(1)           58                     aegis -   Develop End - complete
                                                   development of a change
aedeu(1)          59                     aegis -   Develop End Undo - recall
                                                   a change for further
                                                   development
aend(1)           94                  aegis -New   Developer - add new
                                                   developers to a project
aerd(1)          112               aegis -Remove   Developer - remove
                                                   developers from a project
aerd(1)          112   aegis -Remove Developer -   developers from a project
                                          remove
aend(1)           94      aegis -New Developer -   developers to a project
                                         add new
aedeu(1)          59   aegis -Develop End Undo -   development
                             recall a change for
                                         further
aeclean(1)                  aegis -CLEan - clean   development directory
                                      files from
aedb(1)           54      aegis -Develop Begin -   development of a change
                                           begin
aede(1)           58        aegis -Develop End -   development of a change
                                        complete
aed(1)            53                     aegis -   DIFFerence - find
                                                   differences between a
                                                   change and the baseline
aed(1)            53    aegis -DIFFerence - find   differences between a
                                                   change and the baseline
aecd(1)           42   aegis -Change Directory -   directory
                                          change
aeclean(1)                  aegis -CLEan - clean   directory
                          files from development
aecd(1)           42               aegis -Change   Directory - change
                                                   directory
aefind(1)               aegis - search for files   directory hierarchy
                                              in
aels(1)           83           aegis - annotated   directory listing
aedir(5)         131               aedir - aegis   directory structures
aedist(1)         60           aedist - remotely   distribute a change
aetar(1)         123            aetar - remotely   distribute a change via
                                                   tar
aerect(1)                               aerect -   draw a rectangle
aesub(1)                  aesub - substitute and   echo strings
aeedit(1)         63                    aeedit -   edit a change's files
aedbu(1)          56   aegis -Develop Begin Undo   effects of aedb
                                      - undo the
aede(1)           58              aegis -Develop   End - complete
                                                   development of a change
aedeu(1)          59              aegis -Develop   End Undo - recall a
                                                   change for further
                                                   development
aeclone(1)                aegis -clone - make an   exact copy of a change
aeifail(1)        71     aegis -Integrate Fail -   fail a change integration
aerfail(1)       113        aegis -Review FAIL -   fail a change review
aeifail(1)        71            aegis -Integrate   Fail - fail a change
                                                   integration
aerfail(1)       113               aegis -Review   FAIL - fail a change
                                                   review
aecattr(5)       128      aecattr - aegis change   file
                                      attributes
aecstate(5)      128     aecstate - aegis change   file
                                           state
aefstate(5)      132       aefstate - aegis file   file
                                           state
aegstate(5)      134      aegstate - aegis state   file
aepattr(5)       135           aepattr - project   file
                                       attribute
aepconf(5)       136     aepconf - aegis project   file
                                   configuration
aepstate(5)      142    aepstate - project state   file
aeuconf(5)       149              aeuconf - user   file
                                   configuration

aeustate(5)      150       aeustate - user state   file
aeget(1)          68           aeget - Aegis CGI   file access
aerm(1)          115               aegis -ReMove   file - add files to be
                                                   deleted to a change
aenf(1)           95                  aegis -New   File - add new files to
                                                   be created by a change
aemv(1)           87   aegis -MoVe file - rename   file as part of a change
                                               a
aemvu(1)          88     aegis -MoVe file Undo -   file as part of a change
                               undo the rename a
aecp(1)           48                 aegis -CoPy   file - copy a file into a
                                                   change
aefp(1)           67           aegis - calculate   file fingerprint
aegis(5)         133                     aegis -   file format
aemetrics(5)     135         aemetrics - metrics   file format
                                          values
aerptidx(5)      146     aerptidx - report index   file format
aetest(5)        149       aetest - test results   file format
aecp(1)           48   aegis -CoPy file - copy a   file into a change
aeannotate(1)             aeannotate - annotated   file listing
                                          source
aemeasure(1)      84          aemeasure - simple   file metrics
aemv(1)           87                 aegis -MoVe   file - rename a file as
                                                   part of a change
aeedit(1)         63    aeedit - edit a change's   files
aenfu(1)          97      aegis -New File Undo -   files from a change
                                      remove new
aeclean(1)                  aegis -CLEan - clean   files from development
                                                   directory
aefind(1)                     aegis - search for   files in directory
                                                   hierarchy
aefstate(5)      132            aefstate - aegis   file state file
aenf(1)           95   aegis -New File - add new   files to be created by a
                                                   change
aermu(1)         117   aegis -ReMove file Undo -   files to be deleted from
                                          remove   a change
aerm(1)          115    aegis -ReMove file - add   files to be deleted to a
                                                   change
aemt(1)           84   aegis -Make Transparent -   file transparent
                                     make branch
aemtu(1)          85     aegis -Make Transparent   file transparent
                           Undo - no longer make
                                          branch
aermu(1)         117               aegis -ReMove   file Undo - remove files
                                                   to be deleted from a
                                                   change
aenfu(1)          97                  aegis -New   File Undo - remove new
                                                   files from a change
aecpu(1)          51                 aegis -CoPy   file Undo - reverse
                                                   action of aecp
aemvu(1)          88                 aegis -MoVe   file Undo - undo the
                                                   rename a file as part of
                                                   a change
aed(1)            53         aegis -DIFFerence -   find differences between
                                                   a change and the baseline
aefp(1)           67      aegis - calculate file   fingerprint
tkaeca(1)        127       aegis - GUI interface   for aeca, using TCL/TK
tkaepa(1)                  aegis - GUI interface   for aeca, using TCL/TK
tkaegis(1)       125       aegis - GUI interface   for Aegis, using TCL/TK
tkaenc(1)        127       aegis - GUI interface   for aenc, using TCL/TK
aebuffy(1)        41               aegis - watch   for changes
aeimport(1)       72              aegis - import   foreign repository into
aefind(1)                         aegis - search   for files in directory
                                                   hierarchy
aedeu(1)          59   aegis -Develop End Undo -   for further development
                                 recall a change
aegis(5)         133                aegis - file   format
aemetrics(5)     135         aemetrics - metrics   format
                                     values file
aerptidx(5)      146     aerptidx - report index   format
                                            file
aetest(5)        149       aetest - test results   format
                                            file
tkaer(1)         127            aegis - GUI tool   for reviewing Aegis
                                                   change sets, using TCL/TK
aenfu(1)          97      aegis -New File Undo -   from a change
                                remove new files
aentu(1)         105      aegis -New Test Undo -   from a change
                                remove new tests
aermu(1)         117   aegis -ReMove file Undo -   from a change
                              remove files to be
                                         deleted
aenrls(1)        101        aegis -New ReLeaSe -   from an old-style
                            create a new project   project.
aencu(1)          93    aegis -New Change Undo -   from a project
                             remove a new change
aera(1)          110               aegis -Remove   from a project
                          Administrator - remove
                                  administrators
aerd(1)          112   aegis -Remove Developer -   from a project
                               remove developers
aeri(1)          114    aegis -Remove Integrator   from a project
                            - remove integrators
aerrv(1)         120    aegis -Remove ReViewer -   from a project
                                remove reviewers
aeclean(1)                  aegis -CLEan - clean   from development
                                           files   directory
aedeu(1)          59   aegis -Develop End Undo -   further development
                             recall a change for
aer(1)           109      aegis -RePorT - report   generator
aev(1)           124            aegis -VERSion -   give version information
tkaeca(1)        127                     aegis -   GUI interface for aeca,
                                                   using TCL/TK
tkaepa(1)                                aegis -   GUI interface for aeca,
                                                   using TCL/TK
tkaegis(1)       125                     aegis -   GUI interface for Aegis,
                                                   using TCL/TK
tkaenc(1)        127                     aegis -   GUI interface for aenc,
                                                   using TCL/TK
tkaer(1)         127                     aegis -   GUI tool for reviewing
                                                   Aegis change sets, using
                                                   TCL/TK
aefind(1)               aegis - search for files   hierarchy
                                    in directory
aelock(5)        134               aegis locks -   how locking works, and
                                                   which commands use them
aeimport(1)       72                     aegis -   import foreign repository
                                                   into
aerptidx(5)      146           aerptidx - report   index file format
aefind(1)               aegis - search for files   in directory hierarchy
aev(1)           124       aegis -VERSion - give   information
                                         version
aeib(1)           68                     aegis -   Integrate Begin - begin
                                                   integrating a change
aeibu(1)          70                     aegis -   Integrate Begin Undo -
                                                   reverse the aeib command
aeintegratq(1)    74                     aegis -   integrate changes into
                                                   projects
aeifail(1)        71                     aegis -   Integrate Fail - fail a
                                                   change integration
aeipass(1)        76                     aegis -   Integrate Pass - pass a
                                                   change integration
aeib(1)           68    aegis -Integrate Begin -   integrating a change
                                           begin
aeifail(1)        71     aegis -Integrate Fail -   integration
                                   fail a change
aeipass(1)        76     aegis -Integrate Pass -   integration
                                   pass a change
aeni(1)           98                  aegis -New   Integrator - add new
                                                   integrators to a project
aeri(1)          114               aegis -Remove   Integrator - remove
                                                   integrators from a
                                                   project
aeri(1)          114    aegis -Remove Integrator   integrators from a
                                        - remove   project
aeni(1)           98     aegis -New Integrator -   integrators to a project
                                         add new
ael(1)            78          aegis -List - list   interesting things
                                      (possibly)
tkaeca(1)        127                 aegis - GUI   interface for aeca, using
                                                   TCL/TK
tkaepa(1)                            aegis - GUI   interface for aeca, using
                                                   TCL/TK
tkaegis(1)       125                 aegis - GUI   interface for Aegis,
                                                   using TCL/TK
tkaenc(1)        127                 aegis - GUI   interface for aenc, using
                                                   TCL/TK
aegis.cgi(1)      68       aegis.cgi - Aegis web   interface script
aeimport(1)       72      aegis - import foreign   into
                                      repository
aecp(1)           48   aegis -CoPy file - copy a   into a change
                                            file
aeintegratq(1)    74   aegis - integrate changes   into projects
aer(5)           144         aer - report script   language definition
aeannotate(1)             aeannotate - annotated   listing
                                     source file
aels(1)           83           aegis - annotated   listing
                                       directory
ael(1)            78                     aegis -   List - list (possibly)
                                                   interesting things
ael(1)            78               aegis -List -   list (possibly)
                                                   interesting things
aelock(5)        134           aegis locks - how   locking works, and which
                                                   commands use them
aelock(5)        134                       aegis   locks - how locking
                                                   works, and which commands
                                                   use them
aemtu(1)          85     aegis -Make Transparent   longer make branch file
                                       Undo - no   transparent
aeclone(1)                        aegis -clone -   make an exact copy of a
                                                   change
aemt(1)           84   aegis -Make Transparent -   make branch file
                                                   transparent
aemtu(1)          85     aegis -Make Transparent   make branch file
                                Undo - no longer   transparent
aemt(1)           84                     aegis -   Make Transparent - make
                                                   branch file transparent
aemtu(1)          85                     aegis -   Make Transparent Undo -
                                                   no longer make branch
                                                   file transparent
aemeasure(1)      84     aemeasure - simple file   metrics
aemetrics(5)     135                 aemetrics -   metrics values file
                                                   format
aeca(1)           41    aegis -Change Attributes   modify the attributes of
                                               -   a change
aepa(1)          106   aegis -Project Attributes   modify the attributes of
                                               -   a project
aemv(1)           87                     aegis -   MoVe file - rename a file
                                                   as part of a change
aemvu(1)          88                     aegis -   MoVe file Undo - undo the
                                                   rename a file as part of
                                                   a change
ae_p(1)           37          ae p - set project   name
aedn(1)           63                aegis -DELta   NAme - assign a symbolic
                                                   name to a project delta
aedn(1)           63         aegis -DELta NAme -   name to a project delta
                               assign a symbolic
aena(1)           90                     aegis -   New Administrator - add a
                                                   new administrator to a
                                                   project
aena(1)           90    aegis -New Administrator   new administrator to a
                                         - add a   project
aenbr(1)          91         aegis -New BRanch -   new branch
                                        create a
aenbr(1)          91                     aegis -   New BRanch - create a new
                                                   branch
aenbru(1)         91                     aegis -   New BRanch Undo - remove
                                                   a branch
aenc(1)           92                     aegis -   New Change - add a new
                                                   change to a project
aencu(1)          93    aegis -New Change Undo -   new change from a project
                                        remove a
aenc(1)           92   aegis -New Change - add a   new change to a project
aencu(1)          93                     aegis -   New Change Undo - remove
                                                   a new change from a
                                                   project
aend(1)           94                     aegis -   New Developer - add new
                                                   developers to a project
aend(1)           94      aegis -New Developer -   new developers to a
                                             add   project
aenf(1)           95                     aegis -   New File - add new files
                                                   to be created by a change
aenfu(1)          97      aegis -New File Undo -   new files from a change
                                          remove


aenf(1)           95       aegis -New File - add   new files to be created
                                                   by a change
aenfu(1)          97                     aegis -   New File Undo - remove
                                                   new files from a change
aeni(1)           98                     aegis -   New Integrator - add new
                                                   integrators to a project
aeni(1)           98     aegis -New Integrator -   new integrators to a
                                             add   project
aenpr(1)          99        aegis -New PRoject -   new project
                                        create a
aenpa(1)          99    aegis -New Project Alias   new project alias
                                      - create a
aenpa(1)          99                     aegis -   New Project Alias -
                                                   create a new project
                                                   alias
aenpr(1)          99                     aegis -   New PRoject - create a
                                                   new project
aenrls(1)        101        aegis -New ReLeaSe -   new project from an old-
                                        create a   style project.
aenrls(1)        101                     aegis -   New ReLeaSe - create a
                                                   new project from an old-
                                                   style project.
aenrv(1)         102                     aegis -   New ReViewer - add new
                                                   reviewers to a project
aenrv(1)         102   aegis -New ReViewer - add   new reviewers to a
                                                   project
aent(1)          103                     aegis -   New Test - add a new test
                                                   to a change
aentu(1)         105      aegis -New Test Undo -   new tests from a change
                                          remove
aent(1)          103     aegis -New Test - add a   new test to a change
aentu(1)         105                     aegis -   New Test Undo - remove
                                                   new tests from a change
aemtu(1)          85     aegis -Make Transparent   no longer make branch
                                          Undo -   file transparent
ae_c(1)           37           ae c - set change   number
aenrls(1)        101        aegis -New ReLeaSe -   old-style project.
                       create a new project from
                                              an
aechown(1)        43   aegis -Change Owner - set   owner
                                          change
aechown(1)        43               aegis -Change   Owner - set change owner
aemv(1)           87   aegis -MoVe file - rename   part of a change
                                       a file as
aemvu(1)          88     aegis -MoVe file Undo -   part of a change
                       undo the rename a file as
aerpu(1)         119   aegis -Review Pass Undo -   pass
                         rescind a change review
aeipass(1)        76     aegis -Integrate Pass -   pass a change integration
aerpass(1)       118        aegis -Review PASS -   pass a change review
aeipass(1)        76            aegis -Integrate   Pass - pass a change
                                                   integration
aerpass(1)       118               aegis -Review   PASS - pass a change
                                                   review
aerpu(1)         119               aegis -Review   Pass Undo - rescind a
                                                   change review pass
aepatch(1)       107    aegis - send and receive   patches
                                      changes as
ael(1)            78        aegis -List - list (   possibly) interesting
                                                   things
aena(1)           90    aegis -New Administrator   project
                       - add a new administrator
                                            to a
aenc(1)           92   aegis -New Change - add a   project
                                 new change to a
aencu(1)          93    aegis -New Change Undo -   project
                        remove a new change from
                                               a
aend(1)           94      aegis -New Developer -   project
                         add new developers to a
aeni(1)           98     aegis -New Integrator -   project
                        add new integrators to a
aenpr(1)          99        aegis -New PRoject -   project
                                    create a new
aenrls(1)        101        aegis -New ReLeaSe -   project.
                       create a new project from
                                    an old-style
aenrv(1)         102   aegis -New ReViewer - add   project
                              new reviewers to a
aepa(1)          106   aegis -Project Attributes   project
                         - modify the attributes
                                            of a
aera(1)          110               aegis -Remove   project
                          Administrator - remove
                           administrators from a
aerd(1)          112   aegis -Remove Developer -   project
                        remove developers from a
aeri(1)          114    aegis -Remove Integrator   project
                       - remove integrators from
                                               a
aermpr(1)        116     aegis -ReMove PRoject -   project
                                          remove
aerrv(1)         120    aegis -Remove ReViewer -   project
                         remove reviewers from a
aenpa(1)          99    aegis -New Project Alias   project alias
                                  - create a new
aerpa(1)                   aegis -Remove Project   project alias
                                Alias - remove a
aenpa(1)          99                  aegis -New   Project Alias - create a
                                                   new project alias
aerpa(1)                           aegis -Remove   Project Alias - remove a
                                                   project alias
aepattr(5)       135                   aepattr -   project attribute file
aepa(1)          106                     aegis -   Project Attributes -
                                                   modify the attributes of
                                                   a project
aegis(1)          33                     aegis -   project change supervisor
aepconf(5)       136             aepconf - aegis   project configuration
                                                   file
aenpr(1)          99                  aegis -New   PRoject - create a new
                                                   project
aedn(1)           63         aegis -DELta NAme -   project delta
                       assign a symbolic name to
                                               a
aenrls(1)        101        aegis -New ReLeaSe -   project from an old-style
                                    create a new   project.
ae_p(1)           37                  ae p - set   project name
aermpr(1)        116               aegis -ReMove   PRoject - remove project
aeintegratq(1)    74   aegis - integrate changes   projects
                                            into
aepstate(5)      142                  aepstate -   project state file
ae_p(1)           37                          ae   p - set project name
ae-sccs-put(1)    36                     aegis -   put sccs version
aedeu(1)          59   aegis -Develop End Undo -   recall a change for
                                                   further development
aepatch(1)       107            aegis - send and   receive changes as
                                                   patches
aerect(1)                        aerect - draw a   rectangle
aenrls(1)        101                  aegis -New   ReLeaSe - create a new
                                                   project from an old-style
                                                   project.
aedist(1)         60                    aedist -   remotely distribute a
                                                   change
aetar(1)         123                     aetar -   remotely distribute a
                                                   change via tar
aenbru(1)         91    aegis -New BRanch Undo -   remove a branch
aera(1)          110                     aegis -   Remove Administrator -
                                                   remove administrators
                                                   from a project
aera(1)          110               aegis -Remove   remove administrators
                                 Administrator -   from a project
aencu(1)          93    aegis -New Change Undo -   remove a new change from
                                                   a project
aerpa(1)                   aegis -Remove Project   remove a project alias
                                         Alias -
aerd(1)          112                     aegis -   Remove Developer - remove
                                                   developers from a project
aerd(1)          112   aegis -Remove Developer -   remove developers from a
                                                   project
aerm(1)          115                     aegis -   ReMove file - add files
                                                   to be deleted to a change
aermu(1)         117   aegis -ReMove file Undo -   remove files to be
                                                   deleted from a change
aermu(1)         117                     aegis -   ReMove file Undo - remove
                                                   files to be deleted from
                                                   a change
aeri(1)          114                     aegis -   Remove Integrator -
                                                   remove integrators from a
                                                   project
aeri(1)          114    aegis -Remove Integrator   remove integrators from a
                                               -   project
aenfu(1)          97      aegis -New File Undo -   remove new files from a
                                                   change
aentu(1)         105      aegis -New Test Undo -   remove new tests from a
                                                   change
aermpr(1)        116     aegis -ReMove PRoject -   remove project
aerpa(1)                                 aegis -   Remove Project Alias -
                                                   remove a project alias
aermpr(1)        116                     aegis -   ReMove PRoject - remove
                                                   project
aerrv(1)         120                     aegis -   Remove ReViewer - remove
                                                   reviewers from a project
aerrv(1)         120    aegis -Remove ReViewer -   remove reviewers from a
                                                   project
aemv(1)           87          aegis -MoVe file -   rename a file as part of
                                                   a change
aemvu(1)          88     aegis -MoVe file Undo -   rename a file as part of
                                        undo the   a change
aer(1)           109             aegis -RePorT -   report generator
aerptidx(5)      146                  aerptidx -   report index file format
aer(1)           109                     aegis -   RePorT - report generator
aer(5)           144                       aer -   report script language
                                                   definition
aeimport(1)       72      aegis - import foreign   repository into
aerpu(1)         119   aegis -Review Pass Undo -   rescind a change review
                                                   pass
aetest(5)        149               aetest - test   results file format
aecpu(1)          51     aegis -CoPy file Undo -   reverse action of aecp
aeibu(1)          70      aegis -Integrate Begin   reverse the aeib command
                                          Undo -
aerb(1)          110       aegis -Review Begin -   review
                                  begin a change
aerfail(1)       113   aegis -Review FAIL - fail   review
                                        a change
aerpass(1)       118   aegis -Review PASS - pass   review
                                        a change
aerb(1)          110                     aegis -   Review Begin - begin a
                                                   change review
aerbu(1)         111                     aegis -   Review Begin Undo - stop
                                                   reviewing a change
aenrv(1)         102                  aegis -New   ReViewer - add new
                                                   reviewers to a project
aerrv(1)         120               aegis -Remove   ReViewer - remove
                                                   reviewers from a project
aerrv(1)         120    aegis -Remove ReViewer -   reviewers from a project
                                          remove
aenrv(1)         102   aegis -New ReViewer - add   reviewers to a project
                                             new
aerfail(1)       113                     aegis -   Review FAIL - fail a
                                                   change review
aerbu(1)         111    aegis -Review Begin Undo   reviewing a change
                                          - stop
tkaer(1)         127        aegis - GUI tool for   reviewing Aegis change
                                                   sets, using TCL/TK
aerpu(1)         119   aegis -Review Pass Undo -   review pass
                                rescind a change
aerpass(1)       118                     aegis -   Review PASS - pass a
                                                   change review
aerpu(1)         119                     aegis -   Review Pass Undo -
                                                   rescind a change review
                                                   pass
aet(1)           121               aegis -Test -   run tests
ae-sccs-put(1)    36                 aegis - put   sccs version
aegis.cgi(1)      68       aegis.cgi - Aegis web   script
                                       interface
aer(5)           144                aer - report   script language
                                                   definition
aefind(1)                                aegis -   search for files in
                                                   directory hierarchy
aepatch(1)       107                     aegis -   send and receive changes
                                                   as patches
ae_c(1)           37                      ae c -   set change number
aechown(1)        43       aegis -Change Owner -   set change owner
ae_p(1)           37                      ae p -   set project name


tkaer(1)         127        aegis - GUI tool for   sets, using TCL/TK
                          reviewing Aegis change
aeedit(1)         63     aeedit - edit a change'   s files
aemeasure(1)      84                 aemeasure -   simple file metrics
aeannotate(1)             aeannotate - annotated   source file listing
aecstate(5)      128     aecstate - aegis change   state file
aefstate(5)      132       aefstate - aegis file   state file
aegstate(5)      134            aegstate - aegis   state file
aepstate(5)      142          aepstate - project   state file
aeustate(5)      150             aeustate - user   state file
aerbu(1)         111    aegis -Review Begin Undo   stop reviewing a change
                                               -
aesub(1)                  aesub - substitute and   strings
                                            echo
aedir(5)         131     aedir - aegis directory   structures
aenrls(1)        101        aegis -New ReLeaSe -   style project.
                       create a new project from
                                         an old-
aesub(1)                                 aesub -   substitute and echo
                                                   strings
aesub(5)         147   aesub - available command   substitutions
aegis(1)          33      aegis - project change   supervisor
aedn(1)           63         aegis -DELta NAme -   symbolic name to a
                                        assign a   project delta
aetar(1)         123            aetar - remotely   tar
                         distribute a change via
tkaeca(1)        127   aegis - GUI interface for   TCL/TK
                                     aeca, using
tkaepa(1)              aegis - GUI interface for   TCL/TK
                                     aeca, using
tkaegis(1)       125   aegis - GUI interface for   TCL/TK
                                    Aegis, using
tkaenc(1)        127   aegis - GUI interface for   TCL/TK
                                     aenc, using
tkaer(1)         127        aegis - GUI tool for   TCL/TK
                          reviewing Aegis change
                                     sets, using
aent(1)          103                  aegis -New   Test - add a new test to
                                                   a change
aetest(5)        149                    aetest -   test results file format
aet(1)           121                     aegis -   Test - run tests
aet(1)           121           aegis -Test - run   tests
aentu(1)         105      aegis -New Test Undo -   tests from a change
                                      remove new
aent(1)          103     aegis -New Test - add a   test to a change
                                             new
aentu(1)         105                  aegis -New   Test Undo - remove new
                                                   tests from a change
aelock(5)        134   aegis locks - how locking   them
                       works, and which commands
                                             use
ael(1)            78          aegis -List - list   things
                          (possibly) interesting
tkaeca(1)        127   aegis - GUI interface for   TK
                                aeca, using TCL/
tkaepa(1)              aegis - GUI interface for   TK
                                aeca, using TCL/
tkaegis(1)       125   aegis - GUI interface for   TK
                               Aegis, using TCL/
tkaenc(1)        127   aegis - GUI interface for   TK
                                aenc, using TCL/
tkaer(1)         127        aegis - GUI tool for   TK
                          reviewing Aegis change
                                sets, using TCL/
tkaer(1)         127                 aegis - GUI   tool for reviewing Aegis
                                                   change sets, using TCL/TK
aemt(1)           84   aegis -Make Transparent -   transparent
                                make branch file
aemtu(1)          85     aegis -Make Transparent   transparent
                           Undo - no longer make
                                     branch file
aemt(1)           84                 aegis -Make   Transparent - make branch
                                                   file transparent
aemtu(1)          85                 aegis -Make   Transparent Undo - no
                                                   longer make branch file
                                                   transparent
aecomp(1)         48             aegis - compare   two changes
aemtu(1)          85     aegis -Make Transparent   Undo - no longer make
                                                   branch file transparent
aedeu(1)          59          aegis -Develop End   Undo - recall a change
                                                   for further development
aenbru(1)         91           aegis -New BRanch   Undo - remove a branch
aencu(1)          93           aegis -New Change   Undo - remove a new
                                                   change from a project
aermu(1)         117          aegis -ReMove file   Undo - remove files to be
                                                   deleted from a change
aenfu(1)          97             aegis -New File   Undo - remove new files
                                                   from a change
aentu(1)         105             aegis -New Test   Undo - remove new tests
                                                   from a change
aerpu(1)         119          aegis -Review Pass   Undo - rescind a change
                                                   review pass
aecpu(1)          51            aegis -CoPy file   Undo - reverse action of
                                                   aecp
aeibu(1)          70      aegis -Integrate Begin   Undo - reverse the aeib
                                                   command
aerbu(1)         111         aegis -Review Begin   Undo - stop reviewing a
                                                   change
aedbu(1)          56   aegis -Develop Begin Undo   undo the effects of aedb
                                               -
aemvu(1)          88     aegis -MoVe file Undo -   undo the rename a file as
                                                   part of a change
aedbu(1)          56        aegis -Develop Begin   Undo - undo the effects
                                                   of aedb
aemvu(1)          88            aegis -MoVe file   Undo - undo the rename a
                                                   file as part of a change
aeuconf(5)       149                   aeuconf -   user configuration file
aeustate(5)      150                  aeustate -   user state file
aelock(5)        134   aegis locks - how locking   use them
                       works, and which commands
tkaeca(1)        127   aegis - GUI interface for   using TCL/TK
                                           aeca,
tkaepa(1)              aegis - GUI interface for   using TCL/TK
                                           aeca,
tkaegis(1)       125   aegis - GUI interface for   using TCL/TK
                                          Aegis,
tkaenc(1)        127   aegis - GUI interface for   using TCL/TK
                                           aenc,
tkaer(1)         127        aegis - GUI tool for   using TCL/TK
                          reviewing Aegis change
                                           sets,
aemetrics(5)     135         aemetrics - metrics   values file format
ae-sccs-put(1)    36            aegis - put sccs   version
aev(1)           124                     aegis -   VERSion - give version
                                                   information
aev(1)           124       aegis -VERSion - give   version information
aetar(1)         123            aetar - remotely   via tar
                             distribute a change
aebuffy(1)        41                     aegis -   watch for changes
aegis.cgi(1)      68           aegis.cgi - Aegis   web interface script
aelock(5)        134   aegis locks - how locking   which commands use them
                                      works, and
aelock(5)        134   aegis locks - how locking   works, and which commands
                                                   use them
aexml(1)         125   aexml - Aegis database to   XML



Reference Manual                     Aegis                             -cmxcvi
