.













                              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.24.2
and was prepared 20 April 2025.






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, 2005, 2006, 2007, 2008, 2009
Peter Miller

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  3  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, see <http://www.gnu.org/licens-
Read Me(Aegis)                                                  Read Me(Aegis)



es/>.

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, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        _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.24.2.README   # Description, from tar file
                File:   aegis.4.24.2.lsm      # Description, in LSM format
                File:   aegis.4.24.2.ae       # the complete source, aedist format
                File:   aegis.4.24.2.spec     # RedHat package specification
                File:   aegis.4.24.2.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.24.2.README   # Description, from tar file
                File:   aegis.4.24.2.lsm      # Description, in LSM format
                File:   aegis.4.24.2.spec     # RedHat package specification
                File:   aegis.4.24.2.ae       # the complete source, aedist format
                File:   aegis.4.24.2.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 3 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, see <http://www.gnu.org/licenses/>.

        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 MillerE-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..2244..22 ((2255--JJuunn--22000099))
        * The branch fstate can contain fake transparent entries when a change
        not yet integrated modifies for the first time in the branch a file.

        It is possible that such entries cause troubles if the project is
        configured to write the pfstate file.  To avoid such troubles the fake
        transparent entries are stripped on the fly when reading the pfstate
        file.

        The way the the pfstate file is written is not modified.

        * The Italian translation of error messages is now available.

        * The Vietnamese and Dutch error messages has been updated.

        * The _a_e_r_e_v_m_l(1) command was incorrectly printing twice user defined
        attributes. This behavior has been fixed.

        * The _a_e_c_l_e_a_n(1) command was incorrectly checking the patterns against
        the absolute name of the files.  This behavior has been fixed.

        * The _a_e_l_o_c_k(1) man page was incorrectly reporting the attribute name
        aelock use.  This has been fixed.

        * The _a_e_s_u_b(5) man page now reference _a_e_u_c_o_n_f(5) in the email address
        section.

        * The _a_e_d_i_s_t(1) command is now more robust when handling renamed
        files.

        * The t0228a-matt.sh test script has been made more robust with
        respect to different behavior of libmagic.

        * The t0127a.sh test script (aeimport vs. sccs) has been fixed.

        * A number of memory related bugs has been fixed.

        * Some typo has been corrected in the _a_e_-_r_e_p_o_-_c_i(1) man page.

        * The build process has been improved to give more informative
        messages when a new aegis developer populate his repository for the
        first time.

   VVeerrssiioonn 44..2244..11 ((2244--SSeepp--22000088))
        SSeeccuurriittyy:: [ #2079025 ] This update fix two security problems
        discovered by the Debian crew (Debian #496400 and #496402,
        CVE-2008-4938) You are encouraged to upgrade.

        RReemmoovveedd ffuunnccttiioonnaalliittiieess:: In response to one of the two above security
        problem, the aegis.cgi program has been removed.

        * Test 222 has been improved to cope with some different ways SVN
        stores revision information, remaining backwards compatible.

        * A bug in the distributed development machinery has been fixed: it no
        longer add the file UUID to created files without an UUID in the
        remote repository.  This prevents the existence of the same file with
        different UUIDs in different repositories.

        * [ #1942614 ] Some build problem discovered by the Debian crew has
        been fixed.  Specifically: improve 'make clean' (Debian bug 442482),
        add a minor man-page (Debian patch), make test in ae_diff2htm portable
        (Debian bug 464484), fix whoami test in etc/test.sh (Debian bug
        393624), add shell magic to ae-cvs-ci (Debian patch).

        * The aediff command now behave as expected when invoked for a file
        that, due to a bug in aeipass, is present with two different UUIDs in
        the repository.  Previously it used to generate a diff between the
        empty file and the second revision of the file.

        * A bug has been fixed in aefind, it no longer segfaults when given
        the -baseline option.

        * A bug has been fixed in aefinish: it no longer segfault if a branch
        was to be finished and it contained a transparent file.

        * A bug has been fixed in the aecp -ind -output - option, it no longer
        tries to set the permission mode of stdout.

        * A bug has been fixed in aeib, it no longer complains that
        transparent files have been tampered with.

        * A couple of memory leaks introduced with the time safe work has been
        plugged.

        * The makefile has been changed to use DESTDIR (advocated by GNU).

        * A test script has been improved to work with older bzip2.

        * Small improvement to test_funcs, reintroduce the chown invocation
        for the directory under $work/.

        * This change set modify the aefinish command to jump the project home
        path instead of the user home directory (since it may be inaccessible)

        * This aegis.spec file (used for RPM builds) has been improved.

   VVeerrssiioonn 44..2244 ((0099--MMaarr--22000088))
        * Numerous portability improvements.

        * Numerous improvements to the history reconstruction code.

        * Numerous improvements and bug fixes to the distributed development
        code.  See _a_e_d_i_s_t(1), _a_e_g_e_t(1), _a_e_t_a_r(1) and _a_e_p_a_t_c_h(1) for more
        information.

        * The site specific architecture information has been split into a
        separate file, maked with an entire-source-hide attribute, so that new
        Aegis-under-Aegis projects don't have such bad architecture problems.

        * The license has been changed to GPLv3.

        * A bug has been fixed the the change::pconf_get method which
        sometimes caused segfaults.

        * A bug has been fixed in aeclone which caused aecp -delta to segfault
        when: a change set whith a removed file was cloned, and the clone
        change set subsequently integrated.

        * The aediff command is now smarter about files which may have moved.

        * A bug has been fixed in the aeannotate command, it no longer
        segfaults for some file histories.

        * A Vietnamese error mesage translation has been added.

        * There is a new Portugese (Brazillian) message catalogue translation.

        * It is now possible to develop begin undo and new change undo in a
        single command.

        * The _a_e_l(1) command now understands are much wider range of ways to
        specify changes.

        * A segfault has been fixed in the use of --delta and --delta-data
        options.

        * This change set fix a problem in the _a_e_s_v_t(1) checkout command that
        can fail to extract from a gzip compressed archive.

        * A bug has been fixed in the _a_e_c_h_o_w_n(1) command, to stop a segfault
        when printing some error messages.

        * There is a new _a_e_b_i_s_e_c_t(1) command which helps to find project
        regressions not handled by the test suite.

        * Many commands now cope with renames in more situations.

        * A bug has been fixed in _a_e_c_l_o_n_e(1) which caused _a_e_c_p _-_d_e_l_t_a to
        segfault when a change set whith a removed file was cloned, and the
        clone change set subsequently integrated.

        * The _a_e_d_e_-_p_o_l_i_c_y(1) manual page has been updated to document the
        aede-policy-line-length file attribute.

        * A vietnamese translation has been added.

        * The _a_e_r_e_p_o_r_t(1) command now understands more ways to specify
        changes.

        * There is a new ${path_reduce} substitution which may be used to
        remove redundant elements from path lists, such as used by the $PATH
        environment variable.

        * When the development directory style required actions to be perfomed
        on the development directory, the obsolete "creating symbolic links to
        baseline" message was produced. This was confusing. A more generic
        message is now used, which is intended to be less confusing.

        * The aecp(1) -delta command now follows the whiteout preference when
        copying a "removed" file.  The test suite now runs much faster.

        * A bug has been fixed in the _a_e_d_b_u(1) command. It no longer complains
        about permissions when the develop_begin_undo_command has been set.

        * A bug has been fixed in the _a_e_i_m_p_o_r_t(1) command.  It no longer uses
        the Attic portion of filenames when populating the history directory
        tree.

        * The change details listing now prints comments in a wide column when
        the comments are lengthy.

        * There is a new $Active_Directory substitution, used to obtain the
        development directory, or the integration directory, depending on the
        change state. This is rather like the default behaviour of the _a_e_c_d(1)
        command.

        * There is a new ${project version} substitution.

        * The commands run by aeipass are now accompanied by more file name
        information, so that you can know which source file corresponds to
        which UUID history file, if there is a failure in the history
        commands.

        * The _a_e_c_a(1) command now checks for and discards duplicate
        architecture names. This fixes a bug with unsatifiable architecture
        dependencies.

        * The _a_e_b(1) command has been improved, it no longer keeps running the
        project_file_comand over and over again.

        * A bug has been fixed in the _a_e_n_f(1) command; it now preserves
        existing file contents if new files already exist in the development
        directory.

        * A bug has been fixed in the "aet -regression" command, it no longer
        reports free()ing a non-existent string.

        * A bug has been fixed in the _a_e_d(1) command, it no longer reports a
        bug when a cross branch merege is attempted for a file independently
        created in both branches.

   VVeerrssiioonn 44..2233
   VVeerrssiioonn 44..2222..22 ((1188--OOcctt--22000077))
        This is an update for the 4.22 stable release, it is meant to help
        Aegis users while the next release cycle ends.

        * [ 1684820 ] Fixed a bug in aeclone that caused aecp -delta
        segfaults.

        * The symlink farm now handle derived files registered within Aegis
        more like normal derived files.

        * The change_pconf_get function no longer looks for historical
        versions of files, if it can help it.  This makes many things go
        faster and solved the problem of configuration fields redefinition.
        While this change does not make Aegis more time safe, it cures one of
        the symptoms.

        * Fixed test 222 to work with recent releases of subversion.

        * The _a_e_p_c_o_n_f(5) has been improved.

        * [ Debian 435422 ] The reference manual was wrongly referring to
        -Page-Headings instead of -Page-Header.  The documentation has been
        updated to match the source code.

        * The test/02/t0257a-walt.sh script has been back-ported from the
        development branch (4.23) to prevent bug #...... to appear in the
        stable branch.

        * [ 1704108 ] The _a_e_c_p(1) -delta command now follows the whiteout
        preference when copying a "removed"file.

        * [ 1685304 ] A bug has been fixed that caused _a_e_c_p(1) -delta X to
        copy in a change also a file with the old name of a file _a_e_m_v(1)ed
        before delta X.

        * The generated Makefile now installs _a_e_l_o_c_k(1) with the correct
        permissions.

        * A bug has been fixed in the _a_e_t_a_r(1) command, it no longer creates
        tarballs that cause BSD tar to complain like this: tar: End of archive
        volume 1 reached tar: Unexpected EOF on archive file

        * The configure script now handle correctly the datadir substitution.

   VVeerrssiioonn 44..2222..11 ((1144--AApprr--22000077))
        * Test t0247a-walt.sh has been fixed, it was not exporting
        AEGIS_TEST_DIR.  This make _a_e_i_n_t_e_g_r_a_t_q(1) leaving stuff in the home
        directory of the user.

        * Some minor fix that prevented Aegis to build on RPM based
        distributions has been fixed.

        * The t0011a.sh test script failed when _l_e_x(1) was missing, since it
        is not required to build Aegis the test script has been modified to
        pass even when _l_e_x(1) is missing.

        * _a_e_d_i_s_t(1) now handle certain renamed files correctly when receiving
        branches or entire-source.

        * The t0011a.sh test script failed when _l_e_x(1) was missing, since it
        is not required to build Aegis the test script has been modified to
        pass even when _l_e_x(1) is missing.

        * _a_e_d_i_s_t(1) now handle certain renamed files correctly when receiving
        branches or entire-source.

        * [ 1691122 ] Newer versions of the autoconf tools introduced a new
        @datarootdir@, and complained loudly if it wasn't used.  Aegis
        configure does not trigger anymore those warnings.

        * The test suite does not use anymore _d_i_f_f(1) -u because not all
        systems have gnu diff, so the use of gnu diff's -u option is nor
        portable, and will give false negatives on some systems.

        * The test suite does not use anymore _d_i_f_f(1) -u because not all
        systems have gnu diff, so the use of gnu diff's -u option is nor
        portable, and will give false negatives on some systems.

        * _a_e_d_i_s_t(1) -rec now save the UUID as the user defined original-UUID
        if the UUID is already present in the repository.  This is especially
        useful when receiving changes in the same repository.

        * _a_e_c_l_o_n_e(1) now preserve the the UUID of the original change as the
        original-UUID user defined attribute of the new change. It also copy
        any other used-defined attribute.

        * Test 89 has been disable on HP-UX-10 because that system has a
        "vendor specific" (i.e. broken) _c_p_i_o(1) archive format.

        * Test 95 has been improved to be less sensitive to _l_i_b_m_a_g_i_c(3)
        differences.

        * Test 207 has been changed to be less sensitive to _s_o_r_t(1)
        differences.

        * The project_specific setenv:* variables are now exported only once.

        * [ 1674882 ] The following bug as been fixed: if a file is created
        and renamed within a single branch, and that branch is integrated,
        then the file is not included in the output of 'aedist -send -es' from
        subsequent branches.

        * A bug has been fixed in the _a_e_d_b_u(1) command.  It no longer
        complains about permissions when the _d_e_v_e_l_o_p___b_e_g_i_n___u_n_d_o___c_o_m_m_a_n_d has
        been set.

        * The _a_e_d_i_s_t(1) -rec command now better handles file renamed (not
        aemved) to match the local repository state.

        * A bug has been fixed that caused the _c_h_a_n_g_e___p_c_o_n_f___g_e_t function
        terminate _a_e_g_i_s(1) with a fatal error if applied to a branch without a
        config file (e.g. if the trunk does not contain any closed branch).

        * The _a_e_n_p_r_(_1_) _-_k_e_e_p command now set the administrator recursively.

        * A bug has been fixed in the ${project-specific} substitution, it now
        works correctly with the _a_e_s_u_b(1) -bl command.

        * _a_e_d_i_s_t_(_1_) _-_r_e_c_e_i_v_e_d has been modified to set the user defined
        attribute foreign-copyright to true when receiving a remote change
        set.  This in order to avoid _a_e_d_e_-_p_o_l_i_c_y(1) complain about incorrect
        copyright notice at _a_e_d_e(1) time.0

        * A bug has been fixed that caused an _a_e_m_v(1) followed by an _a_e_n_f(1)
        to generate two different files with the same UUID.

        * Avoid the "multiple permission set" error on quit.

        * A bug has been fixed in the UUID generating code; it was running out
        of file descriptors.

        * A bug has been fixed in the _a_e_t(1) -regression command, it no longer
        reports free()ing a non-existent string.

        * A bug has been fixed in the _a_e_d(1) command, it no longer reports a
        bug when a cross branch merge is attempted for a file independently
        created in both branches.

        * A bug has been fixed which caused _a_e_i_p_a_s_s(1) to assign UUID to files
        at branch integration pass time. This can happen if the files was
        created and integrated with an old Aegis release, lacking support for
        file's UUID.  This bug make it possible to have the history for a file
        split into two part, one accessible via the file_name, the other
        accessible using the UUID.

        * A segfault in _a_e_a_n_n_o_t_a_t_e(1) has been fixed.

        * A bug has been fixed related to the use of the
        _u_n_c_h_a_n_g_e_d___f_i_l_e___i_n_t_e_g_r_a_t_e___p_a_s_s___p_o_l_i_c_y_=_r_e_m_o_v_e policy described in
        _a_e_p_c_o_n_f(5).  In this case aeipass failed to reset the locked_by field
        from the project fstate file, this prevented subsequent changes to
        modify the removed file.

        * A bug has been fixed in the handling of the symlink farm, for
        development directory styles which use them for derived files.
        Derived files in the baseline directory which were formerly source
        files, but then aerm-ed, are now included in the development directory
        when copy/link styles are used.

        * A bug has been fixed in the _a_e_n_f(1) command; it now preserves
        existing file contents if new files already exist in the file
        development directory.

        * The ./configure script has been improved to stop with a fatal error
        if the bzip2 library is not available.

   VVeerrssiioonn 44..2222 ((2299--MMaarr--22000066))
        * A bug has been fixed in the _a_e_c_l_e_a_n(1) command, it now correctly
        resets the change build and test times.

        * A bug has been fixed in writing of tar and cpio data, in cases where
        there was one byte too much padding.

        * A bug has been fixed in the _a_e_i_n_t_e_g_r_a_t_q(1) command, it no longer
        ignores change number zero.

        * A bug has been fixed in the _a_e_p_r_o_m_p_t_c_m_d(1) comand, it now
        understands that when the build command is "exit 0" then no build is
        required.

        * The _a_e_d_e(1) comand now runs the _r_e_v_i_e_w___p_a_s_s___n_o_t_i_f_y___c_o_m_m_a_n_d (instead
        of the _d_e_v_e_l_o_p___e_n_d___n_o_t_i_f_y___c_o_m_m_a_n_d) for projects configured to skip the
        _b_e_i_n_g _r_e_v_i_e_w_e_d state.

        * A bug has been fixed in the _a_e_a_n_n_o_t_a_t_e(1) command, it no longer uses
        the wrong timestamp when creating histories for completed branches.

        * A bug in the _a_e_d(1) command has been fixed, it no longer reports a
        bug when trying to merge a file that has been renamed.

        * A bug has been fixed in the _a_e_t(1) command, it now correctly handles
        multiple architectures being reported for batch test results.

        * A bug has been fixed in the _a_e_t _-_r_e_g_r_e_s_s_i_o_n command, the _b_a_t_c_h___-
        _t_e_s_t___c_o_m_m_a_n_d now correctly handles multiple architectures in the
        results.

        * The notification scripts distributed with Aegis have been fixed,
        they now correctly substitute recipients' email addresses.

        * A bug has been fixed in the _a_e_d_i_f_f(1) command, the _-_c_h_a_n_g_e option is
        now ablew to cope with degenerate forms of the delta name in cases
        like _a_e_d_i_f_f _-_c_h_a_n_g_e _D_0_0_1 and similar.

        * A bug has been fixed in the _a_e_n_c(1) command, it now takes more
        notice of project testing default settings.

        * A bug has been fixed in the _a_e_g_e_t(1) interface, the adjective for
        the alternate listing link at the bottom of the Integration Histogram
        pages has been inverted.

        * A bug has been fixed in the _a_e_g_e_t(1) command, is is now always
        possible to see the error produced by a script when the _n_o_e_r_r_o_r
        modifier is specified.

        * A bug has been fixed in the _a_e_g_e_t(1) web interface, it now provides
        the correct links to the more and less detailed file history pages.

        * The _a_e_g_e_t(1) web interface no longer emits broken links to removed
        source files.

        * A bug has been fixed in the _a_e_n_b_r(1) command, the _p_r_o_t_e_c_t___d_a_t_a_b_a_s_e
        project attribute is now correctly inherited from the parent branch.

        * A bug has been fixed the the RSS feed, where HTML special characters
        were not rendered correctly.

        * A bug has been fixed in the _a_e_i_p_a_s_s(1) command, it no longer fails
        if the _h_i_s_t_o_r_y___c_r_e_a_t_e___c_o_m_m_a_n_d was not set, it uses the _h_i_s_t_o_r_y___p_u_t___-
        _c_o_m_m_a_n_d instead, as it is supposed to.

        * A bug has been fixed in the _a_e_d_i_s_t _-_s_e_n_d command, it no longer
        attempts to include the source of removed files.

        * A bug has been fixed in the _a_e_d_i_s_t(1) command, it no longer
        segfaults when compiled with DEBUG defined.

        * A bug has been fixed in the _a_e_d_i_s_t _-_r_e_p_l_a_y command, it no longer
        downloads change sets more than once.

        * A bug has been fixed in the _a_e_d_i_s_t _-_s_e_n_d command, it no longer
        obtains the wrong version of the project files when building patches
        for files which have been renamed.

        * A bug has been fixed in the _a_e_d_i_s_t(1) command, no longer attempts to
        include the source of removed files.

        * A bug has been fixed in the _a_e_d_i_s_t _-_p_e_n_d_i_n_g command, it now resolves
        project aliases.

        * A bug has been fixed in the _a_e_d_i_s_t(1) command, it no longer
        segfaults on IRIX.

        * A bug was fixed which caused the development_directory of a branch
        to be recorded as an absolute path in the Aegis meta-data, rather than
        relative to the home of the project.  This problem make it difficult
        to move a project to a different location in the filesystem.

        * There is a new open source project example on the web site, which
        allows tarballs to be unpacked and turned into an Aegis project in
        less than 30 minutes.

        * There is a new _a_e_f_i_n_i_s_h(1) command which may be used to read the
        state of a change set and then run all of the Aegis commands necessary
        to to end development.  See _a_e_f_i_n_i_s_h(1) for more information.

        * The _a_e_x_m_l(1) command now understands ".bz" output file suffix, in
        addition to the ".gz" suffix it already understood.  The man page has
        been updated to cover the -output opion.

        * The _a_e_r_e_v_m_l _-_s_e_n_d command is now able to produce bzip2 compressed
        output.

        * The restrictions on project alias names have been eased.  It is now
        possible to have any alias name you like, so long as it doesn't
        contain any shell special characters.

        * It is now possible to set change attributes from the command line,
        without going via an editor.  See _a_e_c_a(1) for more information.

        * The _a_e_t_a_r _-_s_e_n_d command is now able to produce bzip2 compressed
        output.

        * There is an new _a_e_t_a_r _-_e_x_c_l_u_d_e command line option, allowing you to
        exclude files from the tarball being unpacked and used to for the
        change set.  This is typically necessary when a tarball includes
        derived files (e.g. the ./configure script in most open source
        projects).

        * There is a new _a_e_t_a_r _-_e_x_c_l_u_d_e_-_a_u_t_o_-_t_o_o_l_s option, which can be used
        to exclude derived files commonly found in open source projects using
        the GNU Autoconf and GNU Automake tools.

        * There is a new _a_e_d_e_-_p_o_l_i_c_y(1) command which may be invoked by
        _d_e_v_e_l_o_p___e_n_d___p_o_l_i_c_y___c_o_m_m_a_n_d to enforce additional local policies.  See
        _a_e_d_e_-_p_o_l_i_c_y(1) for more information.

        * When symlinking files (source or derived) into the development
        directory, the last-modified time of the link is set to the last-
        modified time of the file being linked to, when the underlying
        filesystem supports it.

        * The aefa(1) command now accepts _n_a_m_e==_v_a_l_u_e attribute assignments on
        the command line.

        * The _a_e_t(1) command now understands _n_a_m_e==_v_a_l_u_e pairs on the command
        line, and passes them unchanged to the test command.  The -force
        option implies a force=1 variable setting.

        * The _a_e_p_a_t_c_h _-_s_e_n_d command is now able to produce bzip2 compressed
        output.

        * The _a_e_s_v_t(1) command now uses the _b_z_i_p_2(1) algorithm by default.
        There is a _a_e_s_v_t _-_c_o_m_p_r_e_s_s_i_o_n_-_a_l_g_o_r_i_t_h_m_=_g_z_i_p option for forwards
        compatibility.

        * There is a new _a_e_-_r_e_p_o_-_c_i(1) command which may be used in an
        _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 to do a parallel check-in of a change
        set into a second parallel repository.  It understands CVS and SVN at
        the moment; it is easy to extend to understand more repository types.
        The old _a_e_-_c_v_s_-_c_i(1) script now invokes the _a_e_-_r_e_p_o_-_c_i(1) command.

        * The build step of the development process can now be made optional.
        Configuring a _b_u_i_l_d___c_o_m_m_a_n_d of "exit 0" will tell Aegis your project
        does not need to be built.

        * The _a_e_d_i_s_t _-_-_r_e_p_l_a_y command now adds a compatibility modifier to all
        of the downloads URLs, so that the change set received will be
        compatible with the version of aedist at the receiving end.

        * The _a_e_d_i_s_t _-_s_e_n_d command now accepts a _-_n_o_-_m_i_m_e_-_h_e_a_d_e_r option, to
        make it easier to validate the _a_e_d_i_s_t(1) output against the real
        _c_p_i_o(1) command.

        * The _a_e_d_i_s_t _-_s_e_n_d command is now able to produce bzip2 compressed
        output.

        * There is a new _e_n_t_i_r_e_-_s_o_u_r_c_e_-_h_i_d_e file attribute which may be used
        to omit site-specific files from _a_e_d_i_s_t _-_s_e_n_d change sets.

        * The _a_e_t_a_r _-_r_e_m_o_v_e_-_p_a_t_h_-_p_r_e_f_i_x option now also accepts a numeric
        argument.

        * The _a_e_a_n_n_o_t_a_t_e(1) command now understands the _-_c_h_a_n_g_e and _-_d_e_l_t_a
        options.

        * The _a_e_d_b(1) command has been enhanced to check that directory
        permissions above the development directory will be traversable by the
        integrator and the reviewers.

        * The _a_e_c_p_u(1) comand now understands the _-_r_e_a_d_-_o_n_l_y option to mean
        uncopy all of the insulation files.

        * There is a new _a_e_l_o_c_k(1) command, which may be used to take read-
        only locks.  This can be useful for backups, and other activities
        outside Aegis' scope which require a constant project state to operate
        correctly.

        * The _a_e_d_i_s_t command can now perform file merges with better results.

        * The _a_e_d_i_s_t _-_r_e_c_e_i_v_e command now looks to see if the executing user
        has project admin priviledges, and if so does not cancel testing
        exemptions.

        * The _a_e_d_i_s_t _-_r_e_c_e_i_v_e command now applies patches using the _p_a_t_c_h(1)
        command, rather than doing it less well itself.

        * The _a_e_d_i_s_t _-_r_e_p_l_a_y command now attempts to use the same change
        number as on the remote system.  A bug has been fixed in the way it
        looked for change numbers.

        * There is a new _u_n_c_h_a_n_g_e_d___f_i_l_e___i_n_t_e_g_r_a_t_e___p_a_s_s___p_o_l_i_c_y field in the
        project configuration file, which controls what to do when a change
        set contains an unchanged file at integrate pass time.

        * It is now possible for developers to edit a change description when
        a change is in the awaiting development state, if the project has
        _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 enabled.

        * The _a_e_d(1) command is now optional.  Configuring a _d_i_f_f___c_o_m_m_a_n_d of
        "exit 0" will tell Aegis your project does not need to be differenced.

        * The _a_e_g_e_t(1) interface now places HTML anchors in description text
        where it recognizes them.

        * There is a new _a_e_g_e_t_:_i_n_v_e_n_t_o_r_y_:_h_i_d_e change attribute, which may be
        used to prevent strictly local change sets from being advertised in
        the _a_e_g_e_t(1) change set inventory.

        * The _a_e_g_e_t(1) web interface file listings pages now link the edit
        numbers to file versions. When history is available there are also
        links to the previous verion, and the arrow is linked to a diff page.

        * The _a_e_g_e_t(1) presentation of file history has been improved to
        highlight renaming of files.

        * The _a_e_g_e_t(1) web interface now has a recursive option on its project
        integration history pages.

        * The _a_e_b_u_f_f_y(1) command is now able to run the _t_k_a_e_r(1) command from
        more states, and it now accepts 'q' to quit.  The display of changes
        with double quotes (") in their brief description has been improved.

        * A build problem with libcurl not being present has been fixed.

        * A bug has been fixed which caused errors when Aegis was compiled
        with g++ 4.1

        * A build problem has been fixed on Solaris.

        * A build problem related to _b_i_s_o_n(1) using _l_i_b_i_n_t_l(3) has been fixed.

        * The ./configure script has been improved to correctly detect
        installation of the OSSP UUID library.

        * A build problem on HP/UX has been fixed.

        * A build problem on MacOS X has been fixed.

        * A build problem has been fixed where libraries required by the
        ./configure script are located under /usr/local/lib or some other non-
        standard place.

   VVeerrssiioonn 44..2211 ((1100--NNoovv--22000055))
        You must have the _G_n_o_m_e _l_i_b_x_m_l_2 library (http://xmlsoft.org/)
        installed in order to build Aegis.  Please install the xml2 library
        version 1.8.17 or later.  You do not have to install the rest of
        Gnome, the library can be used on its own.  If you are using a package
        based install, you will need the _l_i_b_x_m_l_2_-_d_e_v_e_l or _l_i_b_x_m_l_2_-_d_e_v package
        in addition to the _l_i_b_x_m_l_2 package.

        Ideally, you would also install the _l_i_b_m_a_g_i_c package, used to
        determine file types, just as _f_i_l_e(1) does.  (This is not to be
        confused with the libmagic6 image manipluation library.  If you are
        using a package based install, you will need the _l_i_b_m_a_g_i_c_-_d_e_v_e_l or
        _l_i_b_m_a_g_i_c_-_d_e_v package in addition to the _l_i_b_m_a_g_i_c package.

        * A bug has been fixed in the _a_e_c_p _-_i_n_d_e_p_e_n_d_e_n_t _-_o_u_t_p_u_t option, which
        resulted in an error when Aegis tried to chmod nothing.

        * The auto file promote feature previously available in _a_e_d(1) has
        been added to the _a_e_b(1), _a_e_c_p(1), _a_e_r_m(1) and _a_e_n_f(1) commands.

        * The _a_e_d_i_s_t _-_p_e_n_d_i_n_g and _a_e_d_i_s_t _-_m_i_s_s_i_n_g commands now print the
        number of changes in the remote inventory.

        * A bug was fixed in the _a_e_c_p command which caused a segfault
        sometimes when the user tries to copy a removed file.

        * The _a_e_d_i_s_t _-_r_e_p_l_a_y command now accepts a _-_m_a_x_i_m_u_m option, which
        includes change sets not yet completed in the local change set
        inventory when considering what to download.

        * There is a new _d_e_v_e_l_o_p___e_n_d___p_o_l_i_c_y___c_o_m_m_a_n_d field in the project
        configuration file. It can be used to add addition constrains to
        change sets before they can complete _a_e_d_e(1) successfully.

        * The _a_e_d_i_s_t _-_r_e_c_e_i_v_e command now annotates remote change sets
        (typically, change sets downloaded via the _a_e_d_i_s_t _-_r_e_p_l_a_y command)
        with their origin URL.

        * A bug has been fixed in the _a_e_b_u_f_f_y command where it would display
        incorrectly when the brief_description of a change contained double
        quotes.

        * It is now possible to attach a comment to all commands which involve
        a change state transition, e.g. _a_e_n_c, _a_e_d_e, etc.  This is done using
        the --rreeaassoonn command line option, just as you are able to do for review
        fail, etc.

        * A bug has been fixed in aenc, where it did not correctly copy user
        defined attributes.

        * There is a new _a_e_l_c_f(1) command to efficiently generate lists of
        change source files for use by your build tool.

        * There is a new _a_e_l_p_f(1) command to efficiently generate lists of
        project source files for use by your build tool.

        * There is a new cache of state information attached to each delta,
        the project file state at the time of the delta. This has the
        potential to accelerate aecp -delta, and all other
        project_file_roll_forward-based operations.  Large projects may want
        to turn this off, because each delta will produce another large
        project file state cache.

        * There is support for generating RSS feeds from Aegis.  See the Aegis
        project pages on the Aegis web interface for an example.  See
        _a_e_p_c_o_n_f(5) and _a_e_g_e_t(1) for more information.

        * The ${change delta_uuid} substitution now allows access to the
        delta_uuid in the _b_e_i_n_g _i_n_t_e_g_r_a_t_e_d state.

        * The "wrong file" error message from aedist has been improved, to say
        what was expected.

        * There is a new optional _$_f_i_l_e_n_a_m_e substitution for the _h_i_s_t_o_r_y___p_u_t___-
        _c_o_m_m_a_n_d, so that you can attach the current name of the check-in to
        the history file meta-data.  There is a new optional _$_u_u_i_d
        substitution for history_put_command, so you can attach that as mete-
        data, too.

        * There is a new history tool bundled with Aegis.  See _a_e_s_v_t(1) for
        more information.

        * There is a new _d_e_f_a_u_l_t___r_e_g_r_e_s_s_i_o_n___t_e_s_t___e_x_e_m_p_t project attribute.

        * The _a_e_d_i_s_t _-_r_e_c_e_i_v_e delta selection mechanism has been improved:
        previously the edit-origin-UUID attribute was considered in favour of
        the original-UUID attribute, with this change it is used the change
        set, bounded to the edit-origin-UUID or to original-UUID, more
        recently integrated.  This should reduce the frequency of logical
        conflicts.

        * There is a new _a_e_r_e_v_m_l(1) command, which can be used to send change
        sets in the RevML format.  See _a_e_r_e_v_m_l(1) for more information.  The
        _a_e_g_e_t(1) web interface is also able to serve change sets in this
        format.

        * A problem has been fixed which caused Aegis to fail on the hppa port
        of Debian.

        * The _a_e_t_a_r _-_r_e_c_e_i_v_e program now uses the archive name as the brief
        description.

        * A bug was fixed in _a_e_d_i_s_t _-_s_e_n_d which caused segfaults when
        processing some files.

        * A bug was fixed which caused _a_e_d_i_s_t _-_s_e_n_d to produce an archive that
        can not be _a_e_d_i_s_t _-_r_e_c_e_i_v_e because of an operation impossible to
        replicate in a change set.

        * There is an implementation of Robert Collins' subunit testing
        framework available.  See _a_e_s_u_b_u_n_i_t(1) for more information.

        * A bug was fixed in _a_e_d_i_s_t that caused an error when receiving a
        branch's archive generated with the _a_e_d_i_s_t _-_s_e_n_d _-_e_n_t_i_r_e_-_s_o_u_r_c_e
        option.

        * A bug has been fixed in _a_e_d_i_s_t _-_r_e_c_e_i_v_e that caused a segfault in
        the rename handling code.

        * The _a_e_d_i_s_t _-_m_i_s_s_i_n_g listing (and the _a_e_d_i_s_t _-_r_e_p_l_a_y behaviour) now
        check for branch UUIDs as well, just in case someone fetched a branch
        as a change set and applied it.  However, _a_e_g_e_t does not report these
        UUIDs, because that would be too confusing.

        * It is now possible to specify any sufficiently unique leading prefix
        of a UUID rather than the full 36 characters.

        * There is a new _$_{_H_i_s_t_o_r_y___P_a_t_h_} substitution available.  It gives you
        the path name of the history file corresponding to the given
        filenames.

        * A bug in _a_e_d_i_s_t _-_r_e_c_e_i_v_e which caused incorrect delta selection has
        been fixed.

        * There is a new _a_e_d_i_s_t _-_p_e_n_d_i_n_g option which can print the list of
        local change sets missing from a remote repository.

        * The _a_e_d_i_s_t _-_r_e_c_e_i_v_e command is now able to use the edit-origin-UUID
        attribute to copy modified files from the right origin.

        * A bug has been fixed in _a_e_d_i_s_t _-_s_e_n_d where some types of incomplete
        changes would fail an assert.

        * There is a new _a_e_x_v_e_r(1) command which can be used to view
        historical versions of files in an Aegis repository.  See _a_e_x_v_e_r(1)
        for more information.

        * A bug as been fixed which caused _a_e_m_v(1) to incorrectly rename a
        file to an existing directory

        * It is now possible to specify user-defined user attributes in the
        ~/.aegisrc file.

        * The _a_e_n_f(1) command now gives a warning if you specify the "config"
        file without the "-config" option. This is the old name for the
        project configuration file, the new name is "aegis.conf".

        * The _a_e_f_i_n_d(1) command now understands {+} to mean the resolved file
        name, and {-} as the unresolved file name.

        * There was a bug where Aegis would exit with a fatal error if one of
        the directories on the AEGIS_PATH was read-only. Such directories are
        now ignored.

        * The _a_e_t_a_r(1) command has been improved to process modified and
        created files in a batched way; this improves the speed.

        * Additional explanatory text has been added to the message printed
        when error message translation files can't be found.

        * The _a_e_n_f(1) command now understands the _-_k_e_e_p and _-_n_o_-_k_e_e_p options,
        to explicitly control the creation of new files in the development
        directory.

        * A bug has been fixed in _a_e_m_v(1) which failed to check the new name
        against the filename charset, _e_t_c.

   VVeerrssiioonn 44..2200 ((2288--JJaann--22000055))
        PPlleeaassee NNoottee:: Users are advised to check the history command settings
        in their project configuration files.  With the advent of file UUIDs,
        the history mechanism now decouples source file names from history
        file names.  In particular, the assumption that the history file
        basename is the same as the source file basename is no longer true.
        Correct settings may be found in the _l_i_b_/_c_o_n_f_i_g_._e_x_a_m_p_l_e_/ directory of
        the source distribution.

        * The defaulting rules for the change number (if none was specified on
        the command line) have been altered. the current directory now takes
        precedence over the "only one" rule.  This seems to meet user
        expectations better.

        * A bug has been fixed in the _a_e_c_v_s_s_e_r_v_e_r(1) command which caused to
        to fail when accessed by some clients.

        * A bug has been fixed which caused many of the programs to leave
        temporary files behind.

        * A bug has been fixed in the _a_e_d_i_s_t _-_s_e_n_d _-_e_n_t_i_r_e_-_s_o_u_r_c_e command
        where it would hang for some cases.  (Actually, it would dump core
        after using up all available swap space on an infinite recursion).

        * A bug has been fixed in the _a_e_d_i_s_t command (and other places) where
        the open of the project configuration file could fail, due to not
        properly reconstructing in historical circumstances.

        * A bug has been fixed in the integration build which was removing
        files it should not, for _d_u_r_i_n_g___b_u_i_l_d___o_n_l_y _= _t_r_u_e work area styles.

        * The _a_e_b command now complains _m_u_c_h less about "directory not empty"
        when using the link farm.

        * A bug has been fixed in the _a_e_t_a_r _-_s_e_n_d _-_e_n_t_i_r_e_-_s_o_u_r_c_e command where
        some files were missing when asking for a complete set of historical
        sources.

        * A bug has been fixed in the _a_e_d_i_s_t _-_s_e_n_d _-_e_n_t_i_r_e_-_s_o_u_r_c_e where some
        files were zero length when asking for a complete set of historical
        sources.

        * A bug in _a_e_d_i_s_t(1) has been fixed, it was forcing regression test on
        the receiving side even if the change set does not require it and
        _d_e_f_a_u_l_t___t_e_s_t___e_x_e_m_p_t_i_o_n was set to true.  It was annoying especially if
        the test suite take a long time to run completely.

        * Some bugs have been fixed in _a_e_d_i_f_f(1) which caused it to mis-parse
        the command line in some cases, and it was also barfing on the
        expected exit status 1 when an actual difference was found.

        * A bug has been fixed in the _a_e_c_p_u(1), _a_e_m_t_u(1), _a_e_m_v_u(1), _a_e_n_f_u(1),
        _a_e_n_t_u(1) and _a_e_r_m_u(1) commands. They were not repairing the symlinks
        (_e_t_c) required by the _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___s_t_y_l_e settings.

        * A bug has been fixed in the _C_h_a_n_g_e___F_i_l_e_s listing; it was not showing
        the locked-by information.

        * A bug has been fixed in the code which updates the development
        directory symlinks.  It was failing to make all the directories
        required.

        * A bug has been fixed in the _a_e_d_i_s_t _-_s_e_n_d _-_e_n_t_r_i_e_-_s_o_u_r_c_e command,
        where it would segfault in some cases.

        * A bug has been fixed in reading plain _d_i_f_f(1) format patches.  This
        was particularly obvious because _a_e_a_n_n_o_t_a_t_e(1) uses this form of diff
        by default.

        * A bug has been fixed in _a_e_g_e_t(1) where it was showing removed source
        files as available for download.

        * A bug has been fixed in _a_e_g_e_t(1) where it produced invalid output if
        the SCRIPT_NAME environment was not set.

        * A bug has been fixed in _a_e_g_e_t(1) where it would sometimes ignore
        modifiers.  This was particularly noticable in the download pages.

        * A bug has been fixed in the _a_e_i_m_p_o_r_t(1) command.  It was using the
        old work area style configuration file parameters, instead of the new
        _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___s_t_y_l_e settings.

        * A memory leak has been fixed in the symbol table code.

        * A bug has been fixed in the project_file_find_by_uuid function.  In
        some cases it would SEGFAULT, particularly once the memory leak in the
        symbol table code was fixed.

        * Several build problems have been fixed.

        * The _a_e_i_n_t_e_g_r_a_t_q(1) command has a new -loop _o_p_t_i_o_n_s_, _w_h_i_c_h _c_a_u_s_e_s _i_t
        _t_o _k_e_e_p _p_r_o_c_e_s_s_i_n_g _c_h_a_n_g_e_s _t_h_a_t _b_e_c_o_m_e _a_v_a_i_l_a_b_l_e _w_h_i_l_e _i_t _i_s _r_u_n_n_i_n_g_.

        * The _a_e_t(1) command has a new -sugest-limit option which runs as many
        regression tests as possible (from most relevant to least relevant)
        but stops after the given number of minutes.  This is a way for
        running the most relevant tests in a limited time.  For example, this
        option could be used if a project has so many integrations in a day
        that it can only afford 20 minutes of integration testing for each
        one.

        * The _a_e_d(1) man page has been updated to better describe the
        behaviour around the merge command.

        * The _a_e_t_a_r _-_s_e_n_d command now accepts an -include-build option that
        also add build files, registered with _a_e_g_i_s _-_n_e_w_-_f_i_l_e _-_b_u_i_l_d, to the
        ouput archive.  A -not-include-build option is also accepted.

        * The _a_e_t_a_r _-_r_e_c_e_i_v_e command now avoids copying build files from the
        baseline because this operation is forbidden and the error stops the
        processing.

        * There is a new _$_{_C_h_a_n_g_e___A_t_t_r_i_b_u_t_e_} substitution, which is replaced
        by the values of the change attributes named.

        * The history recapitulation code (project_file_roll_forward) now
        indexes by UUID rather than by file name (with backwards compatibility
        for UUID-less repositories).  The user visable result is that file
        history reports and listings now accurately track renames.

        * The _a_e_t _-_n_o_p_e_r_s_e_v_e_r_e option now also stops for _n_o _r_e_s_u_l_t as well as
        _f_a_i_l.

        * The aedist --receive command now understands file UUIDs.  This means
        that it will operate on the correct file even when one or the other
        repository has renamed the file.

        * The _a_e_d_i_s_t _-_r_e_c_e_i_v_e command has been enhanced to perform file merges
        if necessary.

        * There is a new _a_e_d_i_s_t _-_r_e_p_l_a_y option.  When used in with an _a_e_g_e_t(1)
        server, it can be used to synchronize two repositories.  The _a_e_d_i_s_t
        _-_m_i_s_s_i_n_g option may be used to show what would be downloaded.

        * The _a_e_f_a(1) command, with the -edit option, now shows you the
        content type, rather than adding it silently.

        * There is a new _a_e_d_i_f_f _-_-_c_o_m_m_a_n_d option, allowing you to specify the
        command you want to use to display the difference.  For example, you
        could use _t_k_d_i_f_f(1) or _m_g_d_i_f_f(1) to display the change graphically.

        * The _a_e_d_i_f_f(1) command now adds labels when it is producing a context
        or unified diff output.

        * There is a new optional _r_e_v_i_e_w___p_o_l_i_c_y___c_o_m_m_a_n_d field in the project
        confioguration file.  This allows for customised review policies for
        each project, including multiple reviewers and specific reviewers for
        portions of the sources.

        * There is a new ${Change_Reviewer_List} substitution, which is
        replaced by a space separated list of reviewers of the current change,
        since the last develop end. This is of particular use to the _r_e_v_i_e_w___-
        _p_o_l_i_c_y___c_o_m_m_a_n_d field of the project configuartion file.

        * There is a new ${Change_Developer_List} substitution, which is
        replaced by a space separated list of all the developers of the
        current change.

        * There is a new ${quoted_email_address} substitution, which replaces
        it arguments with the email addresses of the names users.  See
        _a_e_s_u_b(5) for more information.

        * The notification scripts have been updated to use the new ${quoted-
        email-address} substitution.

        * The remaining _a_e_g_i_s_._c_g_i(1) functions have been reproduced in
        _a_e_g_e_t(1).  The _a_e_g_i_s_._c_g_i(1) script is now deprecated.

        * When the UUID of a change is cleared it (because some operation on
        the change set invalidates it) is saved in a change attribute named
        _o_r_i_g_i_n_a_l_-_U_U_I_D.

        * The _a_e_d_i_s_t _-_r_e_c_e_i_v_e command is now able to use the original-UUID
        attribute of the incoming change set to select the delta to merge
        with.

        * The "path unrelated" error message has been updated to make it more
        informative.

        * All attribute names (project, change and file) are now case-
        insensitive.

        * The _a_e_d_i_s_t _-_r_e_c_e_i_v_e command has been enhanced to allow you to select
        the branch of the delta to merge with.

        * Several classes within the source have been refactored.

   VVeerrssiioonn 44..1199 ((3300--SSeepp--22000044))
        PPlleeaassee NNoottee:: Users are advised to check the history command settings
        in their project configuration files.  With the advent of file UUIDs,
        the history mechanism now decouples source file names from history
        file names.  In particular, the assumption that the history file
        basename is the same as the source file basename is no longer true.
        Correct settings may be found in the _l_i_b_/_c_o_n_f_i_g_._e_x_a_m_p_l_e_/ directory of
        the source distribution.

        * There is a new _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___s_t_y_l_e field of the project
        configuration file.  This allows CVS-style and Arch-style work areas,
        in addition to the BCS-style and viewpath work areas already
        supported.  These new work area styles permit many existing projects
        to use Aegis with no change to their build systems.  The libsndfile
        and OpenLDAP projects, for example, have been imported and built
        without modification.  See _a_e_p_c_o_n_f(5) and 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 chapter of the User Guide for more information.

        * There is a new _a_e_d_i_f_f(1) command, which may be used to obtain a
        _d_i_f_f(1) listing of a file for different deltas.

        * There is a new _a_e_p_r_o_m_p_t_c_m_d(1) command, used with bash's
        PROMPT_COMMAND environment variable.  It can be used to obtain a
        colored prompt, simulating the process described in Kent Beck's book
        _T_e_s_t _D_r_i_v_e_n _D_e_v_e_l_o_p_m_e_n_t.

        * There is a new _s_i_g_n_e_d___o_f_f___b_y field of the project configuration
        file.  Set it to true if you want "Signed-off-by" lines appended to
        change set descriptions as the changes pass through the Aegis process.
        The _a_e_d_e(1) and _a_e_r_p_a_s_s(1) commands now understand two new --ssiiggnneedd--
        ooffff--bbyy and --nnoo--ssiiggnneedd--ooffff--bbyy options, to override the project setting.
        The _a_e_d_i_s_t _-_s_e_n_d and _a_e_p_a_t_c_h _-_s_e_n_d commands also understand the new
        --ssiiggnneedd--ooffff--bbyy option, to add the "Signed-off-by" line to the outgoing
        change set description.  Conforming to: http://www.ussg.iu.edu/-
        hypermail/linux/kernel/0405.2/1301.html and http://www.osdl.org/-
        newsroom/press_releases/2004/2004_05_24_dco.html

        * The _a_e_t(1) command has been enhanced to allow integrators to run
        specific tests.

        * The _a_e_s_u_b(1) command can now read the text to be substituted from a
        file or standard input.

        * It is now possible to use the project-specific attributes to specify
        environment variables to be set for commands executed by Aegis.  This
        can be used to set a predictable PATH, for example.

        * It is now possible to customize the _a_e_g_e_t(1) web interface using
        project specific attributes.

        * The _a_e_l(1) command and the _a_e_g_e_t(1) web interface now have file
        inventory pages, for the project file inventory and the change file
        inventory.

        * There is a new "change set inventory" listing available via the
        _a_e_l(1) command and the _a_e_g_e_t(1) web interface, which lists changes and
        their corresponding UUIDs, and links to an aedist download for each
        change. The idea is that the _a_e_g_e_t(1) pages may be used to automate
        downloading change set your repository does not yet have.

        * There are two new history commands in the project configuration
        file, the history_transaction_begin and history_transaction_end
        fields.  It is not an error if these fields are absent.  If you need a
        transaction key, use the $version substitution.

        * The _a_e_d_i_s_t(1) command now runs all tests required for the change
        set, and honors test exemptions.

        * The _a_e_d_i_s_t(1) command now sleeps for a second to ensure that the
        last-time-modified of derived files will be strictly later than source
        files, and that the _a_e_b(1) timestamp will also be strictly later then
        the last-time-modified for the source files.

        * The tkdiff(1) man page has been updated to say how to use mgdiff(1)
        instead of tkdiff(1).

        * All commands which accept the --cchhaannggee option may now be given a
        change set UUID.  You can discover a change's UUID using the _a_e_l _c_d
        (list change details) or _a_e_l _i_n_v_e_n_t_o_r_y listings.

        * The _a_e_d(1) command now restores source file from backups (,B) when a
        merge fails.  Previously this was not the case and subsquent aed
        invocations failed because the source file was missing.

        * The _a_e_t_a_r _-_s_e_n_d command now has an --aadddd--ppaatthh--pprreeffiixx option, so that
        you can add a path prefix to all of the files in a tarball.  The
        _a_e_g_e_t(1) CGI interface now adds a path prefix to generated tarballs by
        default.

        * Whenever you edit file attributes, there is a Content-Type attribute
        added automagically if none was there already.  The idea is that this
        could be used by scripts to differentiate file types.

        * The _a_e_p_a_t_c_h(1) command now uses _d_i_f_f _-_u by default.

        * A number of build problems on different systems have been fixed.

        * A number of minor problems with tests on different systems have been
        fixed.

        * A bug has been fixed in the aepatch command; it was not parsing
        simple diff patches correctly.

        * The example history commands have been updated to work better with
        the new UUID code.

        * A bug has been fixed in aecp -delta, where it would fetch the wrong
        version of a file in some cases.

        * A bug has been fixed in the handling of the executable bit.

        * A bug has been fixed in _a_e_d_e(1), where is did not permit branches to
        end when they had a removed file (without a UUID) which has been
        subsequently recreated (with a UUID).

        * A bug has been fixed in the _a_e_g_e_t(1) command for file contents.  It
        was giving a "multiple permissions set (bug)" error message.

        * A bug in the _a_e_d_i_s_t _-_r_e_c_e_i_v_e command, where it was not accurately
        manipulating the incoming change set UUID.

        * A bug has been fixed in _a_e_d(1) which caused it to SEGFAULT.

        * A bug has been fixed in the _a_e_d_e(1) command, where it failed to copy
        the UUID when it promoted a file from "create" to "modify"
        automatically.

        * A bug has been fixed in the $date substitution, it was not advancing
        properly when used in progress messages.

        * A bug has been fixed in the command line processing of the _a_e_f_a(1)
        command.

        * A bug has been fixed in the _a_e_g_i_s _-_r_e_v_i_e_w_-_b_e_g_i_n command; it was not
        operating correctly when the change was in _a_w_a_i_t_i_n_g___r_e_v_i_e_w but the
        project was in _g_o_t_o___b_e_i_n_g___r_e_v_i_e_w_e_d.

        * A bug has been fixed in the $basename substitution; it now functions
        exactly like _b_a_s_e_n_a_m_e(1) command.

        * A bug has been fixed in the _a_e_t _-_b_l command; it erroneously stated
        that the $Search_Path_Executable substitution was mandatory, when it
        actually optional.

   VVeerrssiioonn 44..1188 ((1100--JJuunn--22000044))
        * A number of build problems have been fixed, particularly concerning
        GCC 3.3 and later.

        * The _a_e_m_v(1) command has been enhanced to accept more than two file
        names.  You are now able to move serveral files in the one command.

        * The _a_e_d_i_s_t _-_r_e_c_e_i_v_e command has been enhanced to process move
        operations in a batched way.  This improved performance when receiving
        a change that renames many files.

        * The ./configure script has been changed to take note of the
        --sysconfdir option, used to specify the location of the /etc
        directory.

        * A bug has been fixed in the _a_e_p_a_t_c_h(1) command.  It would SEGFAULT
        when a non-source file was patched.

        * A bug has been fixed in the _a_e_m_e_a_s_u_r_e(1) command.  It would SEGFAULT
        when no files were named on the command line.

        * The Russian error message catalogue has been updated.

        * A subtle bug in the change file out-of-date tests have been fixed.
        It did not adequately address the transition case for projects
        containing files with and without UUIDs.

        * The ./configure --sysconfdir option is now honored.  It is _v_e_r_y
        important to set it to _/_e_t_c when you configure Aegis.

   VVeerrssiioonn 44..1177 ((33--JJuunn--22000044))
        * Each new change set is now assigned a Universally Unique Identifier
        (UUID) to allow it to be tracked across geographically distributed
        development.  The _a_e_d_i_s_t(1) and _a_e_p_a_t_c_h(1) commands now send the
        change set UUIDs, and preserve them on receipt.

        * Each file now has a Universally Unique Identifier (UUID) which
        allows tracking files across renames, even on geographically separate
        sites.  (The _a_e_d_i_s_t(1) and _a_e_p_a_t_c_h(1) commands send the file UUIDs,
        the next release will take advantage of them on receipt.)

        * The history filename used to remember file history is now based in
        the file UUID, if the file has a UUID.  This simplifies continuity of
        history across renames (this fucntion always been present in Aegis,
        but harder to access).

        * As a consequence of the UUID being used to generate history file
        names, there is no longer the restriction that new files may not be
        named after the directory portion of a deleted file (or vice versa).

        * There is a new _a_e_c_v_s_s_e_r_v_e_r(1) command, which presents Aegis projects
        and change sets as CVS modules.  All of the core CVS functions are
        supported.  This code needs to be exersized and tested by users.

        * It is now possible to specify arbitrary attribute names and value
        for each source file.  The _a_e_f_a(1) command may be used to edit file
        attributes.  The _a_e_d_i_s_t(1) and _a_e_p_a_t_c_h(1) send these attributes; a
        future release will take advantage of the information on receipt.

        * It is now possible to attach arbitrary attribute names and values to
        change sets.  For example, you can use this to remember the bugzilla
        tracking number for a change.

        * The _a_e_p_a_t_c_h(1) command now includes change set meta-data as a
        compressed BASE64 encoded block at the top of the patch, after the
        human-readable text but before the files.  This means that _a_e_p_a_t_c_h(1)
        can be as effective as _a_e_d_i_s_t(1) is transmitting chaneg sets.  Patches
        without meta-data still work as before.

        * There is a new report script which writes change logs in Debian
        format.

        * The _a_e_g_e_t(1) web interface has been improved.  The _a_e_p_a_t_c_h(1)
        download now accepts compat=_N modifier, and there is a new Project
        Staff page.

        * There is a new _a_e_-_c_v_s_-_c_i(1) support script which may be used as an
        _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 to commit change sets to CVS in
        parallel.

        * There is more documentation in the User Guide about using GNU Diff,
        particularly using diff -U to provide whole-file listings with "change
        bars" on the left hand side.

        * The files view of the _a_e_g_e_t(1) web interface now accepts options to
        control the page contents.  The simplest view allows recursive fetch
        of project sources using wget or similar, with no extraneous links to
        confuse the results.  Previous behavior is preserved by the aeget-
        generated links.

        * You now receive a warning when you are seeing the short version of
        the error messages.  These are terse and often quite cryptic. the long
        form of the error messages is to be preferred.

        * The behaviour of the _a_e_d_e_u(1) command has changed slightly.  When
        changes are in the _b_e_i_n_g _r_e_v_i_e_w_e_d state, and Aegis has been configured
        to use the _a_w_a_i_t_i_n_g _r_e_v_i_e_w state, the _a_e_d_e_u(1) command will now report
        an error.  This is so that reviewers don't waste their time reviewing
        changes which have already been returned to the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
        Think of the change as "belonging" to the reviewer while in the _b_e_i_n_g
        _r_e_v_i_e_w_e_d state.

        * The _a_e_d_i_s_t _-_s_e_n_d command has a new _-_c_o_m_p_a_t_i_b_i_l_i_t_y option, use to
        indicate the version of the rreecceeiivviinngg aedist program.  This, in turn,
        selects the features which may be added to or omitted form the
        generated .ae file.

        * There is a new config file usage, and a corresponding _a_e_n_f
        _-_c_o_n_f_i_g_u_r_e command line option.  It is now possible to move project
        configuration files.  It is now possible to remove project
        configuration files, provided there is at least one left.  The
        _a_e_i_m_p_o_r_t(1) command now avoids files which have the same name as the
        default project configuration file ("aegis.conf" or "config") and will
        use something else.

        * The _a_e_i_p_a_s_s(1) command now adds a symlink from the delta directory
        to the baseline once it has been integrated.  This helps lots of
        (idiotic) compilers which insist on burying absolute paths into
        executables.

        * It is now possible to assign to some project configuration file
        array fields more than once.  This can be useful where the
        configuration file is split into several pieces on several branches.

        * The source language has been changed from C to C++.  Future releases
        will take advantage of this.

        * Several bugs have been fixed in the _a_e_g_e_t(1) web interface where it
        would display "-42" instead of "0" for changes and branches numbered
        zero.

        * A bug has been fixed in the _a_e_d(1) command when merging files which
        have been renamed.  It now recognises they need merging.

        * A bug has been fixed in the _a_e_n_f(1) command.  It now correctly
        ignores difference files when given a directory name.

        * A bug has been fixed in _a_e_d_i_s_t(1) where one of the _a_e_g_i_s _-_n_e_w_-_f_i_l_e
        commands was missing a _-_n_o_-_t_e_m_p_l_a_t_e argument.  Under some
        circumstances, this resulted in change sets which could not be _a_e_d_i_s_t
        _-_r_e_c_e_i_v_ed.

        * A bug has been fixed in the way invalid sequences of multi-byte
        characters are handled by the internationalization code.  This
        potentially affected all reports, listings and error messages.  The
        symptom was that aeannotate listings could sometimes have a blank
        source code column.

        * A bug has been fixed in the _a_e_p_a_t_c_h(1) command.  It was creating
        empty patches for some changes in completed project branches.  This
        also affected _a_e_d_i_s_t _-_s_e_n_d and _a_e_c_p _-_d_e_l_t_a and _a_e_c_p _-_r_e_s_c_i_n_d in some
        cases.  It was caused by a subtle flaw in the non-detailed case for
        the _p_r_o_j_e_c_t___f_i_l_e___r_o_l_l___f_o_r_w_a_r_d function.

        * A bug has been fixed in the handling of the MANPATH enviromnet
        variable by the _p_r_o_f_i_l_e and _c_s_h_r_c scripts.

        * A bug has been fixed in the _a_e_d_i_s_t _-_r_e_c_e_i_v_e and _a_e_p_a_t_c_h _-_r_e_c_e_i_v_e
        commands has been fixed.  There were cases where these commands could
        access off the end of an array and SEGFAULT.

        * A bug has been fixed in the _a_e_d_e(1) command when it received pre-
        config-usage change sets.  It used to try to remove the last project
        configuration file, which is a fatal error, and made it impossible to
        receive the change set.

        * A bug has been fixed which caused the _a_e_t_a_r(1) command to hang
        (actually, any thing which consulted LDAP or NIS) because the reserved
        symbol "send" was being overloaded.  The reserved symbol "clone" was
        also being overloaded.  Both have been fixed.

        * A bug has been fixed which caused the _a_e_d_i_s_t(1) command to reprt the
        wrong error when the input file did not exist.

        * A bug has been fixed in the _a_e_n_b_r_u(1) command which made project
        aliases disappear.

        * A bug has been fixed in the _a_e_d_e command.  It would fail with new
        build files already in the baseline.

   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_e(1) 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 configuration 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_s(1) 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 options, for manipulating the filenames when
        unpacking an creating a change set.  The _a_e_p_a_t_c_h(1) documentation has
        been significantly improved.

        * 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 configuration
        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 configuration 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 configuration 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
        documented.



Build(Aegis)                                                      Build(Aegis)



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, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 defense.

SSPPAACCEE RREEQQUUIIRREEMMEENNTTSS
        You will need up to 250MB to unpack and build the _a_e_g_i_s package.
        (This is the worst case seen so far, most systems have binaries
        smaller than this, 200MB 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.

        To change the AEGIS_UID and AEGIS_GID values (these control the
        ownership of Aegis' system files) you need to set environment
        variables of these names bbeeffoorree running the _._/_c_o_n_f_i_g_u_r_e script.  You
        almost never need to do this, so if you have no idea what this is
        about, don't try to change them.

   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 compression libraries and functions.
        If your system does not have them, you must download and install the
        GGNNUU zzlliibb compression library (see http://www.gzip.org/zlib/ for
        download) and the bbzziipp22 compression library (see http://www.bzip.org/
        for download) before you run the _c_o_n_f_i_g_u_r_e script.  These libraries
        are essential, Aegis will not build without them.  (NNoottee:: zlib is not
        the same thing as zlibcc which does something completely different.)

        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.)

        The GNOME libxml2 library (http://xmlsoft.org/) is used to parse XML,
        you will need version 1.8.17 or later.  You do not have to install the
        rest of GNOME as this library is able to be used by itself.  This
        package is nnoott optional, you need it to successfully build Aegis.

        The libcurl library (http://curl.haxx.se/) is used to fetch remote
        files.  This library is optional, but some functionality, particularly
        _a_e_d_i_s_t _-_r_e_p_l_a_y_, _w_i_l_l _n_o_t _w_o_r_k _w_i_t_h_o_u_t _i_t_.  _I_f _y_o_u _a_r_e _u_s_i_n_g _a _p_a_c_k_a_g_e
        _b_a_s_e_d _i_n_s_t_a_l_l_, _y_o_u _w_i_l_l _n_e_e_d _t_h_e _l_i_b_c_u_r_l_-_d_e_v _o_r _l_i_b_c_u_r_l_-_d_e_v_e_l _p_a_c_k_a_g_e
        _a_s _w_e_l_l_.

   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 ----ssyyssccoonnffddiirr==//eettcc
                _._._._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 ----ssyyssccoonnffddiirr==//eettcc
                _._._._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,
                % ..//ccoonnffiigguurree  ----ssyyssccoonnffddiirr==//eettcc ----qquuiieett
                %

        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.

        For mips IRIX and IRIX64 using the MipsPro compiler up to at least
        version 7.3 you must specify the flag to allow -I for loop
        initializations. You may give either of:
                CXXFLAGS='LANG:ansi-for-init-scope=ON'
                CXXFLAGS='LANG:std'
        Also required is _-_l_C_i_o but configure will test for that. Even using
        that library there remains a link failure due to:
                Unresolved text symbol
                "std::_List_base<undo_item*,std::allocator<undo_item*> >::clear(void)"
        on several of the binaries. A work around for this problem is not
        known at this time.

        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.

        --sysconfdir=_P_A_T_H
                Location of system configuration files.  You should almost
                always use the _/_e_t_c directory.

        _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 ----ssyyssccoonnffddiirr==//eettcc
                _._._._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 ----ssyyssccoonnffddiirr==//eettcc
                _._._._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.

   GGCCCC VVeerrssiioonn 33..**
        On some operating systems, notabley MacOsX Jaguar and Panther, g++
        versions 3.* will produce link-time errors complaining of missing
        typeinfo symbols.  The only known fix for this problem is to use GCC
        version 2.95, 2.96 or 4.*.  This means MacOsX Tiger does not have the
        problem.

   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,
        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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 minimizes 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.

        GNOME libxml2
                The GNOME libxml2 library (http://xmlsoft.org/) is used to
                parse XML.  Version 1.8.17 or later.  You do not have to
                install the rest of GNOME as this library is able to be used
                by itself.  This package is nnoott optional, you need it to
                successfully build Aegis.

        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.

        GNU patch
                For best results with the _a_e_p_a_t_c_h(1) and _a_e_d_i_s_t_(_1_) _w_h_e_n
                _r_e_c_e_i_v_i_n_g _c_h_a_n_g_e _s_e_t_s_, _y_o_u _n_e_e_d _t_h_e _G_N_U _p_a_t_c_h _u_t_i_l_i_t_y_.

        _R_C_S     This is a source control package, and is available from any of
                the GNU archives.  (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.)  This package isn't essential as Aegis
                comes with its own _a_e_s_v_t(1) history tool - although you are
                free to use any history tool you like.

        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_d, _f_i_n_d, _m_a_k_e,
        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
        In order to get the long form of the error messages on Solaris, it is
        necessary to install GNU Gettext before running ./configure, and once
        ./configure has been run you need to edit the Makefile to statically
        link the executables.

        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_e_t script from
        _/_u_s_r_/_l_o_c_a_l_/_b_i_n_/_a_e_g_e_t into your web server's _c_g_i_-_b_i_n directory.  There
        is a _a_e_g_e_t_._i_n_s_t_a_l 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_e_t_._i_n_s_t_a_l _-_s option.)

        You may need to wrap _a_e_g_e_t with a script which sets 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 may also need to set the _P_A_T_H
        environment variable, if you don't have the Aegis install path in the
        default path.

        (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_._2_4_._2_._D_0_0_1
                _._._.
                %
        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 MillerE-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_._2_4_._2_._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.

        --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.

        --CChhaannggee _U_U_I_D
                Each completed change is assigned a globallay unique
                identifier (UUID).  You can specify a change by its
                36-character UUID, or any unambiguous leading predix of the
                UUID (it must be at least 4 characters, and not look like a
                number).

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.

        --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.

        --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.

        --PPaaggee--HHeeaaddeerr
                This option requests that page headings be present in listings
                and reports.  This is the default.

        --NNoo--PPaaggee--HHeeaaddeerr
                This option requests that page headings be omitted from
                listings and reports.

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.

        AEGIS_DATADIR
                Overrides the datadir as specified at _c_o_n_f_i_g_u_r_e invocation.
                Useful mainly for testing.

        When commands are executed by Aegis, it ensures that the
        AEGIS_PROJECT, AEGIS_CHANGE, AEGIS_ARCH, LINES and COLS environment
        variables are set appropriately.  The project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field is also consulted, looking for value's whose
        name starts with "setenv:" and sets the corresponding environment
        variable.  All of the substitutions described by _a_e_s_u_b(5) are
        available.  For example: specifying a PATH and a SEARCH_PATH to be
        used for all commands may be set as follows:
                project_specific =
                [
                  {
                    name = "setenv:PATH";
                    value = "/usr/bin:/bin";
                  },
                  {
                    name = "setenv:SEARCH_PATH";
                    value = "${search_path}";
                  },
                ];
        As many environment variables as desired may be specified in this way.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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-cvs-ci(1)                                                      ae-cvs-ci(1)



NNAAMMEE
        ae-cvs-ci - checkin a change set to CVS

SSYYNNOOPPSSIISS
        aaee--ccvvss--ccii _p_r_o_j_e_c_t_-_n_a_m_e _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_v_s_-_c_i command is used to check an Aegis change set into CVS.

        This script is a short wrapper around the _a_e_-_r_e_p_o_-_c_i(1) command.

        This is usually used in 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 project
        attribute, as in
                integrate_pass_notify_command =
                    "$bin/ae-cvs-ci $project $change";

EEXXIITT SSTTAATTUUSS
        The _a_e_-_c_v_s_-_c_i command will exit with a status of 1 on any error.  The
        _a_e_-_c_v_s_-_c_i 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        ae-cvs-ci version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        The ae-cvs-ci program comes with ABSOLUTELY NO WARRANTY; for details
        use the '_a_e_-_c_v_s_-_c_i _-_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_v_s_-_c_i _-_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-repo-ci(1)                                                    ae-repo-ci(1)



NNAAMMEE
        ae-repo-ci - redundant repository checkin

SSYYNNOOPPSSIISS
        aaee--rreeppoo--ccii --PPrroojjeecctt _n_a_m_e --CChhaannggee _n_u_m_b_e_r --RREEPPOOssiittoorryy _t_y_p_e [ _o_p_t_i_o_n...
        ]
        aaee--rreeppoo--ccii --HHeellpp
        aaee--rreeppoo--ccii --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_-_c_i command is used to redundantly commit an Aegis change
        set into a parallel repository.

   IInntteeggrraattee PPaassss NNoottiiffyy CCoommmmaanndd
        The intended use for the ae-repo-ci command is as an _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 (see _a_e_p_a(1) for more information) to do a redundant
        checkin of a change set into a second parallel repository.

        For example, if you were using CVS, the project attribute would look
        something like this:
                integrate_pass_notify_command =
                    "$bin/ae-repo-ci -repo cvs "
                    " -p $project -c $change";
        You may also need to specify the module, if the module name is not the
        same as the project name.

   CCoommmmiitt MMeessssaaggeess
        You are able to control the commit message, by using the ae-repo-
        ci:commit-message attribute in the _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field of the
        project configuration file.

        The default is as if the following entry were present:
                project_specific = [
                    {
                        name = "ae-repo-ci:commit-message";
                        value = "$version - ${change brief_description}";
                    } ];
        All of the _a_e_s_u_b(5) substitutions are available.

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_-_r_e_p_o_-_c_i program.

        --LLiisstt   This option may be used to obtain a list of supported
                repository types.

        --MMOODDuullee _n_a_m_e
                This option may be used to specify which module is to be
                checked out.  If not set, it defaults to the trunk project
                name (_i_._e_. the project name without any branch or version
                numbers).

        --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EPPOOssiittoorryy _t_y_p_e
                This option is used to specify the repository type for the
                checkin.  Known repository types are:

                cvs     Concurrent version System.  You will need to set the
                        CVSROOT environment variable appropriately, and the
                        --mmoodduullee option will be relative to it.

                svn
                        Subversion.  You must specify the complete URL with
                        the --mmoodduullee option.

                        The following field in the project_specific field of
                        the project configuration file (see _a_e_p_c_o_n_f(5) for
                        more information) are relevant:

                        svn:username
                                If present, the --username command line option
                                will be added to _s_v_n(1) command lines, with
                                this value.

                        svn:password 8n
                                If present, the --username command line option
                                will be added to _s_v_n(1) command lines, with
                                this value.

                        These options can help when you can't convince
                        Subversion to use the correct authorization any other
                        way.

                This option must be specified, there is no default.  The --lliisstt
                option may be used to obtain an up-to-date list of supported
                repository types.

        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_-_c_i 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_-_r_e_p_o_-_c_i command will exit with a status of 1 on any error.  The
        _a_e_-_r_e_p_o_-_c_i 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

SSEEEE AALLSSOO
        _a_e_c_a(1) how to change project attributes

CCOOPPYYRRIIGGHHTT
        ae-repo-ci version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        The ae-repo-ci program comes with ABSOLUTELY NO WARRANTY; for details
        use the '_a_e_-_r_e_p_o_-_c_i _-_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_-_c_i _-_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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        ae-sccs-put version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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_diff2htm(1)                                                  ae_diff2htm(1)



NNAAMMEE
        ae_diff2htm - wraps the diff2html command

SSYYNNOOPPSSIISS
        aaee__ddiiffff22hhttmm

DDEESSCCRRIIPPTTIIOONN
DDEESSCCRRIIPPTTIIOONN
        The _a_e___d_i_f_f_2_h_t_m script wraps the diff2html command if available or
        otherwise falls back to a simple context diff.

CCOOPPYYRRIIGGHHTT
        aegis version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

   NNoo BBuuiilldd RReeqquuiirreedd
        It is possible to configure your project so that no build is required.
        To do this, set the following
                build_command = "exit 0";
        in the project configuration file.

   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 configuration 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.

   FFiillee AAccttiioonn AAddjjuussttmmeenntt
        When this command runs, it first checks the change files against the
        projects files.  If there are inconsistencies, the file actions will
        be adjusted as follows:

        create  If a file is being created, but another change set is
                integrated which also creates the file, the file action in the
                change set still being developed will be adjusted to "modify".

        modify  If a file is being modified, but another change set is
                integrated which removes the file, the file action in the
                change set still being developed will be adjusted to "create".

        remove  If a file is being removed, but another change set is
                integrated which removes the file, the file will be dropped
                from the change set still being developed.

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 Aegis.  (It
        becomes multi-level when Aegis' branching functionality is used.)  To
        allow these tools to be used, Aegis 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
        The _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___s_t_y_l_e field of the project configuration
        file controls the appearance of the development directory.  See
        _a_e_p_c_o_n_f(5) for more information.

        By using a setting such as
                development_directory_style =
                {
                    source_file_symlink = true;
                    during_build_only = true;
                };
        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.

        By using a setting such as
                development_directory_style =
                {
                    source_file_symlink = true;
                };
        (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 editing change sourec files 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) if you use any of the link sub-fields (both hard links and
        symbolic links).  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 configuration 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 _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y_____s_t_y_l_e_._s_o_u_r_c_e___f_i_l_e___s_y_m_l_i_n_k 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.

        It is possible to obtain behaviour similar to Tom Lord'a Arch by using
        a setting such as:
                development_directory_style =
                {
                    source_file_link = true;
                    source_file_symlink = true;
                };

        It is possible to obtain behaviour similar to CVS by using a setting
        such as:
                development_directory_style =
                {
                    source_file_copy = true;
                };
        There are many more possible configurations of the _d_e_v_e_l_o_p_m_e_n_t___-
        _d_i_r_e_c_t_o_r_y___s_t_y_l_e, usually with helpful build side-effects.  See
        _a_e_p_c_o_n_f(1) and the _D_e_p_e_n_e_d_e_n_c_y _M_a_i_n_t_e_n_a_n_c_e _T_o_o_l chapter of the User
        Guide for more information.

        The symbolic link command line options and preferences apply equally
        to hard links and file copies (the names have historical origins).

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 source-only _d_e_v_e_l_o_p_m_e_n_t___-
                _d_i_r_e_c_t_o_r_y___s_t_y_l_e.  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 only meaningful if _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___s_t_y_l_e
                is 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.

        --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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 that the symbolic links, or
                hard links, or file copies, in the work area be updated to
                reflect the current state of the baseline.  This is controlled
                by the _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___s_t_y_l_e field of the project
                configuration file.  Only files which are not involved in the
                change are updated.  See also the "symbolic_links_preference"
                field of _a_e_u_c_o_n_f(5).  This option is the default, if
                meaningful for your configuration.  The name is an historical
                accident, hard links and file copies are included.

        --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 that no update of baseline
                mirror files take place.  This options is useful when you
                _d_e_f_i_n_i_t_e_l_y _k_n_o_w the files' up-to-date-ness isn't important
                right now; incorrect use of this option may have unanticipated
                build side-effects.  See also the "symbolic_links_preference"
                field of _a_e_u_c_o_n_f(5).  This option is the default, if not
                meaningful for your configuration.  The name is an historical
                accident, hard links and file copies are included.

        --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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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/



aebisect(1)                                                        aebisect(1)



NNAAMMEE
        aebisect - search for a delta which changed project behaviour

SSYYNNOOPPSSIISS
        aaeebbiisseecctt [_o_p_t_i_o_n...] [-Branch _b_r_a_n_c_h_1] -DELta _d_e_l_t_a_1 [-Branch _b_r_a_n_c_h_2]
                 -DELta _d_e_l_t_a_2 -- _c_o_m_m_a_n_d [command_args]

DDEESSCCRRIIPPTTIIOONN
        The aaeebbiisseecctt command is used to determine when in a project history
        some property or behavior changed. It does this by means of a
        bisection search through the inventory of deltas. The user must
        specify starting and ending deltas, which may be in historical
        branches of the project.

        For each delta tested in the search, aaeebbiisseecctt sets up a development
        directory, builds the project, and then runs the specified _c_o_m_m_a_n_d in
        the development directory. By iteration, aaeebbiisseecctt finds two
        consecutive deltas where the return code of _c_o_m_m_a_n_d changed.

        Note: aaeebbiisseecctt can take considerable CPU effort, since it (normally)
        does a full build from scratch for each delta tested.

OOPPTTIIOONNSS
        The following options are understood:

        --HHeellpp
           Show usage information.

        --PPrroojjeecctt _p_r_o_j_e_c_t_-_n_a_m_e
           specify the project (otherwise done via the AAEEGGIISS__PPRROOJJEECCTT
           environment variable)

        --CChhaannggee _c_h_a_n_g_e_-_n_u_m_b_e_r
           specify the change to use for the processing (otherwise done via
           the AAEEGGIISS__CCHHAANNGGEE environment variable). 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; this ensures a correct environment for
           building and testing.

        --BBrraanncchh _b_r_a_n_c_h_-_e_x_t_e_n_s_i_o_n
           specify the branch for one of the deltas. Defaults to the baseline
           branch of the project. Use --bb -- (single dash) to specify the trunk.
           Branch specifiers must precede the corresponding delta specifiers.

        --LLooggffiillee _l_o_g_f_i_l_e
           specify where normal output goes; defaults to _$_H_O_M_E_/_a_e_b_i_s_e_c_t_._l_o_g.

        --VVeerrbboossee
           produce more diagnostic information (both logfile and standard
           output).

        --KKeeeepp
           do not delete working files, which are in a temporary directory.
           Warning: these may be voluminous!

        --DDIIRReeccttoorryy _p_a_t_h
           specify a development directory to use for building and testing.

        --MMiinniimmuumm
           use the --mmiinniimmuumm option for the builds.

        --NNoobbuuiilldd
           skip the build steps. This option is useful if the test command
           only involves source files. (Consider using aaeeaannnnoottaattee(1) instead.)

        --ZZeerroo__oonnllyy
           treat all test result codes other than 0 as equivalent.

DDIIAAGGNNOOSSTTIICCSS
        Normally, exit status is 0 if consecutive deltas are found to bracket
        a change in the test command result. Exit status is 1 if errors are
        detected in arguments. Exit status is 2 if a subordinate command fails
        (possibly leaving the development directory in an uncertain state) or
        if the test behavior is found to be inconsistent with bisection
        search.

SSIIGGNNAALLSS
        aaeebbiisseecctt will stop on INT, QUIT, and TERM signals, probably leaving
        the development directory in an uncertain state.

EEXXAAMMPPLLEE
        Suppose a bug was introduced by development on project _f_o_o_-_4_._5,
        sometime between version 1.2.D003 and 4.5.D006, and you have written
        an Aegis test script for the bug (see aaeenntt(1)), called
        _/_w_r_k_/_t_e_s_t_/_0_0_/_t_0_0_0_7_a_._s_h, taking an argument for system architecture.
        Then the following should isolate the change which introduced the bug:

            % aenc -p foo-4.5 -c 20 -file caf
            % aebisect -p foo-4.5 -c 20 -b 1.2 -del 3 -b 4.5 -del 6 \
                -- sh /wrk/test/00/t0007a.sh linux-i486

        Note that the full path for the test script is specified, since the
        command is executed in a development directory.

BBUUGGSS
        aaeebbiisseecctt depends on aaeeccpp --ddeellttaa for historical reconstructions. This
        can be problematic.

        It is possible for a build to fail: derived files from the baseline
        may poison the build, or there may have been changes in the system
        infrastructure since the old deltas were integrated. In such cases,
        aaeebbiisseecctt exits. The user may then snoop around the development
        directory, fix something, rebuild, perform the test, and use the
        logfile to see how to proceed. Remember to aaeeddbbuu when done.

        In some situations the problem may be cured by an additional step
        between aaeeddbb and aaeebb. A command to be interposed may be defined via
        the environment variable AAEEBBIISSEECCTT__DDBB__HHOOOOKK; this command is executed
        after aaeeccpp, so it may be used to patch source files -- see the script
        source for details.

CCOOPPYYRRIIGGHHTT
        Copyright (C) 2007 Ralph Smith

        Partially derived from aeintegratq, Copyright (C) 1998-2005
        Endocardial Solutions, Inc.

        This is free software; see the source for copying conditions. There is
        NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
        PURPOSE.



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.

        Double clicking on a change will invoke the _t_k_a_e_r(1) command for that
        change.  This does not work for changes in the _a_w_a_i_t_i_n_g _d_e_v_e_l_o_p_m_e_n_t
        and _c_o_m_p_l_e_t_e_d states, but works for all other states.

        Use the "q" key to quit.

        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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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ARRcchhiitteeccttuurree
        aaeeggiiss --CChhaannggee__AAttttrriibbuutteess _n_a_m_e==_v_a_l_u_e
        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
        aaeeggiiss --CChhaannggee__AAttttrriibbuutteess --UUUUIIDD _s_t_r_i_n_g [ _o_p_t_i_o_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___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.

        The _n_a_m_e==_v_a_l_u_e form of the command may be used when you wish to add or
        modify change set attributes.  If an attribute is already present, it
        will be modified; if there is more than one attribute with the same
        name, only the first will be modified.  The _n_a_m_e++==_v_a_l_u_e form will
        always append the pair.

   EExxaammppllee
        When you edit the file, you will see something like this:
                brief_description = "login(1) is too fussy";
                description = "When users type their password "
                    "incorrectly, after three times the login(1) "
                    "program should assume they have forgotten "
                    "their password and automatically reset it "
                    "for them.";
                cause = external_enhancement;
                attribute =
                [
                    {
                        name = "bugzilla";
                        value = "666";
                    },
                    {
                        name = "customer-priority";
                        value = "high";
                    },
                    {
                        name = "marketing-priority";
                        value = "urgent-panic-headless-chicken";
                    },
                    {
                        name = "engineering-priority";
                        value = "after-heat-death-of-universe";
                    }
                ];
        Note the semicolons, you need to get them right.  Edit the fields you
        want to change.  When you quit the editor, they will be updated.

   KKnnoowwnn AAttttrriibbuuttee NNaammeess
        While many of the anticipated used of change attributes are to allow
        projects to attach their own specialized data to change sets, Aegis
        also uses some attributes for its own purposes (and arguably, should
        always have done so to maximize forwards compatibility across Aegis
        upgrades).

        aeget:inventory:hide
                boolean.  If true, this change set does not appear in
                _a_e_g_e_t(1)'s change set inventory pages, used by _a_e_d_i_s_t _-_r_e_p_l_a_y
                to decide what to download and apply.  Think of it as a "local
                only" flag.

        foreign-copyright
                boolean.  If true, none of the files in this change set will
                not be checked by the _a_e_d_e_-_p_o_l_i_c_y(1) copyright validation.

        original-uuid
                This is set by _a_e_d_i_s_t _-_r_e_c_e_i_v_e when an incoming change set is
                changed before it can end development.  There may be more than
                one.  The _a_e_g_e_t(1) inventory "all" page will show these
                additional UUIDs, used by the _a_e_d_i_s_t _-_p_e_n_d_i_n_g command..

   UUnniivveerrssaall UUnniiqquuee IIddeennttiiffiieerr
        Each change set is assigned a unique universal identifier (UUID) at
        _i_n_t_e_g_r_a_t_e _p_a_s_s time.  This serves to identify the change across all
        sites when a geographically distributed development model is being
        used.  This may be exploited to rapidly determine which change sets
        need to be downloaded.

        The --UUnniivveerrssaall__UUnniiqquuee__IIDDeennttiiffiieerr option is used by the _a_e_d_i_s_t(1) and
        _a_e_p_a_t_c_h(1) commands to set the UUID of a change set.  It should not be
        used by developers.

   UUssiinngg CChhaannggee AAttttrriibbuutteess iinn SSccrriippttss
        There are several ways you can use the attributes of an Aegis change
        in a shell script:

        _a_e_r_e_p_o_r_t(1)
                The report generator is able to access change attributes.  You
                can then have the report generator print the necessary data.

        _a_e_s_u_b(1)
                Many change attributes can be accessed via the _a_e_s_u_b(5)
                command substitutions, and printed using the _a_e_s_u_b(1) command.

        aeca -l The list option of the _a_e_c_a(1) command may be used to print
                the values of all editable change attributes.  It can be
                groped using _g_r_e_p(1) or _a_w_k(1), or similar.

        _a_e_x_m_l(1)
                It is possible to get a great deal of information in XML
                format, including change attributes.  This format can be
                parsed by a variety of packages.

        Use the method best suited to your particular needs.

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 configuration 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.

        --UUnniivveerrssaall__UUnniiqquuee__IIDDeennttiiffiieerr _s_t_r_i_n_g
                This option may be used to set the UUID of change change.

        --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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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_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_p_a(5) modify the attributes of a project

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

        _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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 or replaced 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 or replaced 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 attach a comment to the change
                history generated by this command.  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.

        --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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aegis version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 configuration 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 Aegis.  (It
        becomes multi-level when Aegis' branching functionality is used.)  To
        allow these tools to be used, Aegis 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
        The _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___s_t_y_l_e field of the project configuration
        file controls the appearance of the development directory.  See
        _a_e_p_c_o_n_f(5) for more information.

        By using a setting such as
                development_directory_style =
                {
                    source_file_symlink = true;
                    during_build_only = true;
                };
        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.

        By using a setting such as
                development_directory_style =
                {
                    source_file_symlink = true;
                };
        (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 editing change sourec files 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) if you use any of the link sub-fields (both hard links and
        symbolic links).  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 configuration 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 _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y_____s_t_y_l_e_._s_o_u_r_c_e___f_i_l_e___s_y_m_l_i_n_k 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.

        It is possible to obtain behaviour similar to Tom Lord'a Arch by using
        a setting such as:
                development_directory_style =
                {
                    source_file_link = true;
                    source_file_symlink = true;
                };

        It is possible to obtain behaviour similar to CVS by using a setting
        such as:
                development_directory_style =
                {
                    source_file_copy = true;
                };
        There are many more possible configurations of the _d_e_v_e_l_o_p_m_e_n_t___-
        _d_i_r_e_c_t_o_r_y___s_t_y_l_e, usually with helpful build side-effects.  See
        _a_e_p_c_o_n_f(1) and the _D_e_p_e_n_e_d_e_n_c_y _M_a_i_n_t_e_n_a_n_c_e _T_o_o_l chapter of the User
        Guide for more information.

        The symbolic link command line options and preferences apply equally
        to hard links and file copies (the names have historical origins).

   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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aegis version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

CClloonniinngg aanndd MMeerrggiinngg
        When you use _a_e_c_l_o_n_e(1) to clone a change set, and then integrate one
        of the two change sets, you will observe that Aegis says that the
        files of the un-integrated change are now out-of-date.

        If you run _a_e_m(1) to bring the out-of-date files back up-to-date,
        _f_m_e_r_g_e(1) and some (but not) all other merging tools, it signals just
        about everything as a conflict, even though both alternatives are
        identical.

        The problem is that two changes making identical edits to the same
        place in the same file are a logical conflict, even if not an actual
        conflict, and it takes a human to figure out the difference.  Think of
        a shopping list: the ensuite needs more soap, and so does the main
        bathroom.  The second "soap" on the merge of the two shopping lists
        isn't a duplicate, you really do need two boxes of soap.  Sometimes
        edits of source files are the same: sometimes the logical conflict is
        resolved by applying both identical edits, not just one.

        This is just the _f_m_e_r_g_e(1) command being more conservative than RCS's
        _m_e_r_g_e(1) command.

        The easiest way to deal with this common situation it to run an
                aecpu -unchanged
        command _b_e_f_o_r_e you run the _a_e_m(1) merge command, and you will have
        less grief.  It's also worth remembering that Aegis stashes the
        original file with a ,B suffix (B for backup) so you can simply
                mv _f_u_b_a_r,B _f_u_b_a_r
        if you know that all of the conflicts are logical conflicts.

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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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
        Scott Finneran <scottf@lucent.com>



aecomplete(1)                                                    aecomplete(1)



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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aecomplete version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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
        configuration 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.

   FFiillee AAccttiioonn AAddjjuussttmmeenntt
        When this command runs, it first checks the change files against the
        projects files.  If there are inconsistencies, the file actions will
        be adjusted as follows:

        create  If a file is being created, but another change set is
                integrated which also creates the file, the file action in the
                change set still being developed will be adjusted to "modify".

        modify  If a file is being modified, but another change set is
                integrated which removes the file, the file action in the
                change set still being developed will be adjusted to "create".

        remove  If a file is being removed, but another change set is
                integrated which removes the file, the file will be dropped
                from the change set still being developed.

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.

        --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 project delta
                from its change number.

        --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 or replaced 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 or replaced 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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
        configuration 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 or replaced 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 or replaced 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add__OOnnllyy
                This option may be used to specify that only insulation files
                are to be uncopied.  If you specify --UUNNCChhaannggeedd as well, only
                unchanged insulation files will be uncopied.

        --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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 that the symbolic links, or
                hard links, or file copies, in the work area be updated to
                reflect the current state of the baseline.  This is controlled
                by the _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___s_t_y_l_e field of the project
                configuration file.  Only files which are not involved in the
                change are updated.  See also the "symbolic_links_preference"
                field of _a_e_u_c_o_n_f(5).  This option is the default, if
                meaningful for your configuration.  The name is an historical
                accident, hard links and file copies are included.

        --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 that no update of baseline
                mirror files take place.  This options is useful when you
                _d_e_f_i_n_i_t_e_l_y _k_n_o_w the files' up-to-date-ness isn't important
                right now; incorrect use of this option may have unanticipated
                build side-effects.  See also the "symbolic_links_preference"
                field of _a_e_u_c_o_n_f(5).  This option is the default, if not
                meaningful for your configuration.  The name is an historical
                accident, hard links and file copies are included.

        --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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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/



aecvsserver(1)                                                  aecvsserver(1)



NNAAMMEE
        aecvsserver - serve CVS client protocol against Aegis projects

SSYYNNOOPPSSIISS
        aaeeccvvsssseerrvveerr sseerrvveerr
        aaeeccvvsssseerrvveerr ppsseerrvveerr
        aaeeccvvsssseerrvve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_c_v_s_s_e_r_v_e_r command is used to serve the CVS client protocol.  The
        repository, of course, is stored within Aegis.

        The server works by retrieving file contents from locations within
        Aegis change sets and repositories.  When necessary, appropriate
        _a_e_g_i_s(1) commands are executed by the server to fulfill the requests.

        _T_h_i_s _c_o_d_e _i_s _s_t_i_l_l _e_x_p_e_r_i_m_e_n_t_a_l_.  At the present time only a limited
        number of CVS commands are understood.  If you would like to extend
        this code, contributions are welcome.  The following commands are
        thought to work at this time: add, admin, checkout, commit, init,
        remove, update.

   sseerrvveerr
        To use the server, you will need to set the following environment
        variables:
                CVSROOT=:ext:_h_o_s_t_n_a_m_e/aegis
                CVS_RSH=ssh
                CVS_SERVER=aecvsserver

   ppsseerrvveerr
        It is also possible to use _a_e_c_v_s_s_e_r_v_e_r as a cvs pserver, with all the
        usual caveats about how insecure this access method is, because it
        transmits the password _a_l_m_o_s_t in the clear.  The root and modules are
        as above.

MMOODDUULLEESS
        The CVS concept of modules is mapped onto Aegis concept of projects
        and changes.  The special CVSROOT administrative module is simulated.

   PPrroojjeeccttss aass MMoodduulleess
        Each Aegis project appears to the CVS client as a module; the module's
        name is the same as the Aegis project's name.  This type of module
        isn't immediately useful except for the _c_v_s _e_x_p_o_r_t command, or to
        perform a read-only _c_v_s _c_h_e_c_k_o_u_t command.

        You can't commit to a project-named module.  This because Aegis
        requires all operations which would change the repository to be
        performed through a change set.

        It is theoretically possible to code _a_e_c_v_s_s_e_r_v_e_r to create a change
        (via _a_e_n_c(1) and _a_e_d_b(1) commands), then add the necessary files (via
        _a_e_n_f(1) and _a_e_c_p(1) commands), then build (via the _a_e_b(1) command),
        then test (via the _a_e_t(1) command), and finally to end development of
        the change (via the _a_e_d_e(1) command).  As the CVS protocol
        documentation says
                "The protocol makes it possible for updates to be atomic with
                respect to checkins; that is, if someone commits changes to
                several files in one cvs command, then an update by someone
                else would either get all the changes, or none of them.  The
                current cvs server can't do this, but that isn't the
                protocol's fault."
        This code is yet to be written.  Contributions welcome.

        The protocol, however, doesn't make it particularly easy, either.  The
        semantics of the Modify request change depending on whether it is
        _f_o_l_l_o_w_e_d by the commit request or the update request.

   CChhaannggeess aass MMoodduulleess
        Each Aegis change set also appears to the CVS client as a module; it's
        name is _p_r_o_j_e_c_t.C_n_u_m_b_e_r.  All _c_v_s _a_d_d commands, _c_v_s _r_e_m_o_v_e commands,
        _c_v_s _u_p_d_a_t_e commands and _c_v_s _c_o_m_m_i_t commands are performed against the
        change set, not directly to the baseline.  It is necessary for the
        change set to already exist, and once you have run the _c_v_s _c_o_m_m_i_t
        command, it will the be necessary to use the _a_e_d_e(1) command and the
        rest of the usual Aegis process.

        Once a change is no longer in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state, it cannot be
        changed via _a_e_c_v_s_s_e_r_v_e_r(1) and you will need to create a new Aegis
        change set, and then _c_v_s _c_h_e_c_k_o_u_t a new client-side work area.

        Please note: if you are experimenting with the interface via _c_v_s _-_d
        _:_f_o_r_k_:_/_a_e_g_i_s or similar, the work area you create mmuusstt be outside the
        Aegis change set's development directory.

   CCVVSSRROOOOTT
        The CVSROOT module's contents are synthesized from Aegis meta-data.
        You can't add or modify files in this module; you need to administer
        Aegis directly with _a_e_g_i_s(1) commands.

EEXXIITT SSTTAATTUUSS
        The _a_e_c_v_s_s_e_r_v_e_r command will exit with a status of 1 on any error.
        The _a_e_c_v_s_s_e_r_v_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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aecvsserver version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        The aecvsserver program comes with ABSOLUTELY NO WARRANTY; for details
        use the '_a_e_c_v_s_s_e_r_v_e_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_c_v_s_s_e_r_v_e_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 -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 configuration file (see _a_e_p_c_o_n_f(5)
        for more information).

        It is possible to configure a project to omit the diff step as
        unnecessary, by the following setting:
                diff_command = "exit 0";
        This disables all generation, checking and validation of difference
        file for each change source file.  The merge functions of the
        _a_e_d_i_f_f(1) command are unaffected by this setting.

        Please note that 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
        configuration file does nnoott apply to the _d_i_f_f___c_o_m_m_a_n_d field.

        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.

   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.

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.

   FFiillee AAccttiioonn AAddjjuussttmmeenntt
        When this command runs, it first checks the change files against the
        projects files.  If there are inconsistencies, the file actions will
        be adjusted as follows:

        create  If a file is being created, but another change set is
                integrated which also creates the file, the file action in the
                change set still being developed will be adjusted to "modify".

        modify  If a file is being modified, but another change set is
                integrated which removes the file, the file action in the
                change set still being developed will be adjusted to "create".

        remove  If a file is being removed, but another change set is
                integrated which removes the file, the file will be dropped
                from the change set still being developed.

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 configuration file (see _a_e_p_c_o_n_f(5) for more information).

        Please note that 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
        configuration file does nnoott apply to the _m_e_r_g_e___c_o_m_m_a_n_d field.

        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 original file in your development directory is preserved with an
        ",B" suffix (B for backup).  The source file contains the result of
        the merge.  You should edit the source files, to make sure the
        automatic merge has produced sensible results.

        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 you don't want the automatic merge results, simply use the _m_v(1)
        command to restore the contents from the ",B" file.

        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.

CClloonniinngg aanndd MMeerrggiinngg
        When you use _a_e_c_l_o_n_e(1) to clone a change set, and then integrate one
        of the two change sets, you will observe that Aegis says that the
        files of the un-integrated change are now out-of-date.

        If you run _a_e_m(1) to bring the out-of-date files back up-to-date,
        _f_m_e_r_g_e(1) and some (but not) all other merging tools, it signals just
        about everything as a conflict, even though both alternatives are
        identical.

        The problem is that two changes making identical edits to the same
        place in the same file are a logical conflict, even if not an actual
        conflict, and it takes a human to figure out the difference.  Think of
        a shopping list: the ensuite needs more soap, and so does the main
        bathroom.  The second "soap" on the merge of the two shopping lists
        isn't a duplicate, you really do need two boxes of soap.  Sometimes
        edits of source files are the same: sometimes the logical conflict is
        resolved by applying both identical edits, not just one.

        This is just the _f_m_e_r_g_e(1) command being more conservative than RCS's
        _m_e_r_g_e(1) command.

        The easiest way to deal with this common situation it to run an
                aecpu -unchanged
        command _b_e_f_o_r_e you run the _a_e_m(1) merge command, and you will have
        less grief.  It's also worth remembering that Aegis stashes the
        original file with a ,B suffix (B for backup) so you can simply
                mv _f_u_b_a_r,B _f_u_b_a_r
        if you know that all of the conflicts are logical conflicts.

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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 configuration 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 Aegis.  (It
        becomes multi-level when Aegis' branching functionality is used.)  To
        allow these tools to be used, Aegis 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
        The _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___s_t_y_l_e field of the project configuration
        file controls the appearance of the development directory.  See
        _a_e_p_c_o_n_f(5) for more information.

        By using a setting such as
                development_directory_style =
                {
                    source_file_symlink = true;
                    during_build_only = true;
                };
        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.

        By using a setting such as
                development_directory_style =
                {
                    source_file_symlink = true;
                };
        (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 editing change sourec files 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) if you use any of the link sub-fields (both hard links and
        symbolic links).  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 configuration 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 _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y_____s_t_y_l_e_._s_o_u_r_c_e___f_i_l_e___s_y_m_l_i_n_k 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.

        It is possible to obtain behaviour similar to Tom Lord'a Arch by using
        a setting such as:
                development_directory_style =
                {
                    source_file_link = true;
                    source_file_symlink = true;
                };

        It is possible to obtain behaviour similar to CVS by using a setting
        such as:
                development_directory_style =
                {
                    source_file_copy = true;
                };
        There are many more possible configurations of the _d_e_v_e_l_o_p_m_e_n_t___-
        _d_i_r_e_c_t_o_r_y___s_t_y_l_e, usually with helpful build side-effects.  See
        _a_e_p_c_o_n_f(1) and the _D_e_p_e_n_e_d_e_n_c_y _M_a_i_n_t_e_n_a_n_c_e _T_o_o_l chapter of the User
        Guide for more information.

        The symbolic link command line options and preferences apply equally
        to hard links and file copies (the names have historical origins).

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.

        --RREEAAssoonn _t_e_x_t
                This option may be used to attach a comment to the change
                history generated by this command.  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.

        --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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 or replaced 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 or replaced 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Neeww--CChhaannggee--UUnnddoo
                By using this option it is possible to end developemnt of the
                change, and remove the change, all in the one command.  The
                executing user must have both created the change and be the
                devloper of the change, or must be a project administrator.
                (Order is important here, this option mast appear on the
                command line _a_f_t_e_r the --DDeevveelloopp--BBeeggiinn--UUnnddoo 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.

        --RREEAAssoonn _t_e_x_t
                This option may be used to attach a comment to the change
                history generated by this command.  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.

        --UUsseerr _n_a_m_e
                Ignored for backwards compatibility.

        --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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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/



aede-policy(1)                                                  aede-policy(1)



NNAAMMEE
        aede-policy - check change set is ready for aede

SSYYNNOOPPSSIISS
        aaeeddee--ppoolliiccyy [ _o_p_t_i_o_n...  ][ _p_o_l_i_c_y...  ]
        aaeeddee--ppoolliiccyy --HHeellpp
        aaeeddee--ppoolliiccyy --VVEERRSSiioonn
        aaeeddee--ppoolliiccyy --LLiisstt

DDEESSCCRRIIPPTTIIOONN
        The _a_e_d_e_-_p_o_l_i_c_y command is used to verify that a change set is ready
        to end development.  This is intended to be used by the _d_e_v_e_l_o_p___e_n_d___-
        _p_o_l_i_c_y___c_o_m_m_a_n_d field of the project configuration file.
                develop_end_policy_command =
                    "aede-policy -p $project -c $change all";
        If any of the pilies should fail, the _a_e_d_e_-_p_o_l_i_c_y command will fail
        with an exit status of 1.  This, in turn, will cause the _a_e_d_e(1)
        command to leave the change in the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.

        Note that the _a_e_d_e(1) command sets the appropriate environment
        variables, so the --PPrroojjeecctt and --CChhaannggee options are rarely necessary.

        If no policies appear on the command line, the _a_e_d_e_-_p_o_l_i_c_y project
        specific attribute will be checked.  If it exists, it contains a list
        of space separated policy names.

   PPOOLLIICCIIEESS
        There are a range of policies that can be selected.

        all     Check all of the _c_o_p_y_r_i_g_h_t, _c_r_l_f, _d_e_s_c_r_i_p_t_i_o_n and _p_r_i_n_t_a_b_l_e
                policies.

        copyright
                This policy checks that each file in the change set contains a
                copyright notice of the form
                        Copyright (C) yyeeaarr _s_o_m_e_t_h_i_n_g
                where yyeeaarr is the current year (you can have a range of years,
                too).  Binary files are ignored.  Change sets marked with a
                _f_o_r_e_i_g_n_-_c_o_p_y_r_i_g_h_t_=_t_r_u_e attribute are ignored, as are files
                similarly marked.  The _s_o_m_e_t_h_i_n_g part is either the project
                specific _c_o_p_y_r_i_g_h_t_-_o_w_n_e_r attribute, or the executing users
                full name.

        crlf    This policy cheks that all files are using UNIX line
                termination (NL), not DOS line termination (CRLF).  Binary
                files are ignored.

        description
                This policy checks that the change set _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 attributes have been updated to something other
                than the defaults.

        fsf-address
                This policy checks that the FSF address, if present in source
                files, is up-to-date.  This is useful for Free Software
                projects.

        gpl-version

        gpl-version=_n_n
                This policy checks files that cite the GNU GPL in their file
                headers, to be sure they contain the correct version of the
                GNU GPL.  Defaults to version 3 if no version number
                specified.

        line-length

        line-length=_n_n
                This policy checks that files have this maximum line length.
                Defaults to 80 if no width is specified.  Can be overridden
                per file using the _a_e_d_e_-_p_o_l_i_c_y_-_l_i_n_e_-_l_e_n_g_t_h file attribute.

        merge-fhist
                This policy requires that there be no _f_m_e_r_g_e(1) conflict lines
                present in any source files.  The name comes from the name of
                the package containing this tool: _f_h_i_s_t.

        merge-rcs
                This policy requires that there be no _m_e_r_g_e(1) conflict lines
                present in any source files.  The name comes from the name of
                the package containing this tool: _r_c_s.

        no-tabs
                This policy checks that files have no tabs characters in them.
                This is useful when a team of developers all use different
                editors and differnt tab stops.  By only using spaces, the
                code is presented to all developers the same way.

                This check is not applied to change sets with a Iforeign-
                copyright=true attribute, because you have little control over
                them (change the tabs in a later change set, if at all).

                This check is not applied to files which are called Makefile
                or similar, and it is not applied to files carrying a _a_e_d_e_-
                _p_o_l_i_c_y_-_t_a_b_s_-_a_l_l_o_w_e_d_=_t_r_u_e attribute.

        printable
                This policy checks that each file in the change set contains
                only printable text characters and white space.  The _c_o_n_t_e_n_t_-
                _t_y_p_e file attribute is taken into account; if there is no
                _c_o_n_t_e_n_t_-_t_y_p_e file attribute, or there is no charset specified
                by the _c_o_n_t_e_n_t_-_t_y_p_e file attribute, plain 7-bit ASCII text is
                assumed.

        text    This policy checks that each file in the change set contains
                only text, although international character sets are
                acceptable.  This is basically a test for NUL characters,
                because everything else could be part of a valid character
                encoding of some international character set.

        white-space
                This policy checks that there is no white space on the ends of
                lines, that there are no blank lines at the ends of files.

        If no policy is specified, only the _d_e_s_c_r_i_p_t_i_o_n policy will be
        checked.

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_d_e_-_p_o_l_i_c_y program.

        --LLiisstt   List all of the available validations.

        --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_d_e_-_p_o_l_i_c_y 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_d_e_-_p_o_l_i_c_y command will exit with a status of 1 on any error.
        The _a_e_d_e_-_p_o_l_i_c_y 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

SSEEEE AALLSSOO
        _a_e_d_e(1) end development of a change

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

CCOOPPYYRRIIGGHHTT
        aede-policy version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        The aede-policy program comes with ABSOLUTELY NO WARRANTY; for details
        use the '_a_e_d_e_-_p_o_l_i_c_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_d_e_-_p_o_l_i_c_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 -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, or the build command is "exit 0".  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 configuration 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.

        If the project configuration file has specified the presence of
        Signed-off-by: lines, a suitable line containing the current user's
        email address will be appended to the change description.

        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.

        If your project has configured the _d_e_v_e_l_o_p___e_n_d___a_c_t_i_o_n in the project
        confifuration file to _g_o_t_o___a_w_a_i_t_i_n_g___i_n_t_e_g_r_a_t_i_o_n then the _r_e_v_i_e_w___p_a_s_s___-
        _n_o_t_i_f_y___c_o_m_m_a_n_d in the project attributes file is run instead, if set.

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.

        --RREEAAssoonn _t_e_x_t
                This option may be used to attach a comment to the change
                history generated by this command.  You will need to use
                quotes to insulate the spaces from the shell.

        --SSiiggnneedd__OOffff__BByy
                This option may be used to have a Signed-off-by: line appended
                to the change set description.

        --NNoo__SSiiggnneedd__OOffff__BByy
                This option may be used to prevent a Signed-off-by: line from
                being appended to the change set description.

        --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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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_-_p_o_l_i_c_y(1)
                validate change set is ready to end

        _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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

        --RREEAAssoonn _t_e_x_t
                This option may be used to attach a comment to the change
                history generated by this command.  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 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 _a_w_a_i_t_i_n_g _r_e_v_i_e_w or
        _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.

        If is an error if the project has been configured to use the _a_w_a_i_t_i_n_g
        _r_e_v_i_e_w state, and the change is currently in the _b_e_i_n_g _r_e_v_i_e_w_e_d state.
        This is because the change currently belongs to the reviewer.

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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/



aediff(1)                                                            aediff(1)



NNAAMMEE
        aediff - file differences between deltas

SSYYNNOOPPSSIISS
        aaeeddiiffff [ _o_p_t_i_o_n...  ] _f_i_l_e_n_a_m_e
        aaeeddiiffff --HHeellpp
        aaeeddiiffff --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_f_f command is used to obtain the difference between versions
        of the given _f_i_l_e_n_a_m_e across different file versions, a specified by
        the command lien options.

        If two changes or deltas are specified, the difference between the
        versions of the file in each will be output.

        If only one change or delta is specified, the second version defaults
        to the current change.

        If no changes or deltas are specified, the first version defaults to
        the baseline and the second version defaults to the current change.

   EExxaammpplleess
        To see the difference in the project configuration file, _a_e_g_i_s_._c_o_n_f,
        between deltas 1.2.D003 and 4.5.D067 the following command may be
        used:
                aediff aegis.conf -c 1.2.D003 -c 4.5.D067
        To see the differences in the project configuration file, between the
        head of the 7.6 branch and the current change, the following command
        may be used:
                aediff -branch 7.6 -bl  aegis.conf
        Many, many other combinatiosn are possible.

   UUssiinngg GGrraapphhiiccaall TToooollss
        It is possible to use a graphical diff tool with the _a_e_d_i_f_f(1)
        command.  This is done by using the -command _o_p_t_i_o_n_, _o_r _s_e_t_t_i_n_g _t_h_e
        AE2DIFF _e_n_v_i_r_o_n_m_e_n_t _v_a_r_i_a_b_l_e_.  _F_o_r _e_x_a_m_p_l_e_, _t_o _u_s_e _t_h_e _t_k_d_i_f_f_(_1_)
        _c_o_m_m_a_n_d _t_o _d_i_s_p_l_a_y _t_h_e _d_i_f_f_e_r_e_n_c_e_s _y_o_u _w_o_u_l_d _u_s_e _a _c_o_m_m_a_n_d _s_u_c_h _a_s_:
                _a_e_d_i_f_f _-_-_c_o_m_m_a_n_d_=_t_k_d_i_f_f _f_i_l_e_n_a_m_e
        _I_f _y_o_u _u_s_e _t_h_i_s _o_p_t_i_o_n_, _m_a_n_y _o_f _t_h_e _d_i_f_f_(_1_)_-_s_p_e_c_i_f_i_c _o_p_t_i_o_n_s _w_i_l_l _b_e
        _i_g_n_o_r_e_d_.

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.

        --CCOOMMmmaanndd _s_t_r_i_n_g
                This option may be used to set the command used to display
                differences.  Using this option will cause _d_i_f_f(1)-specific
                options to be ignored.  If not set, defaults to the value of
                the AE2DIFF environment variable, or "diff" otherwise.

        --CCOONNtteexxtt [ _l_i_n_e_s ]
                Use the context output format, showing _l_i_n_e_s (an integer)
                lines of context, or three if _l_i_n_e_s is not given.  For proper
                operation, _p_a_t_c_h(1) typically needs at least two lines of
                context.

        --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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 project delta
                from its change number.

        --IIggnnoorree__BBllaannkk__LLiinneess
                Ignore changes that just insert or delete blank lines.

        --IIggnnoorree__AAllll__SSppaaccee
                Ignore white space when comparing lines.

        --IIggnnoorree__CCaassee
                Ignore changes in case; consider upper- and lower-case to be
                the same.

        --IIggnnoorree__SSppaaccee__CChhaannggee
                Ignore changes in amount of white space.

        --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Shhooww__CC__FFuunnccttiioonn
                Show which C function each change is in.

        --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.)

        --uunniiffiieedd [ _l_i_n_e_s ]
                Use the unified output format, showing _l_i_n_e_s (an integer)
                lines of context, or three if lines is not given.  For proper
                operation, _p_a_t_c_h(1) typically needs at least two lines of
                context.

        --HHeellpp
                This option may be used to obtain more information about how
                to use the _a_e_d_i_f_f 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_f_f 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_d_i_f_f command will exit with a status of 1 on any error.  The
        _a_e_d_i_f_f 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aediff version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        The aediff program comes with ABSOLUTELY NO WARRANTY; for details use
        the '_a_e_d_i_f_f _-_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_f_f _-_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 --RREEPPllaayy [ _o_p_t_i_o_n...  ] -f _U_R_L
        aaeeddiisstt --MMIIssssiinngg [ _o_p_t_i_o_n...  ] -f _U_R_L
        aaeeddiisstt --PPEENNddiinngg [ _o_p_t_i_o_n...  ] -f _U_R_L
        aaeeddiisstt --IInnvveennttoorryy [ _o_p_t_i_o_n...  ]
        aaeeddiisstt --AARRCChhi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PAATTiibbiilliittyy _v_e_r_s_i_o_n_-_n_u_m_b_e_r
                This option may be used to specify the version of _a_e_d_i_s_t(1)
                which will be _r_e_c_e_i_v_i_n_g this change set.  This information is
                used to select which features to include in the data, and
                which to omit.  By default, the latest feature set will be
                used.

        --ccoommpprreessssiioonn--aallggoorriitthhmm _n_a_m_e
                This option may be used to specify the compression to be used.
                They are listed on order of compression effeciency.

                none    Use no compression (not always meaningful for all
                        commands).

                gzip    Use the compression used by the _g_z_i_p(1) program.

                bzip2   Use the compression used by the _b_z_i_p_2(1) program.

                More compression algorithms may be added in the future.

        --CCOOMMPPrreessss
                This option is deprecated in favour of the --ccoommpp--aallgg==ggzziipp or
                --ccoommpp--aallgg==bbzziipp22 options.

        --NNoo__CCOOMMPPrreessss
                This options is deprecated in favour of the --ccoommpp--aallgg==nnoonnee
                option.

        --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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 project delta
                from its change number.

        --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.

        --IIggnnoorree__UUUUIIDD
                This option may be used to ignore the UUID, if present, of the
                outgoing change set.

        --NNoo__IIggnnoorree__UUUUIIDD
                This option forces the _a_e_d_i_s_t command to use the outgoing
                change set's UUID information.  This is the default (unless
                the compatibility option will to avoid attributes).

        --MMiimmee__HHeeaaddeerrss
                This option may be use to force the presence of mime headers
                in the output, in circumstances they would usually be absent.

        --NNoo__MMiimmee__HHeeaaddeerrss
                This option may be use to force the absence of mime headers in
                the output, in circumstances where they would usually be
                present.

        --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 is deprecated.  Please use the --CCOOMMPPAATTiibbiilliittyy
                option instead.

        --NNoo__PPAATTcchh
                This option is deprecated.  Please use the --CCOOMMPPAATTiibbiilliittyy==44..66
                option instead.

        --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Siiggnneedd__OOffff__BByy
                This option may be used to have a Signed-off-by: line appended
                to the change set description.

        --NNoo__SSiiggnneedd__OOffff__BByy
                This option may be used to prevent a Signed-off-by: line from
                being appended to the change set description.

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.

        --IIggnnoorree__UUUUIIDD
                This option may be used to ignore the UUID, if present, of the
                incoming change set.

        --NNoo__IIggnnoorree__UUUUIIDD
                This option force the _a_e_d_i_s_t command to use the change set's
                UUID.  This is the default.

        --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 configuration files, shell
          scripts, code generators, _e_t_c here to specify files in addition to
          the project configuration 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)).

RREEPPLLAAYY
        If you are tracking a remote site which makes a project available via
        the _a_e_g_e_t(1) web interface, you can automatically synchronize with the
        remote site using the _a_e_d_i_s_t _-_r_e_p_l_a_y command.

        For example, Aegis developers can track the master project with a
        command of the form:
                aedist -p aegis.4.24.2 --replay -f aegis.sourceforge.net
        This command is internally rewritten as
                aedist --replay -p aegis.4.24.2 -f \
                  http://aegis.sf.net/cgi-bin/aeget/aegis.4.24.2/?inventory
        If your cgi-bin directory is somewhere else, you will need to use the
        long form.

        The change set inventory page is human readable if you want to see
        what it contains.  The links on this page provide all the information
        necessary to download any of the change sets listed.

        This command reads the list of change set UUIDs from the remote
        repository, and compares it with the list of change set UUIDs in the
        local repository, and fetches any that are not present locally.

        Each of the change sets required are downloaded and unpacked by
        issuing a command such as
                aedist -rec -f \
                  http://aegis.sf.net/cgi-bin/aeget/aegis.4.19.C010/?aedist
        If this completes successfully (and it is possible it won't, either
        because of trojan warnings, or some conflict between local changes and
        the incoming remote changes), and your project has its _d_e_v_e_l_o_p___e_n_d___-
        _a_c_t_i_o_n set to _g_o_t_o___a_w_a_i_t_i_n_g___i_n_t_e_g_r_a_t_i_o_n, the change will be integrated
        using a command such as:
                aeintegratq -p aegis.4.24.2 -c 10
        and then starts over again for the next missing change set.

        This command will attempt to use the same change number as in the
        remote repository, if it is available.

   OOppttiioonnss
        The following options are understood by this variant:

        --EEXXcclluuddee__UUUUIIDD _U_U_I_D
                This option may be used to exclude some change sets from being
                downloaded and unpacked.  This option may be used more than
                once.

        --NNoo__EEXXcclluuddee__UUUUIIDD _U_U_I_D
                This option may be used to explicitly list change sets to be
                downloaded and unpacked, to the exclusion of all others.  This
                option may be used more than once.

        --EEXXcclluuddee__VVEERRssiioonn _p_a_t_t_e_r_n
                This option may be used to explicitly exclude some change set
                from being downloaded and unpacked.  The _p_a_t_t_e_r_n is matched
                against the version as displayed in the inventory.  This
                option may be used more than once.

        --IINNcclluuddee__VVEERRssiioonn _p_a_t_t_e_r_n
                This option may be used to explicitly list change sets to be
                downloaded and unpacked, to the exclusion of all others.  The
                _p_a_t_t_e_r_n is matched against the version as displayed in the
                inventory.  This option may be used more than once.

        --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.)

        --MMAAXXiimmuumm
                This option may be used to download as many changes as
                possible by excluding the maximum number of local changes
                sets, by excluding both local change sets UUIDs (the default)
                but also excluding UUIDs mentioned in change "original-uuid"
                attributes.

        --PPEErrsseevveerree
                This option may be used to specify that all relevant change
                sets should be downloaded, 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 downloading of
                change sets 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.

        --TTrroojjaann This option is passed to any _a_e_d_i_s_t(1) commands spawned by
                this command.

        --NNoo__TTrroojjaann
                This option is passed to any _a_e_d_i_s_t(1) commands spawned by
                this command.

        --NNoott__CCoommppaattiibbiilliittyy
                This option must be used when using _a_e_d_i_s_t _-_-_r_e_p_l_a_y against a
                file based inventory.

MMIISSSSIINNGG
        If you want to see the change sets that _a_e_d_i_s_t _-_r_e_p_l_a_y may download
        before it goes ahead and does it, you can use a command such as:
                aedist --missing -f aegis.sf.net
        In particular, this allows you to select appropriate UUIDs for the
        _a_e_d_i_s_t _-_r_e_p_l_a_y _-_e_x_c_l_u_d_e or _-_n_o_-_e_x_c_l_u_d_e options.

   OOppttiioonnss
        The following options are understood by this variant:

        --EEXXcclluuddee__UUUUIIDD _U_U_I_D
                This option may be used to exclude some change sets from being
                listed.  This option may be used more than once.

        --NNoo__EEXXcclluuddee__UUUUIIDD _U_U_I_D
                This option may be used to explicitly list change sets to be
                listed, to the exclusion of all others.  This option may be
                used more than once.

        --EEXXcclluuddee__VVEERRssiioonn _p_a_t_t_e_r_n
                This option may be used to explicitly exclude some change set
                from being listed.  The _p_a_t_t_e_r_n is matched against the version
                as displayed in the inventory.  This option may be used more
                than once.

        --IINNcclluuddee__VVeerrssiioonn _p_a_t_t_e_r_n
                This option may be used to explicitly list change sets to be
                listed, to the exclusion of all others.  The _p_a_t_t_e_r_n is
                matched against the version as displayed in the inventory.
                This option may be used more than once.

        --MMAAXXiimmuumm
                This option may be used to download as many changes as
                possible by excluding the maximum number of local changes
                sets, by excluding both local change sets UUIDs (the default)
                but also excluding UUIDs mentioned in change "original-uuid"
                attributes.

PPEENNDDIINNGG
        If you want to see the change sets that a remote repository is missing
        with respect to yours, you can use a command such as:
                aedist --pending -f aegis.sf.net

   OOppttiioonnss
        The following options are understood by this variant: --EEXXcclluuddee__UUUUIIDD
        _U_U_I_D This option may be used to exclude some local change sets from
        being listed.  This option may be used more than once.

        --NNoo__EEXXcclluuddee__UUUUIIDD _U_U_I_D
                This option may be used to explicitly list local change sets
                to be listed, to the exclusion of all others.  This option may
                be used more than once.

        --EEXXcclluuddee__VVEERRssiioonn _p_a_t_t_e_r_n
                This option may be used to explicitly exclude some local
                change set from being listed.  The _p_a_t_t_e_r_n is matched against
                the version as displayed in the inventory.  This option may be
                used more than once.

        --IINNcclluuddee__VVEERRssiioonn _p_a_t_t_e_r_n
                This option may be used to explicitly list local change sets
                to be listed, to the exclusion of all others.  The _p_a_t_t_e_r_n is
                matched against the version as displayed in the inventory.
                This option may be used more than once.

IINNVVEENNTTOORRYY
        The inventory variant can be used as an alternative to aeget to
        generate the inventory used by the replay, missing and pending
        variants.  The idea is to run the inventory variant on the development
        machine and then upload its output to the public repository.  In order
        to generate the inventory you can use a command such as:
                aedist --inventory -proj project > inventory.html

   OOppttiioonnss
        The following options are understood by this variant:

        --AAEEGGEETT  This option is used by aeget to require the original _a_e_g_e_t(1)
                behavior.

        --AAllll    This option is used to require the inclusion of the UUIDs
                contained in the original-UUID attribute of each change.

        --EEXXcclluuddee__VVeerrssiioonn _p_a_t_t_e_r_n
                This option may be used to explicitly exclude some change set
                to be added to the inventory file.  The _p_a_t_t_e_r_n is matched
                against the version as displayed in the inventory.  This
                option may be used more than once.

        --IINNcclluuddee__VVeerrssiioonn _p_a_t_t_e_r_n
                This option may be used to explicitly list change sets to be
                added to the the inventory file, to the exclusion of all
                others.  The _p_a_t_t_e_r_n is matched against the version as
                displayed in the inventory.  This option may be used more than
                once.

        --ppaatthh__pprreeffiixx__aadddd
                This option is used to add a path prefix to the URLs generated
                in the inventory.

        --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.

AARRCCHHIIVVEE
        As an alternative to using the _a_e_g_e_t(1) CGI program, the aedist
        archive variant is provided.  This variant can be used to populate a
        directory with the aedist archives of each change with an UUID.  The
        archives will have a name based on the UUID of the change with
        extension ".ae", the fingerprint of the archive will be stored in a
        file with the same (base)name with extension ".fp".  Running the
        archive variant multiple times against the same target directory will
        update that directory, adding the files of changes integrated after
        the last run and regenerating the files if a corruption is detected.

   OOppttiioonnss
        The following options are understood by the archive variant:

        --CChhaannggee--DDiirreeccttoorryy _d_i_r_e_c_t_o_r_y
                This option is used to designate the directory to be populated
                with the _a_e_d_i_s_t(1) generated files.  If this option is not
                used then the current directory is used as the target of the
                command.  The directory must exists and be accessible by the
                user running the command.

        --EEXXcclluuddee__VVeerrssiioonn _p_a_t_t_e_r_n
                This option may be used to explicitly exclude some change set
                to be added to the target directory.  The _p_a_t_t_e_r_n is matched
                against the version as displayed in the inventory.  This
                option may be used more than once.

        --IINNcclluuddee__VVeerrssiioonn _p_a_t_t_e_r_n
                This option may be used to explicitly list change sets to be
                added to the target directory, to the exclusion of all others.
                The _p_a_t_t_e_r_n is matched against the version as displayed in the
                inventory.  This option may be used more than once.

        --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.

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 _b_z_i_p_2(1) 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-number
                This contains the change number of the original change, this
                may be preserved if available on the target repository unless
                over-ridden by the --change 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.

        patch/_f_i_l_e_n_a_m_e
                Each modified or renamed file in the package (named in
                _e_t_c_/_c_h_a_n_g_e_-_s_e_t) appears under the _p_a_t_c_h directory.  The file
                may be empty unless some edits was done on the source
                repository.

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aedist version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.
        Walter Franzini   <walter.franzini@sys-net.it>   coding -replay download
        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 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
        use the '_a_e_g_i_s _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command.


aegis -File_ATtributes(1)                            aegis -File_ATtributes(1)



NNAAMMEE
        aegis -File_ATtributes - modify the attributes of a file

SSYYNNOOPPSSIISS
        aaeeggiiss --FFiille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...  ] _f_i_l_e_n_a_m_e
        aaeeggiiss --FFiillee__AATTttrriibbuutteess --EEddiitt [ _o_p_t_i_o_n...  ] _f_i_l_e_n_a_m_e
        aaeeggiiss --FFiillee__AATTttrriibbuutteess [ _o_p_t_i_o_n...  ] _n_a_m_e==_v_a_l_u_e _f_i_l_e_n_a_m_e
        aaeeggiiss --FFiillee__AATTttrriibbuutteess --UUUUIIDD _n_u_m_b_e_r --FFiillee _f_i_l_e_n_a_m_e
        aaeeggiiss --FFiille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 _-_F_i_l_e___A_T_t_r_i_b_u_t_e_s command is used to set, edit or list the
        attributes of a file.

        The output of the --LLiisstt variant is suitable for use as input at a
        later time.

        See _a_e_f_a_t_t_r(5) for a description of the file format.

        Attribute names are not case sensitive.  File attributes with a name
        starting with an upper case letter will appear in _a_e_l(1) and _a_e_g_e_t(1)
        listings, while those starting with a lower case letter will not.

   SShhoorrtthhaanndd
        If you are only setting the values of unique attributes, it is
        possible to do this from the command line, using the _n_a_m_e==_v_a_l_u_e form.

        Note that this usage will replace the first attribute with the given
        name.  If there is more than one attribute of that name, the second
        and subsequent attributes are unchanged.  If there is no attribute of
        the given name, it will be appended.

        You may set more than one attribute at a time, provided that their
        names are unique.  Attribute names are not case sensitive.

   KKnnoowwnn AAttttrriibbuuttee NNaammeess
        While many of the anticipated uses of file attributes are to allow
        projects to attach their own specialized data to individual files,
        Aegis also uses some attributes for its own purposes (and arguably,
        should always have done so to maximize forwards compatibility across
        Aegis upgrades).

        content-type
                This is taken directly from the MIME definition of Content-
                Type.  It remembers what sort of file this is.  It is
                anticipated that a _d_i_f_f tool, for example, could make use of
                this attribute to provide format-specific file difference
                listings.  Some change set interchange formats are capable of
                carrying this information.

        entire-source-hide
                boolean.  If true, this file is not included by the _a_e_d_i_s_t
                _-_e_n_t_i_r_e_-_s_o_u_r_c_e flag.  The _a_e_t_a_r and _a_e_r_e_v_m_l commands work
                similarly.  Think of it as a "local only" flag.

        foreign-copyright
                boolean.  If true, this file will not be checked by the _a_e_d_e_-
                _p_o_l_i_c_y(1) copyright validation.

        aede-policy-tabs-allowed
                boolean.  If true, the _n_o_-_t_a_b_s policy of the _a_e_d_e_-_p_o_l_i_c_y(1)
                command does not apply.

        aede-policy-line-length
                integer.  The maximum allowed line length in the _l_i_n_e_-_l_e_n_g_t_h
                policy of the _a_e_d_e_-_p_o_l_i_c_y(1) command; infinity if 0.

        local-source-hide
                boolean.  If true, this file is not included by _a_e_d_i_s_t change
                sets.  The _a_e_t_a_r and _a_e_r_e_v_m_l commands work similarly.  Change
                sets which contain _o_n_l_y thee files will be omitted from the
                _a_e_d_i_s_t _-_i_n_v_e_n_t_o_r_y output.  Think of it as a "local only" flag.

        aeipass-options:assign-file-uuid
                boolean.  If false, _a_e_i_p_a_s_s will not assign a fresh UUID to
                this file.  This flag is set by _a_e_d_i_s_t -rec if the action
                associated with the file is a create and the file is missing
                the UUID.  This behaviour is needed to prevent the effect of
                having different UUIDs assigned to the same file in different
                repositories.

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niivveerrssaall__UUnniiqquuee__IIDDeennttiiffiieerr _n_u_m_b_e_r This option may
                be used to set the UUID of a file.

        --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 aefa 'aegis -fat \!* -v'
        sh$     aefa(){aegis -fat "$@" -v}

EERRRROORRSS
        It is an error if the current user is not an administrator of the
        specified project.
        It is an error if the current user is not the developer of the
        specified change.
        It is an error if the file is not included in the specified 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

SSEEEE AALLSSOO
        _a_e_c_a(5) modify the attributes of a change

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

CCOOPPYYRRIIGGHHTT
        aegis version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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/



aefind(1)                                                            aefind(1)



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 file name of the file
                currently being considered.  The value is affected the the
                --RReessoollvvee option.

        {{--}}     The value of this expression is the file name of the file
                currently being considered, relative to the base of the
                directory stack.

        {{++}}     The value of this expression is the absolute path of the file
                currently being considered.

        _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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aefind version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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/



aefinish(1)                                                        aefinish(1)



NNAAMMEE
        aefinish - finish a change

SSYYNNOOPPSSIISS
        aaeeffiinniisshh [ _o_p_t_i_o_n...  ]
        aaeeffiinniisshh --HHeellpp
        aaeeffiinniisshh --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_i_s_h command is used to finish development or integration of a
        change set.  It examines the state of the change set, and executes the
        necessary Aegis commands to advance the change set to the next state.

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_f_i_n_i_s_h 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_f_i_n_i_s_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.

EEXXIITT SSTTAATTUUSS
        The _a_e_f_i_n_i_s_h command will exit with a status of 1 on any error.  The
        _a_e_f_i_n_i_s_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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aefinish version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        The aefinish program comes with ABSOLUTELY NO WARRANTY; for details
        use the '_a_e_f_i_n_i_s_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_f_i_n_i_s_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/



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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aefp version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 are relative to the root of the _a_e_g_i_s distribution.



aeget(1)                                                              aeget(1)



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.

PPRROOJJEECCTT AATTTTRRIIBBUUTTEESS
        You can set your own project specific page headers and footers by
        using the "html:meta", "html:body-begin" and "html:body-end" project
        specific attributes.
                project_specific =
                [
                  {
                    name = "html:body-begin";
                    value = "<i>This text goes immediately after the
                    &lt;BODY&gt; and before any text generated by
                    <i>aeget</i>(1).</i>";
                  },
                  {
                    name = "html:body-end";
                    value = "<i>This text goes immediately before the
                    &lt;/BODY&gt; and after all text generated by
                    <i>aeget</i>(1).</i>";
                  },
                ];
        These fields may be used to customize your web pages for your project-
        specific or company-specific needs.  Each project is configured
        independently.

CCHHAANNGGEE AATTTTRRIIBBUUTTEESS
        If you wish to prevent a change set appearing in the change set
        inventory used by _a_e_d_i_s_t _-_r_e_p_l_a_y to determine what needs to be
        downloaded, set the following change set attribute:
                attribute =
                [
                  {
                    name = "aeget:inventory:hide";
                    value = "true";
                  },
                ];
        You must use the _a_e_c_a(1) command for this, the _t_k_a_e_c_a(1) command can
        not edit change set attributes.

DDEEBBUUGGGGIINNGG aanndd TTEESSTTIINNGG
        You can run the _a_e_g_e_t(1) program from the command line if you set the
        appropriate environment variables.  This is how you debug or test
        _a_e_g_e_t(1) command.

        REQUEST_METHOD
                This is how the script is being invoked.  For _a_e_g_e_t(1)
                command, this is always "GET".

        SCRIPT_NAME
                This is the path of the script name, from the HTTP client's
                point of view.  Typically this is "/cgi-bin/aeget".

        PATH_INFO
                This is the portion of the URL between the script name and the
                question mark.  For _a_e_g_e_t(1) this is usually the project name
                or the project name and the change number.  No project name
                will get you the project list page.

        QUERY_STRING
                This the portion of the URL after the question mark.

        The above will not means much if you are not familar with CGI scripts.
        For the URL http://localhost/cgi-bin/aeget/aegis.4.1.C10?menu would
        have Apache set the following environment variables
                REQUEST_METHOD=GET \
                SCRIPT_NAME=/cgi-bin/aeget \
                PATH_INFO=/aegis.4.1.C10 \
                QUERY_STRING='menu' \
                aeget
        Output is written to stdout.  Tests scripts can easily capture this
        and compare it with expected results.  Make sure you avoid false
        negatives because of the date tacked onto the end of most pages.

   AAppaacchhee
        If you see "serious server error" pages when accessing _a_e_g_e_t(1) via a
        web server, the stderr text is usually available in the server's error
        log.

CCOOPPYYRRIIGGHHTT
        aeget version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

   DDeepprreeccaatteedd
        This scripts is DEPRECATED since a long time and has been removed from
        the aegis distribution as of aegis-4.24.1.  The preferred way to
        publish an aegis aegis repository on the Web is using _a_e_g_e_t(1).

   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_/_p_k_g_/_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/pkg/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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 configuration 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.

   CChhaannggee SSeett AAttttrriibbuutteess
        The follwoing user-defined change set attributes are understood:

        integrate-begin-hint
                If this is set to "minimum" or "maximum", it is as if these
                options appeared on the command line.  Only consulted if
                neither -minimum nor -maximum appear on the command line.

        All other user defined change set attributes are ignored.

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.

        --RREEAAssoonn _t_e_x_t
                This option may be used to attach a comment to the change
                history generated by this command.  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 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 or replaced 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 or replaced 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 attach a comment to the change
                history generated by this command.  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 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 or replaced 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 or replaced 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 _/_u_s_r_/_p_k_g_/_c_o_m_/_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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aeimport version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 silently move on.
        If one or more changes are ended or passed after the queue is running,
        and -loop has been given, aeintegratq will notice the new change[s]
        and integrate them. 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.

        --iibb _s   Specify (remote) server for ibegin.

        --iipp _s   Specify (remote) server for ipass.

        --kk      Keep the scripts and report files.

        --KK      Keep the temp file even if integration passes.

        --lloooopp   Loop to process more changes if they become available before
                aeintegratq completes.  It will stop when there is nothing
                more to be done.

        --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.  Note
        that 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. This applies to queue looping if --lloooopp is
                given. In particular note unless the list includes future
                changes, future loops will not integrate them.

                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.  If --lloooopp is
                given any change[s] specified as minimum will run at the end
                of the loop in which they are ready, they will not be pushed
                to the final loop.

        --iibb[server] _s_e_r_v_e_r_-_n_a_m_e or ""

        --iipp[server] _s_e_r_v_e_r_-_n_a_m_e or ""
                To specify a remote server on which to run --iibbeeggiinn or 00
                rreessppeecciivveellyy.. TThheessee ooppttiioonnss aarree rraarreellyy nneeeeddeedd,, bbuutt mmaayy bbee
                uusseeffuull iiff aa pprroojjeecctt iiss hhoosstteedd oonn aa ddiiffffeerreenntt ffiillee sseerrvveerr aanndd
                hhaass aa llaarrggee bbaasseelliinnee.. BByy hhaavviinngg tthhee --iibbeeggiinn rruunn oonn tthhaatt sseerrvveerr
                tthhee nneettwwoorrkk ttrraaffffiicc wwoouulldd bbee ggrreeaattllyy rreedduucceedd aanndd ffoorr llaarrggee
                pprroojjeeccttss aanndd//oorr ssllooww nneettwwoorrkkss ccaann ggrreeaattllyy rreedduuccee tthhee ttiimmee
                rreeqquuiirreedd ffoorr --iibbeeggiinn..  TThhee ooppttiioonn ffoorrmm ooff ggiivviinngg aann eemmppttyy nnaammee
                ddeeppeennddss oonn tthhee oouuttppuutt ooff ddff --kk ggiivviinngg aa ppaarrsseeaabbllee hhoosstt nnaammee..
                IIff tthhaatt iiss nnoott ttrruuee oonn yyoouurr iinntteeggrraattiioonn hhoosstt aarrcchhiitteeccttuurree,, yyoouu
                wwiillll hhaavvee ttoo ssppeecciiffyy tthhee sseerrvveerr nnaammee..

        --ddiissppllaayy _d_i_s_p_l_a_y_-_v_a_l_u_e oorr """"
                To specify a valid X display for use during integration
                operations.

   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 configuration 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, see also the --lloooopp option.  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 tthhee ssccrriipptt sshhoouulldd eexxiitt wwiitthh aa 11 aanndd tthhee
        cchhaannggee wwiillll ffaaiill..

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.

MMaannuuaall TTeessttss
         allows tests to be defined as _m_a_n_u_a_l which may be necessary if the
        test requires human interaction or some transient resource. Such tests
        can be problematic for automatic integrations and generally must have
        some means to pass without running during integrations. For this, and
        other, reasons most sites seek to avoid _m_a_n_u_a_l tests. There are a
        number of ways to code a test such that it will pass automatically
        during integrations. Just one example for shell script tests might be:


        CSTATE=`aesub -p $AEGIS_PROJECT -c $AEGIS_CHANGE '${state}'`
        if [ "$CSTATE" = "being_integrated" ]
        then
            echo "`basename $0` passes during integration"
            exit 0
        fi


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 /usr/pkg/com/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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

FFIILLEESS
        Control files are searched for in the _$_H_O_M_E directory.  They are named
        strategy.<project>, 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.24.2.D001
        Copyright (C) 1998-2005 Endocardial Solutions, Inc.

        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
        '



        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
        _o_p_t_i_o_n..aa.eeggiiss --IInntteeggrraattee__PPaassss [
        ]
        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
        _a_e_g_i_s   The
        _-_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
        configuration
        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
        the fileMawnhyenhiisttoirsyctoomomlistt(e_ed_.._g_.TRhCiSs aunsduaSlClCyS)recqaunirmeosditfhye tuhsee coofntsepnetcsifoifc
        "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
        integratTihoen m(osdeiefication times of all files modified since the beginning of
        _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
        has ocurOrnedsuacncdesasfftuelr ctohmepldeattiaobnasoefhtahsisbeceonmmuapndda,teadf,tetrhethe directory rename
        _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
        consisteTnhtesbtaasteelifnoer ltohcekdiusrautsieodn toof ecnosmumraendtshawthitchhenbeaesdeltionereraedmatihnes in a
        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
        possibleWhfeorreiandperpoejnedcetnthaisntaegnruamtbeerpaosfs bcroamnmcahnedss afcotrivdeifsfiemruelnttanberoaunsclhye,s it is
        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
        suggest Tshueit"aabelgeisre-gTreesstsi-oSnUGtgeesstts"fcoormmyaonudr mcahyanbgee,usbeadsetdoohnavteheaesgoiusrce
        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
        tests arAesseuvmeinnlgy tdhiasttrtihbeutteedstaicnrgoscsortrheelaftuinocntsioanrespaaccceu,rattheeraend that the
        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:

        Each cha+onge should be strongly focused, with no gratuitous file
        inclusions.  This avoids spurious correlations.

        Each ite+om of new functionality should be added in an individual change,
        rather than several together.  This strongly correlates tests with
        functionality.

        Each bug+oshould be fixed in an individual change, rather than several
        together.  This strongly correlates tests with functionality.

        Test cor+orelations 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
        a changeo.f 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.

                --RREEAAssoonn _t_e_x_t
        This option may be used to attach a comment to the change history
        generated by this command.  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
        csh%    The recommended alias for this command is                                                                                          alias aeipass 'aegis -ipass \!* -v'
        sh$                                                                                                                                        aeipass(){aegis -ipass "$@" -v}

        EERRRROORRSS
        the chanIgte iiss annoterarsosriginfed 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
        _a_e_g_i_s   The
        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
        this comSmeaend_a._e_g_i_s(1) for a list of environment variables which may affect
        See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for
        all commands executed by Aegis.

        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
        Copyrighateg(iCs) v1e9r9s1i,on1949.22,4.129.9D30,011994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Miller

                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
                tab(
        l r l.  )
        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.

        Branch_Details
                List full information about all the changes in the branch in
                large format.  This listing will recurse down the full branch
                tree.

        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_File_INventory
                This listing shows the filenames and their corresponding
                UUIDs.  When a file is renamed, its UUID remains constant.
                (If the UUID column has the filename in it, this is a
                backwards compatibility value, for accessing the file
                history.)

        Change_History
                List the history of a change.

        Change_INventory
                List the changes of a project with their UUIDs.

        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_Details
                List full information about all the changes in the project in
                large format.  This listing will recurse down the full branch
                tree below the project.

        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_File_INventory
                This listing shows the filenames and their corresponding
                UUIDs.  When a file is renamed, its UUID remains constant.
                (If the UUID column has the filename in it, this is a
                backwards compatibility value, for accessing the file
                history.)

        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.

        --PPaaggee--HHeeaaddeerr
                This option requests that page headings be present in listings
                and reports.  This is the default.

        --NNoo--PPaaggee--HHeeaaddeerr
                This option requests that page headings be omitted from
                listings and reports.

        --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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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_l_c_f(1)
                list change files

        _a_e_l_p_f(1)
                list project files

        _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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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/



aelcf(1)                                                              aelcf(1)



NNAAMMEE
        aelcf - list change files

SSYYNNOOPPSSIISS
        aaeellccff [ _o_p_t_i_o_n...  ]
        aaeellccff --HHeellpp
        aaeellccff --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
        The _a_e_l_c_f command is used to list the files which make up a change.
        The file names are printed one per line on the output.

        If there are no files matching your criteria (see below) the output
        will be empty, and no error will be issued.

        This is very similar to the _a_e_g_i_s _-_l _c_f listing, but it only lists
        file names, it lists no other attributes, and it is considerably
        faster.

        If your filenames have newlines in them, you have a problem.  You can
        use any of the _p_o_s_i_x___f_i_l_e_n_a_m_e___c_h_a_r_s_e_t, _d_o_s___f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d,
        _w_i_n_d_o_w_s___f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d, or _s_h_e_l_l___s_a_f_e___f_i_l_e_n_a_m_e_s fields in your
        project configuration file to prevent this.  See _a_e_n_f(1) and
        _a_e_p_c_o_n_f(5) for more information.

OOPPTTIIOONNSS
        The following options are understood:

        --AACCttiioonn _n_a_m_e
                This option may be used to specify which file actions you are
                interested in.  Valid values are "create", "modify", "remove",
                _e_t_c, as may be observed in the Action column of the _a_e_g_i_s _-_l
                _p_f listing.  The default is to list files with all actions
                except removed files.  You may use this option more than once.

        --NNoott__AACCttiioonn _n_a_m_e
                This option may be used to exclude an action from the listing.
                If no actions are explicitly included or excluded, the default
                is to exclude removed files.  You may use this option more
                than once.

        --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_l_c_f 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.

        --UUSSAAggee _n_a_m_e
                This option may be used to specify which file usages you are
                interested in.  Valid values are "source", "test", _e_t_c, as may
                be observed in the Usage column of the _a_e_g_i_s _-_l _p_f listing.
                The default is to list files with all usages.  You may use
                this option more than once.

        --NNoott__UUSSAAggee _n_a_m_e
                This option may be used to exclude usages from the listing.
                The default is to exclude no usages.  You may use this option
                more than once.

        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_c_f 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_c_f command will exit with a status of 1 on any error.  The
        _a_e_l_c_f 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

SSEEEE AALLSSOO
        _a_e_l(1)  list interesting things

        _a_e_l_p_f(1)
                list project files

        _a_e_n_f(1) add new files to be created by a change

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

CCOOPPYYRRIIGGHHTT
        aelcf version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        The aelcf program comes with ABSOLUTELY NO WARRANTY; for details use
        the '_a_e_l_c_f _-_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_c_f _-_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 3, 29 June 2007

        Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
        Everyone is permitted to copy and distribute verbatim copies of this
        license document, but changing it is not allowed.

                                       Preamble

        The GNU General Public License is a free, copyleft license for
        software and other kinds of works.

        The licenses for most software and other practical works are designed
        to take away your freedom to share and change the works.  By contrast,
        the GNU General Public License is intended to guarantee your freedom
        to share and change all versions of a program -- to make sure it
        remains free software for all its users.  We, the Free Software
        Foundation, use the GNU General Public License for most of our
        software; it applies also to any other work released this way by its
        authors.  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
        them 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 prevent others from denying you
        these rights or asking you to surrender the rights.  Therefore, you
        have certain responsibilities if you distribute copies of the
        software, or if you modify it: responsibilities to respect the freedom
        of others.

        For example, if you distribute copies of such a program, whether
        gratis or for a fee, you must pass on to the recipients the same
        freedoms that you received.  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.

        Developers that use the GNU GPL protect your rights with two steps:
        (1) assert copyright on the software, and (2) offer you this License
        giving you legal permission to copy, distribute and/or modify it.

        For the developers' and authors' protection, the GPL clearly explains
        that there is no warranty for this free software.  For both users' and
        authors' sake, the GPL requires that modified versions be marked as
        changed, so that their problems will not be attributed erroneously to
        authors of previous versions.

        Some devices are designed to deny users access to install or run
        modified versions of the software inside them, although the
        manufacturer can do so.  This is fundamentally incompatible with the
        aim of protecting users' freedom to change the software.  The
        systematic pattern of such abuse occurs in the area of products for
        individuals to use, which is precisely where it is most unacceptable.
        Therefore, we have designed this version of the GPL to prohibit the
        practice for those products.  If such problems arise substantially in
        other domains, we stand ready to extend this provision to those
        domains in future versions of the GPL, as needed to protect the
        freedom of users.

        Finally, every program is threatened constantly by software patents.
        States should not allow patents to restrict development and use of
        software on general-purpose computers, but in those that do, we wish
        to avoid the special danger that patents applied to a free program
        could make it effectively proprietary.  To prevent this, the GPL
        assures that patents cannot be used to render the program non-free.

        The precise terms and conditions for copying, distribution and
        modification follow.

                                 TERMS AND CONDITIONS

        0. Definitions.

        "This License" refers to version 3 of the GNU General Public License.

        "Copyright" also means copyright-like laws that apply to other kinds
        of works, such as semiconductor masks.

        "The Program" refers to any copyrightable work licensed under this
        License.  Each licensee is addressed as "you".  "Licensees" and
        "recipients" may be individuals or organizations.

        To "modify" a work means to copy from or adapt all or part of the work
        in a fashion requiring copyright permission, other than the making of
        an exact copy.  The resulting work is called a "modified version" of
        the earlier work or a work "based on" the earlier work.

        A "covered work" means either the unmodified Program or a work based
        on the Program.

        To "propagate" a work means to do anything with it that, without
        permission, would make you directly or secondarily liable for
        infringement under applicable copyright law, except executing it on a
        computer or modifying a private copy.  Propagation includes copying,
        distribution (with or without modification), making available to the
        public, and in some countries other activities as well.

        To "convey" a work means any kind of propagation that enables other
        parties to make or receive copies.  Mere interaction with a user
        through a computer network, with no transfer of a copy, is not
        conveying.

        An interactive user interface displays "Appropriate Legal Notices" to
        the extent that it includes a convenient and prominently visible
        feature that (1) displays an appropriate copyright notice, and (2)
        tells the user that there is no warranty for the work (except to the
        extent that warranties are provided), that licensees may convey the
        work under this License, and how to view a copy of this License.  If
        the interface presents a list of user commands or options, such as a
        menu, a prominent item in the list meets this criterion.

        1. Source Code.

        The "source code" for a work means the preferred form of the work for
        making modifications to it.  "Object code" means any non-source form
        of a work.

        A "Standard Interface" means an interface that either is an official
        standard defined by a recognized standards body, or, in the case of
        interfaces specified for a particular programming language, one that
        is widely used among developers working in that language.

        The "System Libraries" of an executable work include anything, other
        than the work as a whole, that (a) is included in the normal form of
        packaging a Major Component, but which is not part of that Major
        Component, and (b) serves only to enable use of the work with that
        Major Component, or to implement a Standard Interface for which an
        implementation is available to the public in source code form.  A
        "Major Component", in this context, means a major essential component
        (kernel, window system, and so on) of the specific operating system
        (if any) on which the executable work runs, or a compiler used to
        produce the work, or an object code interpreter used to run it.

        The "Corresponding Source" for a work in object code form means all
        the source code needed to generate, install, and (for an executable
        work) run the object code and to modify the work, including scripts to
        control those activities.  However, it does not include the work's
        System Libraries, or general-purpose tools or generally available free
        programs which are used unmodified in performing those activities but
        which are not part of the work.  For example, Corresponding Source
        includes interface definition files associated with source files for
        the work, and the source code for shared libraries and dynamically
        linked subprograms that the work is specifically designed to require,
        such as by intimate data communication or control flow between those
        subprograms and other parts of the work.

        The Corresponding Source need not include anything that users can
        regenerate automatically from other parts of the Corresponding Source.

        The Corresponding Source for a work in source code form is that same
        work.

        2. Basic Permissions.

        All rights granted under this License are granted for the term of
        copyright on the Program, and are irrevocable provided the stated
        conditions are met.  This License explicitly affirms your unlimited
        permission to run the unmodified Program.  The output from running a
        covered work is covered by this License only if the output, given its
        content, constitutes a covered work.  This License acknowledges your
        rights of fair use or other equivalent, as provided by copyright law.

        You may make, run and propagate covered works that you do not convey,
        without conditions so long as your license otherwise remains in force.
        You may convey covered works to others for the sole purpose of having
        them make modifications exclusively for you, or provide you with
        facilities for running those works, provided that you comply with the
        terms of this License in conveying all material for which you do not
        control copyright.  Those thus making or running the covered works for
        you must do so exclusively on your behalf, under your direction and
        control, on terms that prohibit them from making any copies of your
        copyrighted material outside their relationship with you.

        Conveying under any other circumstances is permitted solely under the
        conditions stated below.  Sublicensing is not allowed; section 10
        makes it unnecessary.

        3. Protecting Users' Legal Rights From Anti-Circumvention Law.

        No covered work shall be deemed part of an effective technological
        measure under any applicable law fulfilling obligations under article
        11 of the WIPO copyright treaty adopted on 20 December 1996, or
        similar laws prohibiting or restricting circumvention of such
        measures.

        When you convey a covered work, you waive any legal power to forbid
        circumvention of technological measures to the extent such
        circumvention is effected by exercising rights under this License with
        respect to the covered work, and you disclaim any intention to limit
        operation or modification of the work as a means of enforcing, against
        the work's users, your or third parties' legal rights to forbid
        circumvention of technological measures.

        4. Conveying Verbatim Copies.

        You may convey 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;
        keep intact all notices stating that this License and any non-
        permissive terms added in accord with section 7 apply to the code;
        keep intact all notices of the absence of any warranty; and give all
        recipients a copy of this License along with the Program.

        You may charge any price or no price for each copy that you convey,
        and you may offer support or warranty protection for a fee.

        5. Conveying Modified Source Versions.

        You may convey a work based on the Program, or the modifications to
        produce it from the Program, in the form of source code under the
        terms of section 4, provided that you also meet all of these
        conditions:

        a)  The work must carry prominent notices stating that you modified
            it, and giving a relevant date.

        b)  The work must carry prominent notices stating that it is released
            under this License and any conditions added under section 7.  This
            requirement modifies the requirement in section 4 to "keep intact
            all notices".

        c)  You must license the entire work, as a whole, under this License
            to anyone who comes into possession of a copy.  This License will
            therefore apply, along with any applicable section 7 additional
            terms, to the whole of the work, and all its parts, regardless of
            how they are packaged.  This License gives no permission to
            license the work in any other way, but it does not invalidate such
            permission if you have separately received it.

        d)  If the work has interactive user interfaces, each must display
            Appropriate Legal Notices; however, if the Program has interactive
            interfaces that do not display Appropriate Legal Notices, your
            work need not make them do so.

        A compilation of a covered work with other separate and independent
        works, which are not by their nature extensions of the covered work,
        and which are not combined with it such as to form a larger program,
        in or on a volume of a storage or distribution medium, is called an
        "aggregate" if the compilation and its resulting copyright are not
        used to limit the access or legal rights of the compilation's users
        beyond what the individual works permit.  Inclusion of a covered work
        in an aggregate does not cause this License to apply to the other
        parts of the aggregate.

        6. Conveying Non-Source Forms.

        You may convey a covered work in object code form under the terms of
        sections 4 and 5, provided that you also convey the machine-readable
        Corresponding Source under the terms of this License, in one of these
        ways:

        a)  Convey the object code in, or embodied in, a physical product
            (including a physical distribution medium), accompanied by the
            Corresponding Source fixed on a durable physical medium
            customarily used for software interchange.

        b)  Convey the object code in, or embodied in, a physical product
            (including a physical distribution medium), accompanied by a
            written offer, valid for at least three years and valid for as
            long as you offer spare parts or customer support for that product
            model, to give anyone who possesses the object code either (1) a
            copy of the Corresponding Source for all the software in the
            product that is covered by this License, on a durable physical
            medium customarily used for software interchange, for a price no
            more than your reasonable cost of physically performing this
            conveying of source, or (2) access to copy the Corresponding
            Source from a network server at no charge.

        c)  Convey individual copies of the object code with a copy of the
            written offer to provide the Corresponding Source.  This
            alternative is allowed only occasionally and noncommercially, and
            only if you received the object code with such an offer, in accord
            with subsection 6b.

        d)  Convey the object code by offering access from a designated place
            (gratis or for a charge), and offer equivalent access to the
            Corresponding Source in the same way through the same place at no
            further charge.  You need not require recipients to copy the
            Corresponding Source along with the object code.  If the place to
            copy the object code is a network server, the Corresponding Source
            may be on a different server (operated by you or a third party)
            that supports equivalent copying facilities, provided you maintain
            clear directions next to the object code saying where to find the
            Corresponding Source.  Regardless of what server hosts the
            Corresponding Source, you remain obligated to ensure that it is
            available for as long as needed to satisfy these requirements.

        e)  Convey the object code using peer-to-peer transmission, provided
            you inform other peers where the object code and Corresponding
            Source of the work are being offered to the general public at no
            charge under subsection 6d.

        A separable portion of the object code, whose source code is excluded
        from the Corresponding Source as a System Library, need not be
        included in conveying the object code work.

        A "User Product" is either (1) a "consumer product", which means any
        tangible personal property which is normally used for personal,
        family, or household purposes, or (2) anything designed or sold for
        incorporation into a dwelling.  In determining whether a product is a
        consumer product, doubtful cases shall be resolved in favor of
        coverage.  For a particular product received by a particular user,
        "normally used" refers to a typical or common use of that class of
        product, regardless of the status of the particular user or of the way
        in which the particular user actually uses, or expects or is expected
        to use, the product.  A product is a consumer product regardless of
        whether the product has substantial commercial, industrial or non-
        consumer uses, unless such uses represent the only significant mode of
        use of the product.

        "Installation Information" for a User Product means any methods,
        procedures, authorization keys, or other information required to
        install and execute modified versions of a covered work in that User
        Product from a modified version of its Corresponding Source.  The
        information must suffice to ensure that the continued functioning of
        the modified object code is in no case prevented or interfered with
        solely because modification has been made.

        If you convey an object code work under this section in, or with, or
        specifically for use in, a User Product, and the conveying occurs as
        part of a transaction in which the right of possession and use of the
        User Product is transferred to the recipient in perpetuity or for a
        fixed term (regardless of how the transaction is characterized), the
        Corresponding Source conveyed under this section must be accompanied
        by the Installation Information.  But this requirement does not apply
        if neither you nor any third party retains the ability to install
        modified object code on the User Product (for example, the work has
        been installed in ROM).

        The requirement to provide Installation Information does not include a
        requirement to continue to provide support service, warranty, or
        updates for a work that has been modified or installed by the
        recipient, or for the User Product in which it has been modified or
        installed.  Access to a network may be denied when the modification
        itself materially and adversely affects the operation of the network
        or violates the rules and protocols for communication across the
        network.

        Corresponding Source conveyed, and Installation Information provided,
        in accord with this section must be in a format that is publicly
        documented (and with an implementation available to the public in
        source code form), and must require no special password or key for
        unpacking, reading or copying.

        7. Additional Terms.

        "Additional permissions" are terms that supplement the terms of this
        License by making exceptions from one or more of its conditions.
        Additional permissions that are applicable to the entire Program shall
        be treated as though they were included in this License, to the extent
        that they are valid under applicable law.  If additional permissions
        apply only to part of the Program, that part may be used separately
        under those permissions, but the entire Program remains governed by
        this License without regard to the additional permissions.

        When you convey a copy of a covered work, you may at your option
        remove any additional permissions from that copy, or from any part of
        it.  (Additional permissions may be written to require their own
        removal in certain cases when you modify the work.)  You may place
        additional permissions on material, added by you to a covered work,
        for which you have or can give appropriate copyright permission.

        Notwithstanding any other provision of this License, for material you
        add to a covered work, you may (if authorized by the copyright holders
        of that material) supplement the terms of this License with terms:

        a)  Disclaiming warranty or limiting liability differently from the
            terms of sections 15 and 16 of this License; or

        b)  Requiring preservation of specified reasonable legal notices or
            author attributions in that material or in the Appropriate Legal
            Notices displayed by works containing it; or

        c)  Prohibiting misrepresentation of the origin of that material, or
            requiring that modified versions of such material be marked in
            reasonable ways as different from the original version; or

        d)  Limiting the use for publicity purposes of names of licensors or
            authors of the material; or

        e)  Declining to grant rights under trademark law for use of some
            trade names, trademarks, or service marks; or

        f)  Requiring indemnification of licensors and authors of that
            material by anyone who conveys the material (or modified versions
            of it) with contractual assumptions of liability to the recipient,
            for any liability that these contractual assumptions directly
            impose on those licensors and authors.

        All other non-permissive additional terms are considered "further
        restrictions" within the meaning of section 10.  If the Program as you
        received it, or any part of it, contains a notice stating that it is
        governed by this License along with a term that is a further
        restriction, you may remove that term.  If a license document contains
        a further restriction but permits relicensing or conveying under this
        License, you may add to a covered work material governed by the terms
        of that license document, provided that the further restriction does
        not survive such relicensing or conveying.

        If you add terms to a covered work in accord with this section, you
        must place, in the relevant source files, a statement of the
        additional terms that apply to those files, or a notice indicating
        where to find the applicable terms.

        Additional terms, permissive or non-permissive, may be stated in the
        form of a separately written license, or stated as exceptions; the
        above requirements apply either way.

        8. Termination.

        You may not propagate or modify a covered work except as expressly
        provided under this License.  Any attempt otherwise to propagate or
        modify it is void, and will automatically terminate your rights under
        this License (including any patent licenses granted under the third
        paragraph of section 11).

        However, if you cease all violation of this License, then your license
        from a particular copyright holder is reinstated (a) provisionally,
        unless and until the copyright holder explicitly and finally
        terminates your license, and (b) permanently, if the copyright holder
        fails to notify you of the violation by some reasonable means prior to
        60 days after the cessation.

        Moreover, your license from a particular copyright holder is
        reinstated permanently if the copyright holder notifies you of the
        violation by some reasonable means, this is the first time you have
        received notice of violation of this License (for any work) from that
        copyright holder, and you cure the violation prior to 30 days after
        your receipt of the notice.

        Termination of your rights under this section does not terminate the
        licenses of parties who have received copies or rights from you under
        this License.  If your rights have been terminated and not permanently
        reinstated, you do not qualify to receive new licenses for the same
        material under section 10.

        9. Acceptance Not Required for Having Copies.

        You are not required to accept this License in order to receive or run
        a copy of the Program.  Ancillary propagation of a covered work
        occurring solely as a consequence of using peer-to-peer transmission
        to receive a copy likewise does not require acceptance.  However,
        nothing other than this License grants you permission to propagate or
        modify any covered work.  These actions infringe copyright if you do
        not accept this License.  Therefore, by modifying or propagating a
        covered work, you indicate your acceptance of this License to do so.

        10. Automatic Licensing of Downstream Recipients.

        Each time you convey a covered work, the recipient automatically
        receives a license from the original licensors, to run, modify and
        propagate that work, subject to this License.  You are not responsible
        for enforcing compliance by third parties with this License.

        An "entity transaction" is a transaction transferring control of an
        organization, or substantially all assets of one, or subdividing an
        organization, or merging organizations.  If propagation of a covered
        work results from an entity transaction, each party to that
        transaction who receives a copy of the work also receives whatever
        licenses to the work the party's predecessor in interest had or could
        give under the previous paragraph, plus a right to possession of the
        Corresponding Source of the work from the predecessor in interest, if
        the predecessor has it or can get it with reasonable efforts.

        You may not impose any further restrictions on the exercise of the
        rights granted or affirmed under this License.  For example, you may
        not impose a license fee, royalty, or other charge for exercise of
        rights granted under this License, and you may not initiate litigation
        (including a cross-claim or counterclaim in a lawsuit) alleging that
        any patent claim is infringed by making, using, selling, offering for
        sale, or importing the Program or any portion of it.

        11. Patents.

        A "contributor" is a copyright holder who authorizes use under this
        License of the Program or a work on which the Program is based.  The
        work thus licensed is called the contributor's "contributor version".

        A contributor's "essential patent claims" are all patent claims owned
        or controlled by the contributor, whether already acquired or
        hereafter acquired, that would be infringed by some manner, permitted
        by this License, of making, using, or selling its contributor version,
        but do not include claims that would be infringed only as a
        consequence of further modification of the contributor version.  For
        purposes of this definition, "control" includes the right to grant
        patent sublicenses in a manner consistent with the requirements of
        this License.

        Each contributor grants you a non-exclusive, worldwide, royalty-free
        patent license under the contributor's essential patent claims, to
        make, use, sell, offer for sale, import and otherwise run, modify and
        propagate the contents of its contributor version.

        In the following three paragraphs, a "patent license" is any express
        agreement or commitment, however denominated, not to enforce a patent
        (such as an express permission to practice a patent or covenant not to
        sue for patent infringement).  To "grant" such a patent license to a
        party means to make such an agreement or commitment not to enforce a
        patent against the party.

        If you convey a covered work, knowingly relying on a patent license,
        and the Corresponding Source of the work is not available for anyone
        to copy, free of charge and under the terms of this License, through a
        publicly available network server or other readily accessible means,
        then you must either (1) cause the Corresponding Source to be so
        available, or (2) arrange to deprive yourself of the benefit of the
        patent license for this particular work, or (3) arrange, in a manner
        consistent with the requirements of this License, to extend the patent
        license to downstream recipients.  "Knowingly relying" means you have
        actual knowledge that, but for the patent license, your conveying the
        covered work in a country, or your recipient's use of the covered work
        in a country, would infringe one or more identifiable patents in that
        country that you have reason to believe are valid.

        If, pursuant to or in connection with a single transaction or
        arrangement, you convey, or propagate by procuring conveyance of, a
        covered work, and grant a patent license to some of the parties
        receiving the covered work authorizing them to use, propagate, modify
        or convey a specific copy of the covered work, then the patent license
        you grant is automatically extended to all recipients of the covered
        work and works based on it.

        A patent license is "discriminatory" if it does not include within the
        scope of its coverage, prohibits the exercise of, or is conditioned on
        the non-exercise of one or more of the rights that are specifically
        granted under this License.  You may not convey a covered work if you
        are a party to an arrangement with a third party that is in the
        business of distributing software, under which you make payment to the
        third party based on the extent of your activity of conveying the
        work, and under which the third party grants, to any of the parties
        who would receive the covered work from you, a discriminatory patent
        license (a) in connection with copies of the covered work conveyed by
        you (or copies made from those copies), or (b) primarily for and in
        connection with specific products or compilations that contain the
        covered work, unless you entered into that arrangement, or that patent
        license was granted, prior to 28 March 2007.

        Nothing in this License shall be construed as excluding or limiting
        any implied license or other defenses to infringement that may
        otherwise be available to you under applicable patent law.

        12. No Surrender of Others' Freedom.

        If 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 convey
        a covered work so as to satisfy simultaneously your obligations under
        this License and any other pertinent obligations, then as a
        consequence you may not convey it at all.  For example, if you agree
        to terms that obligate you to collect a royalty for further conveying
        from those to whom you convey the Program, the only way you could
        satisfy both those terms and this License would be to refrain entirely
        from conveying the Program.

        13. Use with the GNU Affero General Public License.

        Notwithstanding any other provision of this License, you have
        permission to link or combine any covered work with a work licensed
        under version 3 of the GNU Affero General Public License into a single
        combined work, and to convey the resulting work.  The terms of this
        License will continue to apply to the part which is the covered work,
        but the special requirements of the GNU Affero General Public License,
        section 13, concerning interaction through a network will apply to the
        combination as such.

        14. Revised Versions of this License.

        The Free Software Foundation may publish revised and/or new versions
        of the GNU 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 that a certain numbered version of the GNU General Public
        License "or any later version" applies to it, you have the option of
        following the terms and conditions either of that numbered version or
        of any later version published by the Free Software Foundation.  If
        the Program does not specify a version number of the GNU General
        Public License, you may choose any version ever published by the Free
        Software Foundation.

        If the Program specifies that a proxy can decide which future versions
        of the GNU General Public License can be used, that proxy's public
        statement of acceptance of a version permanently authorizes you to
        choose that version for the Program.

        Later license versions may give you additional or different
        permissions.  However, no additional obligations are imposed on any
        author or copyright holder as a result of your choosing to follow a
        later version.

        15. Disclaimer of Warranty.

        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.

        16. Limitation of Liability.

        IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
        WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR
        CONVEYS 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.

        17. Interpretation of Sections 15 and 16.

        If the disclaimer of warranty and limitation of liability provided
        above cannot be given local legal effect according to their terms,
        reviewing courts shall apply local law that most closely approximates
        an absolute waiver of all civil liability in connection with the
        Program, unless a warranty or assumption of liability accompanies a
        copy of the Program in return for a fee.

                             END OF TERMS AND CONDITIONS

                    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
        state 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) < year > < 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 3 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, see
            <http://www.gnu.org/licenses/>.

        Also add information on how to contact you by electronic and paper
        mail.

        If the program does terminal interaction, make it output a short
        notice like this when it starts in an interactive mode:

            <program>  Copyright (C) <year>  <name of author>
            This program 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, your
        program's commands might be different; for a GUI interface, you would
        use an "about box".

        You should also get your employer (if you work as a programmer) or
        school, if any, to sign a "copyright disclaimer" for the program, if
        necessary.  For more information on this, and how to apply and follow
        the GNU GPL, see <http://www.gnu.org/licenses/>.

        The GNU 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 GNU Lesser General Public License instead of this License.  But
        first, please read <http://www.gnu.org/philosophy/why-not-lgpl.html>.



aelock(1)                                                            aelock(1)



NNAAMMEE
        aelock - take a lock while a command runs

SSYYNNOOPPSSIISS
        aaeelloocckk [ _o_p_t_i_o_n...  ] _c_o_m_m_a_n_d
        aaeelloocckk --HHeellpp
        aaeelloocckk --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
        The _a_e_l_o_c_k_" command is used to take a project lock while a command
        runs.  This may be used to ensure that the project state is stable
        while it is being backed up.

        The named command is looked for as an attribute called aelock:_c_o_m_m_a_n_d
        within the _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field of the project configuration file.

        The command is then passed through the usual _a_e_s_u_b(5) substitutions
        before being executed.  The command is executed as the project owner.
        If the command returns with a non-zero exit status, the _a_e_l_o_c_k(1)
        command will return an exit status of one.

   SSeeccuurriittyy IIssssuueess
        This command is a potential security problem.  Because it takes a
        read-only lock of all active branches and changes in a project, from
        the trunk down, misuse of this command is a potential denial of
        service attack.  Thus, this command is limited to project
        administrators only.

        This command could have been designed to take an arbitrary command to
        execute, like _s_u_d_o(1), but this would have granted users, even project
        administrators, more privileges than usual.  For this reason, the
        command is held in a source controlled, fully reviewed project
        configuration file, and is simply indicated by name.

        The command is run as the project owner, not the executing user.  It
        has full write access (that's the way Unix permissions work).  Like
        _a_e_b(1), this means it can wreak havoc on the project baseline and
        meta-data.  Use with extreme care.

OOPPTTIIOONNSS
        The following options are understood:

        --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_l_o_c_k 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_o_c_k 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_o_c_k command will exit with a status of 1 on any error.  The
        _a_e_l_o_c_k 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aelock version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        The aelock program comes with ABSOLUTELY NO WARRANTY; for details use
        the '_a_e_l_o_c_k _-_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_o_c_k _-_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/



aelpf(1)                                                              aelpf(1)



NNAAMMEE
        aelpf - list project files

SSYYNNOOPPSSIISS
        aaeellppff [ _o_p_t_i_o_n...  ]
        aaeellppff --HHeellpp
        aaeellppff --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
        The _a_e_l_p_f command is used to list the files which make up a project.
        The file names are printed one per line on the output.

        This is very similar to the _a_e_g_i_s _-_l _p_f listing, but it only lists
        file names, it lists no other attributes, and it is considerably
        faster.

        If a change number is supplied on the command line, the files within
        that change will be excluded from the listing.  This allows build
        tools to distinguish between change files which are changing, from
        project files which are not, if they care.

        If your filenames have newlines in them, you have a problem.  You can
        use any of the _p_o_s_i_x___f_i_l_e_n_a_m_e___c_h_a_r_s_e_t, _d_o_s___f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d,
        _w_i_n_d_o_w_s___f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d, or _s_h_e_l_l___s_a_f_e___f_i_l_e_n_a_m_e_s fields in your
        project configuration file to prevent this.  See _a_e_n_f(1) and
        _a_e_p_c_o_n_f(5) for more information.

OOPPTTIIOONNSS
        The following options are understood:

        --AACCttiioonn _n_a_m_e
                This option may be used to specify which file actions you are
                interested in.  Valid values are "create", "modify", "remove",
                _e_t_c, as may be observed in the Action column of the _a_e_g_i_s _-_l
                _p_f listing.  The default is to list files with all actions
                except removed files.  You may use this option more than once.

        --NNoott__AACCttiioonn _n_a_m_e
                This option may be used to exclude an action from the listing.
                If no actions are explicitly included or excluded, the default
                is to exclude removed files.  You may use this option more
                than once.

        --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_l_p_f 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.

        --UUSSAAggee _n_a_m_e
                This option may be used to specify which file usages you are
                interested in.  Valid values are "source", "test", _e_t_c, as may
                be observed in the Usage column of the _a_e_g_i_s _-_l _p_f listing.
                The default is to list files with all usages.  You may use
                this option more than once.

        --NNoott__UUSSAAggee _n_a_m_e
                This option may be used to exclude usages from the listing.
                The default is to exclude no usages.  You may use this option
                more than once.

        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_p_f 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_p_f command will exit with a status of 1 on any error.  The
        _a_e_l_p_f 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

SSEEEE AALLSSOO
        _a_e_l(1)  list interesting things

        _a_e_n_f(1) add new files to be created by a change

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

CCOOPPYYRRIIGGHHTT
        aelpf version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        The aelpf program comes with ABSOLUTELY NO WARRANTY; for details use
        the '_a_e_l_p_f _-_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_p_f _-_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/



aels(1)                                                                aels(1)



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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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/



aemakegen(1)                                                      aemakegen(1)



NNAAMMEE
        aemakegen - generate a Makefile.in from file manifest

SSYYNNOOPPSSIISS
        aaeemmaakkeeggeenn [ _o_p_t_i_o_n... ][ _f_i_l_e_n_a_m_e... ]
        aaeemmaakkeeggeenn --HHeellpp
        aaeemmaakkeeggeenn --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
        The _a_e_m_a_k_e_g_e_n command is used to generate a Makefile.in file from a
        file manifest.  The file manifest is the set of file specified on the
        command line.

        If a project or change number is mentioned on the command line, the
        search path and file manifest is derived from Aegis meta-data.  File
        names on the command line are considered to be additional files, and
        will be added to the manifest.

        If no project or change number is mentioned on the command line, it is
        assumed that the files named on the command line are all the files the
        makefile is to be generated from.

   PPrroojjeecctt SSttrruuccttuurree
        The _a_e_m_a_k_e_g_e_n command assumes a particular project structure.  This is
        as follows:

        lib/    The _l_i_b directory contains C++ files to be compiled, and
                placed into the lib/lib.a file, to be linked with the other
                executables.

        _p_r_o_g/   Each executable is contained in its own directory.  Which
                directories contain programs are determined by the presence of
                a main.cc file.

        bin/    Each program is compiled and linked, with the executable
                placed in the _b_i_n directory.

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.

        --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.

        --SSCCRRiipptt _p_a_t_t_e_r_n
                This option may be used to nominate file which are scripts.
                The patterns are normal shell file name globbing patterns, so
                you may need to quote it.  You may use this option more than
                once.  Scripts in the script/ or scripts/ directories will be
                installed.  Scripts with a basename starting with test_ will
                be build to support the "make check" target.

        --SSeeaarrcchh__PPaatthh _d_i_r_e_c_t_o_r_y
                The search path option may be used to specify the search path.
                This option may be given more than once.

        --TTAArrggeett _n_a_m_e
                The option may be used to select the desired output format by
                name.  The known names are:

                automake
                        Generate _a_u_t_o_m_a_k_e(1) input, suitable for use as a top-
                        level Makefile.am file.

                makefile
                        Generate _m_a_k_e(1) input, suitable for as as a top-level
                        Makefile.in file.  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_m_a_k_e_g_e_n 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_m_a_k_e_g_e_n 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_a_k_e_g_e_n command will exit with a status of 1 on any error.  The
        _a_e_m_a_k_e_g_e_n 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aemakegen version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        The aemakegen program comes with ABSOLUTELY NO WARRANTY; for details
        use the '_a_e_m_a_k_e_g_e_n _-_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_a_k_e_g_e_n _-_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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

   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___c_o_m_m_a_n_d in the project configuration 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.

        --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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 or replaced 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 or replaced 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.

        --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 that the symbolic links, or
                hard links, or file copies, in the work area be updated to
                reflect the current state of the baseline.  This is controlled
                by the _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___s_t_y_l_e field of the project
                configuration file.  Only files which are not involved in the
                change are updated.  See also the "symbolic_links_preference"
                field of _a_e_u_c_o_n_f(5).  This option is the default, if
                meaningful for your configuration.  The name is an historical
                accident, hard links and file copies are included.

        --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 that no update of baseline
                mirror files take place.  This options is useful when you
                _d_e_f_i_n_i_t_e_l_y _k_n_o_w the files' up-to-date-ness isn't important
                right now; incorrect use of this option may have unanticipated
                build side-effects.  See also the "symbolic_links_preference"
                field of _a_e_u_c_o_n_f(5).  This option is the default, if not
                meaningful for your configuration.  The name is an historical
                accident, hard links and file copies are included.

        --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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 one or more files 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 _[ _o_l_d_1 _n_e_w_1 _[ _o_l_d_2
        _n_e_w_2 _] _]
        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.

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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

        --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 that the symbolic links, or
                hard links, or file copies, in the work area be updated to
                reflect the current state of the baseline.  This is controlled
                by the _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___s_t_y_l_e field of the project
                configuration file.  Only files which are not involved in the
                change are updated.  See also the "symbolic_links_preference"
                field of _a_e_u_c_o_n_f(5).  This option is the default, if
                meaningful for your configuration.  The name is an historical
                accident, hard links and file copies are included.

        --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 that no update of baseline
                mirror files take place.  This options is useful when you
                _d_e_f_i_n_i_t_e_l_y _k_n_o_w the files' up-to-date-ness isn't important
                right now; incorrect use of this option may have unanticipated
                build side-effects.  See also the "symbolic_links_preference"
                field of _a_e_u_c_o_n_f(5).  This option is the default, if not
                meaningful for your configuration.  The name is an historical
                accident, hard links and file copies are included.

        --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.

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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

        --RREEAAssoonn _t_e_x_t
                This option may be used to attach a comment to the change
                history generated by this command.  You will need to use
                quotes to insulate the spaces from the shell.

        --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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 or replaced 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 or replaced 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

        --RREEAAssoonn _t_e_x_t
                This option may be used to attach a comment to the change
                history generated by this command.  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 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 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.

        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.)  Files below this named directory which are
        already in the change, or in the project, will be ignored.  The
        _f_i_l_e___n_a_m_e___a_c_c_e_p_t and _f_i_l_e___n_a_m_e___r_e_j_e_c_t patterns in the project
        _a_e_g_i_s_._c_o_n_f file will also be applied, see _a_e_p_c_o_n_f(5) for more
        information.

   DDiirreeccttoorryy EExxaammppllee
        There are times when a command such as
                $ aaeennff ffuubbaarr//**
                aegis: project "example": change 42: "fubar/glorp" already in
                change
                aegis: project "example": change 42: found 1 fatal error, no
                new files added
                $
        will fail as shown.  There are several ways to deal with this, the
        easiest being to simply name the directory:
                $ aaeennff ffuubbaarr
                aegis: project "example": change 42: file "fubar/smiley" added
                aegis: project "example": change 42: file "fubar/frownie"
                added
                $
        You could also use the _f_i_n_d(1) command for arbitrarily complex file
        selection, but you must first exclude files that the above command
        excludes automatically:
                $ aaeellccff >> eexxcclluuddee
                $ aaeellppff >>>> eexxcclluuddee
                $ ffiinndd ffuubbaarr --ttyyppee ff || \\
                    ggrreepp --vv --ff eexxcclluuddee || \\
                    xxaarrggss aaeeggiiss ----nneeww--ffiillee --vv
                aegis: project "example": change 42: file "fubar/smiley" added
                aegis: project "example": change 42: file "fubar/frownie"
                added
                $
        If you aren't using the exclude list, the _f_i_n_d(1) command will need
        fine tuning for your development directory style.  If you are using
        the symlink-style, you will need to add the _f_i_n_d _-_n_l_i_n_k _1 option in
        addition to the _f_i_n_d _-_t_y_p_e _f option.
                $ ffiinndd ffuubbaarr --ttyyppee ff --nnlliinnkkss 11 || \\
                    xxaarrggss aaeeggiiss ----nneeww--ffiillee --vv
                aegis: project "example": change 42: file "fubar/smiley" added
                aegis: project "example": change 42: file "fubar/frownie"
                added
                $
        If you are using the full-copy development directory style, you will
        have to use the exclude list method, above.

   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
        configuration 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.

        allow_white_space_in_filenames = boolean;
                This field may be used to allow white space characters in file
                names.  This will allow the following characters to appear in
                file names: backspace (BS, \b, 0x08), horizontal tab (HT, \t,
                0x09), new line (NL, \n, 0x0A), vertical tab (VT, \v, 0x0B),
                form feed (FF, \f, 0x0C), and carriage return (CR, \r, 0x0D).
                Defaults to false if not set.

                Note that this field does not override other file name
                filters.  It will be necessary to explicitly set _s_h_e_l_l___s_a_f_e___-
                _f_i_l_e_n_a_m_e_s _= _f_a_l_s_e as well.  It will be necessary to set _d_o_s___-
                _f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d _= _f_a_l_s_e (the default) as well.  It will be
                necessary to set _p_o_s_i_x___f_i_l_e_n_a_m_e___c_h_a_r_s_e_t _= _f_a_l_s_e (the default)
                as well.

                The user must take great care to use the ${quote} substitution
                around all file names in commands in the project
                configuration.  And even then, substitutions which expect a
                space separated list of file names will have undefined
                results.

        allow_non_ascii_filenames = boolean;
                This field may be used to allow file names with non-ascii-
                printable characters in them.  Usually this would mean a UTF8
                or international charset of some kind.  Defaults to false if
                not set.

                Note that this field does not override other file name
                filters.  It will be necessary to explicitly set _s_h_e_l_l___s_a_f_e___-
                _f_i_l_e_n_a_m_e_s _= _f_a_l_s_e as well.  It will be necessary to set _d_o_s___-
                _f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d _= _f_a_l_s_e (the default) as well.  It will be
                necessary to set _p_o_s_i_x___f_i_l_e_n_a_m_e___c_h_a_r_s_e_t _= _f_a_l_s_e (the default)
                as well.

        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.

   FFiillee AAccttiioonn AAddjjuussttmmeenntt
        When this command runs, it first checks the change files against the
        projects files.  If there are inconsistencies, the file actions will
        be adjusted as follows:

        create  If a file is being created, but another change set is
                integrated which also creates the file, the file action in the
                change set still being developed will be adjusted to "modify".

        modify  If a file is being modified, but another change set is
                integrated which removes the file, the file action in the
                change set still being developed will be adjusted to "create".

        remove  If a file is being removed, but another change set is
                integrated which removes the file, the file will be dropped
                from the change set still being developed.

   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 configuration 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.

        --CCOONNFFIIGGuurreedd
                This option may be used to specify that the file is an Aegis
                project configuration file.  The default project configuration
                file is called _a_e_g_i_s_._c_o_n_f, however any file name may be used.
                You may also use more than one file, splitting the content
                across several files, all of which must be of this type.

        --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 or replaced 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 or replaced 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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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 or replaced 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 or replaced 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.

        --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 that the symbolic links, or
                hard links, or file copies, in the work area be updated to
                reflect the current state of the baseline.  This is controlled
                by the _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___s_t_y_l_e field of the project
                configuration file.  Only files which are not involved in the
                change are updated.  See also the "symbolic_links_preference"
                field of _a_e_u_c_o_n_f(5).  This option is the default, if
                meaningful for your configuration.  The name is an historical
                accident, hard links and file copies are included.

        --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 that no update of baseline
                mirror files take place.  This options is useful when you
                _d_e_f_i_n_i_t_e_l_y _k_n_o_w the files' up-to-date-ness isn't important
                right now; incorrect use of this option may have unanticipated
                build side-effects.  See also the "symbolic_links_preference"
                field of _a_e_u_c_o_n_f(5).  This option is the default, if not
                meaningful for your configuration.  The name is an historical
                accident, hard links and file copies are included.

        --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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.  Project aliases have fewer limits than project
        names: they must not need shell quoting, that's all.

   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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 _/_u_s_r_/_p_k_g_/_c_o_m_/_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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 _/_u_s_r_/_p_k_g_/_c_o_m_/_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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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
                and branching.



aegis -New_ReViewer(1)                                  aegis -New_ReViewer(1)

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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 configuration 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
        configuration 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.

        allow_white_space_in_filenames = boolean;
                This field may be used to allow white space characters in file
                names.  This will allow the following characters to appear in
                file names: backspace (BS, \b, 0x08), horizontal tab (HT, \t,
                0x09), new line (NL, \n, 0x0A), vertical tab (VT, \v, 0x0B),
                form feed (FF, \f, 0x0C), and carriage return (CR, \r, 0x0D).
                Defaults to false if not set.

                Note that this field does not override other file name
                filters.  It will be necessary to explicitly set _s_h_e_l_l___s_a_f_e___-
                _f_i_l_e_n_a_m_e_s _= _f_a_l_s_e as well.  It will be necessary to set _d_o_s___-
                _f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d _= _f_a_l_s_e (the default) as well.  It will be
                necessary to set _p_o_s_i_x___f_i_l_e_n_a_m_e___c_h_a_r_s_e_t _= _f_a_l_s_e (the default)
                as well.

                The user must take great care to use the ${quote} substitution
                around all file names in commands in the project
                configuration.  And even then, substitutions which expect a
                space separated list of file names will have undefined
                results.

        allow_non_ascii_filenames = boolean;
                This field may be used to allow file names with non-ascii-
                printable characters in them.  Usually this would mean a UTF8
                or international charset of some kind.  Defaults to false if
                not set.

                Note that this field does not override other file name
                filters.  It will be necessary to explicitly set _s_h_e_l_l___s_a_f_e___-
                _f_i_l_e_n_a_m_e_s _= _f_a_l_s_e as well.  It will be necessary to set _d_o_s___-
                _f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d _= _f_a_l_s_e (the default) as well.  It will be
                necessary to set _p_o_s_i_x___f_i_l_e_n_a_m_e___c_h_a_r_s_e_t _= _f_a_l_s_e (the default)
                as well.

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 or replaced 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 or replaced 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.

        --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 that the symbolic links, or
                hard links, or file copies, in the work area be updated to
                reflect the current state of the baseline.  This is controlled
                by the _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___s_t_y_l_e field of the project
                configuration file.  Only files which are not involved in the
                change are updated.  See also the "symbolic_links_preference"
                field of _a_e_u_c_o_n_f(5).  This option is the default, if
                meaningful for your configuration.  The name is an historical
                accident, hard links and file copies are included.

        --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 that no update of baseline
                mirror files take place.  This options is useful when you
                _d_e_f_i_n_i_t_e_l_y _k_n_o_w the files' up-to-date-ness isn't important
                right now; incorrect use of this option may have unanticipated
                build side-effects.  See also the "symbolic_links_preference"
                field of _a_e_u_c_o_n_f(5).  This option is the default, if not
                meaningful for your configuration.  The name is an historical
                accident, hard links and file copies are included.

        --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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

        The output of the _a_e_p_a_t_c_h _-_s_e_n_d command is a normal Unix patch, as you
        would produce using _d_i_f_f(1), _b_z_i_p_2(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 _b_u_n_z_i_p_2(1) command and applied with the
        normal _p_a_t_c_h(1) command.

        The compression algorithm is selectable via the --ccoommpprreessssiioonn--aallggoorriitthhmm
        option, see the OPTIONS section, below, for details.  The
        --ccoommppaattiibbiilliittyy option also understands compression needs.

   GGeenneerraattiinngg TTrraaddiittiioonnaall PPaattcchheess
        If you wish to send "traditional" patches to developers who are not
        using Aegis to manage the sources at their end, you can use the
        following options:
                aepatch -send -cte=none -comp-alg=none
        This says to use no Content Transfer Encoding, and no compression.  If
        you wish to also omit the Aegis meta data, you can use the following
        options:
                aepatch -send -cte=none -nocomp -compat=4.16
        This setting for the -compatibility option omits all Aegis extensions.

        By default, a context diff is generated.  Some projects prefer to use
        the unified diff format.  This is controlled by the _p_a_t_c_h___d_i_f_f___c_o_m_m_a_n_d
        field of the project configuration file (see _a_e_p_c_o_n_f(5) for more
        information).  If you have GNU diff, use the following command:
                patch_diff_command = "set +e; "
                    "diff -u --text "
                    "-L ${quote $index} -L ${quote $index} "
                    "${quote $original} ${quote $input} > ${quote $output}; "
                    "test $? -le 1"";
        This setting will cause the _a_e_p_a_t_c_h(1) command to produce unified diff
        patches instead of context diff patches.  As you can see from this
        command, the _a_e_p_a_t_c_h(1) command is onlu of use if you have text source
        files; it produces less than ideal results for binary files.

   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PAATTiibbiilliittyy _v_e_r_s_i_o_n_-_n_u_m_b_e_r
                This option may be used to specify the version of _a_e_p_a_t_c_h(1)
                which will be _r_e_c_e_i_v_i_n_g this change set.  This information is
                used to select which features to include in the data, and
                which to omit.  By default, the latest feature set will be
                used.

        --ccoommpprreessssiioonn--aallggoorriitthhmm _n_a_m_e
                This option may be used to specify the compression to be used.
                They are listed on order of compression effeciency.

                none    Use no compression (not always meaningful for all
                        commands).

                gzip    Use the compression used by the _g_z_i_p(1) program.

                bzip2   Use the compression used by the _b_z_i_p_2(1) program.

                More compression algorithms may be added in the future.

        --CCOOMMPPrreessss
                This option is deprecated in favour of the --ccoommpp--aallgg==ggzziipp or
                --ccoommpp--aallgg==bbzziipp22 options.

        --NNoo__CCOOMMPPrreessss
                This options is deprecated in favour of the --ccoommpp--aallgg==nnoonnee
                option.

        --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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 project delta
                from its change number.

        --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.

        --SSiiggnneedd__OOffff__BByy
                This option may be used to have a Signed-off-by: line appended
                to the change set description.

        --NNoo__SSiiggnneedd__OOffff__BByy
                This option may be used to prevent a Signed-off-by: line from
                being appended to the change set description.

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.

        --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 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aepatch version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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/



aepromptcmd(1)                                                  aepromptcmd(1)



NNAAMMEE
        aepromptcmd - change prompt color by change state

SSYYNNOOPPSSIISS
        PROMPT_COMMAND="aepromptcmd"

DDEESSCCRRIIPPTTIIOONN
        The _b_a_s_h(1) shell has an interesting property:  If the PROMPT_COMMAND
        vaiable is set, the value is executed as a command prior to issuing
        each primary prompt.  (Actually, it can be a seties of semicolon
        separated commands.)

        In order to change the text back to normal, the PS1 variable needs to
        have "\33[0m" somewhere near the end, otherwise things can get a
        little difficult to read.  If you are using _b_a_s_h(1), you need to let
        it know these are unprintable (like this: "\[\33[0m\]") or it messes
        up command line editing.

        The _a_e_p_r_o_m_p_t_c_m_d command is used to set the color of the prompt, based
        on the state of the current change.  This is an idea taken from Kent
        Beck's _T_e_s_t _D_r_i_v_e_n _D_e_v_e_l_o_p_m_e_n_t book.  If the change is 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 state and it needs to be built, the
        prompt is red; if it is built but it needs to be tested, the prompt is
        magenta, otherwise it is green.

EExxaammppllee
        Here is a short script you can put in your .bashrc file to turn on
        prompt coloring:
                if [ "$PS1" ] then
                    case "$PROMPT_COMMAND" in
                    "" )      PROMPT_COMMAND="aepromptcmd"
                     PS1="$PS1^[[0m"      ;;
                    *aepromptcmd*)      ;;
                    *)      PROMPT_COMMAND="$PROMPT_COMMAND;aepromptcmd"
                     PS1="$PS1\[\33[0m\]"      ;;
                    esac
                    export PROMPT_COMMAND
                    export PS1 fi
        Note that this usually leaves your prompt default (black) when you are
        not somewhere inside a development directory.

   LLiimmiittaattiioonnss
        The _a_e_p_r_o_m_p_t_c_m_d command uses the ANSI color escape sequences.  It
        really should to use the _t_i_g_e_t_s_t_r(3) function from _t_e_r_m_i_n_f_o(3) to do
        this in a terminal independent way.  Code contributions welcome.

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.

        --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_p_r_o_m_p_t_c_m_d program.

        --VVeerrbboossee
                By default error messages are supressed, so that the prompt
                will be normal when you are outside an Aegis work area.  Use
                this option to tuen error messages back on.

        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_r_o_m_p_t_c_m_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XIITT SSTTAATTUUSS
        The _a_e_p_r_o_m_p_t_c_m_d command will exit with a status of 1 on any error.
        The _a_e_p_r_o_m_p_t_c_m_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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aepromptcmd version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        The aepromptcmd program comes with ABSOLUTELY NO WARRANTY; for details
        use the '_a_e_p_r_o_m_p_t_c_m_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_p_r_o_m_p_t_c_m_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/



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_/_p_k_g_/_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_/_p_k_g_/_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:

        --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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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 project delta
                from its change number.

        --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.

        --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.)

        --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.

        --PPaaggee--HHeeaaddeerr
                This option requests that page headings be present in listings
                and reports.  This is the default.

        --NNoo--PPaaggee--HHeeaaddeerr
                This option requests that page headings be omitted from
                listings and reports.

        --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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aereport version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

        --RREEAAssoonn _t_e_x_t
                This option may be used to attach a comment to the change
                history generated by this command.  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 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

        --RREEAAssoonn _t_e_x_t
                This option may be used to attach a comment to the change
                history generated by this command.  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 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aegis version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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/



aerevml(1)                                                          aerevml(1)



NNAAMMEE
        aerevml - send and receive RevML change sets

SSYYNNOOPPSSIISS
        aaeerreevvmmll --SSeenndd [ _o_p_t_i_o_n... ]
        aaeerreevvmmll --RReecceeiivvee [ _o_p_t_i_o_n... ]
        aaeerreevvmmll --HHeellpp
        aaeerreevvm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_r_e_v_m_l command is used to send and receive change sets using the
        RevML format.  This format is independent of any particular VC/SCM
        tool or vendor.  It allows export from any RevML capable VC/SCM system
        and import into any other RevML capable VC/SCM system.

        The basic function is to reproduce a change, so a command like
                aerevml -send | aerevml -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
                aerevml -send | _e_-_m_a_i_l | aerevml -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
                aerevml -send | encrypt | _e_-_m_a_i_l | decrypt | aerevml -receive
        The mechanism is also designed to allow web-based distribution such as
                aerevml -send | _w_e_b_-_s_e_r_v_e_r _-_> _w_e_b_-_b_r_o_w_s_e_r | aerevml -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.

   RReevvMMLL PPrroojjeecctt
        The RevML format is used for copying revision controlled files and
        change sets between various SCM repositories.  The RevML project may
        be found at http://public.perforce.com/public/revml/index.html

        The latest RevML DTD may be found at http://public.perforce.com/-
        public/revml/revml.dtd

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PAATTiibbiilliittyy _v_e_r_s_i_o_n_-_n_u_m_b_e_r
                This option may be used to specify the version of _a_e_r_e_v_m_l(1)
                which will be _r_e_c_e_i_v_i_n_g this change set.  This information is
                used to select which features to include in the data, and
                which to omit.  By default, the latest feature set will be
                used.

        --ccoommpprreessssiioonn--aallggoorriitthhmm _n_a_m_e
                This option may be used to specify the compression to be used.
                They are listed on order of compression effeciency.

                none    Use no compression (not always meaningful for all
                        commands).

                gzip    Use the compression used by the _g_z_i_p(1) program.

                bzip2   Use the compression used by the _b_z_i_p_2(1) program.

                More compression algorithms may be added in the future.

        --CCOOMMPPrreessss
                This option is deprecated in favour of the --ccoommpp--aallgg==ggzziipp or
                --ccoommpp--aallgg==bbzziipp22 options.

        --NNoo__CCOOMMPPrreessss
                This options is deprecated in favour of the --ccoommpp--aallgg==nnoonnee
                option.

        --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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 project delta
                from its change number.

        --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.

        --MMiimmee__HHeeaaddeerrss
                This option may be use to force the presence of mime headers
                in the output, in circumstances they would usually be absent.

        --NNoo__MMiimmee__HHeeaaddeerrss
                This option may be use to force the absence of mime headers in
                the output, in circumstances where they would usually be
                present.

        --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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Siiggnneedd__OOffff__BByy
                This option may be used to have a Signed-off-by: line appended
                to the change set description.

        --NNoo__SSiiggnneedd__OOffff__BByy
                This option may be used to prevent a Signed-off-by: line from
                being appended to the change set description.

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_r_e_v_m_l 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.)

        --IIggnnoorree__UUUUIIDD
                This option may be used to ignore the UUID, if present, of the
                incoming change set.

        --NNoo__IIggnnoorree__UUUUIIDD
                This option force the _a_e_r_e_v_m_l command to use the change set's
                UUID.  This is the default.

        --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 configuration files, shell
          scripts, code generators, _e_t_c here to specify files in addition to
          the project configuration 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_r_e_v_m_l _-_-_s_e_n_d has constructed the
          package and before _a_e_r_e_v_m_l _-_-_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 aerevml command.  It is expected that the
          aerevml 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 change sets 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_r_e_v_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_r_e_v_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_r_e_v_m_l command will exit with a status of 1 on any error.  The
        _a_e_r_e_v_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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aerevml version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        The aerevml program comes with ABSOLUTELY NO WARRANTY; for details use
        the '_a_e_r_e_v_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_r_e_v_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/



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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

   FFiillee AAccttiioonn AAddjjuussttmmeenntt
        When this command runs, it first checks the change files against the
        projects files.  If there are inconsistencies, the file actions will
        be adjusted as follows:

        create  If a file is being created, but another change set is
                integrated which also creates the file, the file action in the
                change set still being developed will be adjusted to "modify".

        modify  If a file is being modified, but another change set is
                integrated which removes the file, the file action in the
                change set still being developed will be adjusted to "create".

        remove  If a file is being removed, but another change set is
                integrated which removes the file, the file will be dropped
                from the change set still being developed.

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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 or replaced 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 or replaced 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

        --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 that the symbolic links, or
                hard links, or file copies, in the work area be updated to
                reflect the current state of the baseline.  This is controlled
                by the _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___s_t_y_l_e field of the project
                configuration file.  Only files which are not involved in the
                change are updated.  See also the "symbolic_links_preference"
                field of _a_e_u_c_o_n_f(5).  This option is the default, if
                meaningful for your configuration.  The name is an historical
                accident, hard links and file copies are included.

        --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 that no update of baseline
                mirror files take place.  This options is useful when you
                _d_e_f_i_n_i_t_e_l_y _k_n_o_w the files' up-to-date-ness isn't important
                right now; incorrect use of this option may have unanticipated
                build side-effects.  See also the "symbolic_links_preference"
                field of _a_e_u_c_o_n_f(5).  This option is the default, if not
                meaningful for your configuration.  The name is an historical
                accident, hard links and file copies are included.

        --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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 default configuration requires only a single reviewer for each
        change set.  It is possible to have more than one reviewer, and/or
        project specific policies about who may review certain files, by
        configuring Aegis to use an external review policy command.

        The state transition performed depends on the settings of the review_-
        policy_command field of the project configuration file and the
        develop_end_action field of the project attributes.

        review_policy_command not set:
            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.

        review_policy_command set:
            The command will be executed, and the exit status examined.

            Zero:
                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.

            Non-Zero:
                    The setting of the develop_end_action of the project
                    attributes is examined:

                    goto_awaiting_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.

                    Otherwise:
                        The change will remain in the _b_e_i_n_g _r_e_v_i_e_w_e_d state.
                        It is expected that a future review_policy_command
                        execution will satisfy the project criteria and exit
                        zero.

                                              awaiting
                                               review

                                                     review
                                                       pass

            being          being review        being
           reviewed       reviewed pass       reviewed
               |
               |review
               |pass

           awaiting
          integration



        It is possible to avoid the _b_e_i_n_g _r_e_v_i_e_w_e_d state altogether by setting
        the _d_e_v_e_l_o_p___e_n_d___a_c_t_i_o_n field of the project confituration file to
        _g_o_t_o___a_w_a_i_t_i_n_g___i_n_t_e_g_r_a_t_i_o_n.

        If the project configuration file has specified the presence of
        Signed-off-by: lines, a suitable line containing the current user's
        email address will be appended to the change description.

        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 a 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 attach a comment to the change
                history generated by this command.  You will need to use
                quotes to insulate the spaces from the shell.

        --SSiiggnneedd__OOffff__BByy
                This option may be used to have a Signed-off-by: line appended
                to the change set description.

        --NNoo__SSiiggnneedd__OOffff__BByy
                This option may be used to prevent a Signed-off-by: line from
                being appended to the change set description.

        --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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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_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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

        --RREEAAssoonn _t_e_x_t
                This option may be used to attach a comment to the change
                history generated by this command.  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 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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

        --FFiillee _f_i_l_e_n_a_m_e
                Take the text to be substituted 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_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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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/



aesubunit(1)                                                      aesubunit(1)



NNAAMMEE
        aesubunit - run SubUnit tests

SSYYNNOOPPSSIISS
        aaeessuubbuunniitt [ _o_p_t_i_o_n...  ] _f_i_l_e_n_a_m_e...
        aaeessuubbuunniitt --HHeellpp
        aaeessuubbuunniitt --VVEERRSSiioonn

DDEESSCCRRIIPPTTIIOONN
        The aaeessuubbuunniitt command is used to invoke tests via the http://-
        www.robertcollins.net/unittest/subunit unit testing interface.

TThhee sshhaappee ooff tthhee eexxtteerrnnaall uunniitttteesstt sshhoouulldd nnoott nneeeedd ttoo bbee kknnoowwnn aa--pprriioorrii..
        After the test has run, tests should still exist as discrete objects,
        so that anything taking a reference to them doesn't get 50 copies of
        the same object.

TThhee _a_e_s_u_b_u_n_i_t ccoommmmaanndd mmaayy bbee uusseedd ttoo rreeppllaaccee tthhee
        _t_e_s_t___c_o_m_m_a_n_d or _b_a_t_c_h___t_e_s_t___c_o_m_m_a_n_d fields of the project configuration
        file.

   CCoonnttrrooll PPrroottooccooll
        The results of the test are obtained by examining the standard output
        of the tests as they run.  The text is meant to be human readable, so
        that tests may run stand-alone.

        Tests should ideally print a header of the form
                test
                testing
                test: _t_e_s_t _l_a_b_e_l
                testing: _t_e_s_t _l_a_b_e_l
        A successful test will produce lines of the form
                success
                success:
                successful _t_e_s_t _l_a_b_e_l
                successful: _t_e_s_t _l_a_b_e_l
        A test failure will produce text of the form
                failure _t_e_s_t _l_a_b_e_l failure: _t_e_s_t _l_a_b_e_l failure _t_e_s_t _l_a_b_e_l [ ]
                failure: _t_e_s_t _l_a_b_e_l [ ]
        The square brackets indicate text which may describe the test in more
        detail.  It will be printed on the standartd output by the _a_e_s_u_b_u_n_i_t
        program.

        A test which produces no result (neither succes nor failure) uses the
        following forms
                error: _t_e_s_t _l_a_b_e_l error: _t_e_s_t _l_a_b_e_l [ ]
        In general, unexpected output from the test will be sent through to
        the _a_e_s_u_b_u_n_i_t standard output.

        If a subunit test terminates with an exit status other than zero, this
        is taken to be a no result indication for that test.

OOPPTTIIOONNSS
        The following options are understood:

        --BBaattcchh  This option may be useed to specify that a batch test should
                be performed, and produce results in the appropriate form.

        --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.

        --HHeellpp
                This option may be used to obtain more information about how
                to use the _a_e_s_u_b_u_n_i_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_s_u_b_u_n_i_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_s_u_b_u_n_i_t command will exit with a status of 1 on any error.  The
        _a_e_s_u_b_u_n_i_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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aesubunit version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        The aesubunit program comes with ABSOLUTELY NO WARRANTY; for details
        use the '_a_e_s_u_b_u_n_i_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_u_b_u_n_i_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/



aesvt(1)                                                              aesvt(1)



NNAAMMEE
        aesvt - simple version tool

SSYYNNOOPPSSIISS
        aaeessvvtt --CCHHeecckk__OOuutt --HHIIssttoorryy _f_i_l_e --FFiillee _o_u_t_p_u_t_-_f_i_l_e [ --ee _e_d_i_t ]
        aaeessvvtt --CCHHeecckk__IInn --HHIIssttoorryy _f_i_l_e --FFiillee _i_n_p_u_t_-_f_i_l_e [ --ee _e_d_i_t ] [
        _n_a_m_e==_v_a_l_u_e ...]
        aaeessvvtt --LLiisstt --HHIIssttoorryy _f_i_l_e
        aaeessvvtt --QQuueerryy --HHIIssttoorryy _f_i_l_e
        aaeessvvtt --VVeerrssiioonn

DDEESSCCRRIIPPTTIIOONN
        The _a_e_s_v_t program may be used to manage history version files.  This
        is a minimalist history tool, which makes no provision for managing a
        work area.

        It is able to cope with binary files, and with reasonable efficiently
        if they are not too large.

        It has good end-to-end properties because it keeps a checksum for each
        file version, and a checksum for the whole history file.

        There is no provision for keyword substitution of any kind.  A check-
        out will exactly reproduce the input file.  A check-in will never
        alter the input file.


OOPPTTIIOONNSS
        The following options are understood:

        --HHiissttoorryy _h_i_s_t_o_r_y_-_f_i_l_e
                This option is used to specify the name of the history file.

        --FFiillee _f_i_l_e_-_n_a_m_e
                This option is used to specify the name of the input or output
                file.  On check-out, the file name "-" is understood to mean
                the standard output.  There is nnoo equivalent for check-in.

        --EEddiitt _e_d_i_t_-_n_u_m_b_e_r
                This option is used to specify the edit number (version
                number).  On check-out, if no version number is specified, the
                most recent version is given.  On check-in, if no version
                number is specifiued (and it usually isn't), the previous
                version will have one added to it, or version 1 will be used
                if this is the first check-in.

        --CCHHeecckk__IInn
                This option is used to check a file into the history.

        --CCHHeecckk__OOuutt
                This option is used to check-out a file from the history.

        --ccoommpprreessssiioonn--aallggoorriitthhmm _n_a_m_e
                This option may be used to specify the compression to be used.
                They are listed on order of compression effeciency.

                none    Use no compression (not always meaningful for all
                        commands).

                gzip    Use the compression used by the _g_z_i_p(1) program.

                bzip2   Use the compression used by the _b_z_i_p_2(1) program.

                More compression algorithms may be added in the future.

        --CCOOMMPPrreessss
                This option is deprecated in favour of the --ccoommpp--aallgg==ggzziipp or
                --ccoommpp--aallgg==bbzziipp22 options.

        --NNoo__CCOOMMPPrreessss
                This options is deprecated in favour of the --ccoommpp--aallgg==nnoonnee
                option.

        --LLiisstt   This option is used to list the file's history.

        --QQuueerryy  This option is used to query edit number of most recent check-
                in.

        --VVeerrssiioonn
                This option is used to print version number.

        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_s_v_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_s_v_t command will exit with a status of 1 on any error.  The
        _a_e_s_v_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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

FFIILLEE FFOORRMMAATT
        Each version in the history file consists of an RFC822 header, plus
        the file contents.  The header includes (at least) the Content-Length,
        used to remember the length of the file data in bytes; the Checksum,
        used to remember the Adler32 checksum of the file data; and Version,
        used to remember the version number.  The file data can be text or
        binary, because its length is determined by the header.  There is no
        quoting mechanism of any kind for the data.  Except for the mandatory
        fields, additional user-defined us-ascii meta-data may also be stored
        in the header.  There is no diff or delta of any kind for any version.

        This combination of header and data has good end-to-end behaviour,
        because there is a checksum to validate the file data against.  Bad
        blocks in the data will be detected then next time a check-in or
        check-out is attempted.

        The format of the history file consists of one or more file versions
        with the above layout, joined head-to-tail with no separators or
        boundary indicators of any kind.  The versions are in descending
        order, from most recent (greatest edit number) to least recent
        (version number one).  To determine where one version stops and the
        next version starts, use the Content-Length field in the header.  The
        entire history file is then compressed using the bunzip2 algorithm
        (via libbz2).  There is no diff or delta of any kind in the history
        file.

        The advantage of compressing the file is that there is usually a very
        high redundancy between file versions.  For example, if two identical
        versions are checked in (not necessarily sequentially) the second copy
        will compress to only a few bytes.  Unlike _d_i_f_f(1) style deltas, this
        also copes very will with moving blocks of data within the file.  The
        use of bunzip2 formatting means there is also a checksum for the whole
        history file, which allows you to detect bad blocks in the header
        portions; it also means there is a simple way to extract the data from
        a history file even without the _a_e_s_v_t program, or for testing, or
        because you are curious.

        You can actually choose from a number of compression algorithms,
        including GNU Zip and bunzip2, via the -compression-algorithm option.
        More copmpresison algoritthms may be added in the future.  The best
        available comression is used, because this results in the most compact
        history files.  Future versions will always be able to access the
        compression used by earlier versions.

   EEnndd--TToo--EEnndd IIssssuueess
        See also Saltzer, J.H. _e_t _a_l (1981) _E_n_d_-_t_o_-_e_n_d _a_r_g_u_m_e_n_t_s _i_n _s_y_s_t_e_m
        _d_e_s_i_g_n, http://web.mit.edu/Saltzer/www/publications/endtoend/-
        endtoend.pdf

   XXddeellttaa
        This style of history file was inspired by RFC 3284 - _T_h_e _V_C_D_I_F_F
        _G_e_n_e_r_i_c _D_i_f_f_e_r_e_n_c_i_n_g _a_n_d _C_o_m_p_r_e_s_s_i_o_n _D_a_t_a _F_o_r_m_a_t.  While the _a_e_s_v_t
        format does not use RFC3284 internally, the arguments for compression
        across file versions are just as relevant.

CCOOPPYYRRIIGGHHTT
        aesvt version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        The aesvt program comes with ABSOLUTELY NO WARRANTY; for details use
        the '_a_e_s_v_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_v_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 -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 [ _o_p_t_i_o_n...  ][ _n_a_m_e==_v_a_l_u_e ][ _f_i_l_e_-_n_a_m_e...  ]
        aaeeggiiss --TTeesstt --IINNDDeeppeennddeenntt [ _o_p_t_i_o_n...  ][ _n_a_m_e==_v_a_l_u_e ][ _f_i_l_e_-_n_a_m_e...  ]
        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.

   nnaammee==vvaalluuee
        You can add _n_a_m_e==_v_a_l_u_e pairs to the command line, these will be passed
        unchanged to the test command.  Usually on the end of the command
        line, but this can be changed in the project configuration file.

        The --ffoorrccee option results in an implicit force=1 variable being added
        to the list of variable assignments, and thus added to the end of the
        command.  This is of most use when using the _b_a_t_c_h___t_e_s_t___c_o_m_m_a_n_d filed
        of the project configuration file.

        This may initially look like a development process end-run, allowing
        test scripts to be written so that they give all the right answers
        without actually doing anything.  You have always been able to do this
        with environment variables, so this isn't anything new.

        It is possible to get all of the variable assignments to turn into
        environment variables by putting $var at the _s_t_a_r_t of the command,
        before the name of the shell, rather than at the default location at
        the end of the command.

   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 configuration 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.

        Skipped
            A test should exit 77 to indicate that it was skipped.  This is
            usually to do with the current architecture not being meaningful.
            Whenever possible, use "No Result" instead.  (The value was chosen
            for compatibility with other test systems.)

        Actually, any exit code other than 0, 1 or 77 will be interpreted as
        "no result".  However, always using 0, 1, 2 or 77 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__LLiimmiitt _m_i_n_u_t_e_s
                This option may be used to limit the number of tests to a
                certain number of minutes.  They will be run from most
                relevant to least relevant.

        --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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

        --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 a path prefix to be added
                to every filename in the archive.  This means that when the
                archive is unpacked, it will all be placed in the one
                directory.

        --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PAATTiibbiilliittyy _v_e_r_s_i_o_n_-_n_u_m_b_e_r
                This option may be used to specify the version of _a_e_t_a_r(1)
                which will be _r_e_c_e_i_v_i_n_g this change set.  This information is
                used to select which features to include in the data, and
                which to omit.  By default, the latest feature set will be
                used.

        --ccoommpprreessssiioonn--aallggoorriitthhmm _n_a_m_e
                This option may be used to specify the compression to be used.
                They are listed on order of compression effeciency.

                none    Use no compression (not always meaningful for all
                        commands).

                gzip    Use the compression used by the _g_z_i_p(1) program.

                bzip2   Use the compression used by the _b_z_i_p_2(1) program.

                More compression algorithms may be added in the future.

        --CCOOMMPPrreessss
                This option is deprecated in favour of the --ccoommpp--aallgg==ggzziipp or
                --ccoommpp--aallgg==bbzziipp22 options.

        --NNoo__CCOOMMPPrreessss
                This options is deprecated in favour of the --ccoommpp--aallgg==nnoonnee
                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.

        --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 project delta
                from its change number.

        --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.

        --IInncclluuddee__BBuuiilldd
                This option may be used to send also build files.

        --NNoott__IInncclluuddee__BBuuiilldd
                This option may be used to send only source (source, test,
                config but not build) files.  This is the default.

        --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.

        --RReemmoovvee__PPaatthh__PPrreeffiixx _n_u_m_b_e_r
                Strip the smallest prefix containing num leading slashes from
                each file name found in the patch file.  A sequence of one or
                more adjacent slashes is counted as a single slash.

        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.

        --EEXXCCLLuuddee
                This option may be used to exclude certain files in the
                tarball from consideration.

                You can also add more exclusions using the _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c
                field of the project configuration, using the aetar:exclude
                attribute listing file names to exclude separated by spaces.

        --EExxcclluuddee__AAuuttoo__TToooollss
                This option may be used to exclude files common to tarballs of
                open source projects which used GNU Autoconf or GNU Automake.
                This is triggered by the presence of _c_o_n_f_i_g_u_r_e_._a_c,
                _c_o_n_f_i_g_u_r_e_._i_n or _M_a_k_e_f_i_l_e_._a_m files.  This only works for simple
                projects, more complex projects will need to use the project
                exclude attributes.

                You can set this automatically using the boolean
                aetar:exclude-auto-tools attribute in the _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c
                field of the project configuration file.

        --EExxcclluuddee__CCVVSS
                This option may be used to exclude files common to CVS
                repositories, which implement the repository functions, rather
                than contain source code.  It will also look inside .cvsignore
                files for additional files to ignore.

                You can set this automatically using the boolean
                aetar:exclude-cvs attribute in the _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field of
                the project configuration file.

        --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.

        --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
        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aetar version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aegis version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 configuration 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:



                --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.

        --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.
                If the file name ends with ".gz" it will be compressed
                with the _g_z_i_p(1) algorithm, if it ends with ".bz" or
                ".bz2" it will be compressed with the _b_z_i_p_2(1)
                algorithm.

        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.  See _a_e_p_c_o_n_f(5) for the project
        configuration file's _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set
        environment variables for all commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aexml version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
        1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
        2009 Peter Miller

        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/



aexver(1)                                                            aexver(1)



NNAAMMEE
        aexver - graphical file history

SSYYNNOOPPSSIISS
        aaeexxvveerr

DDEESSCCRRIIPPTTIIOONN
        The _a_e_x_v_e_r command is used to to view historical versions of files in
        an Aegis repository.

        A list box is displayed with all project filenames in it.  When ther
        user double-clicks on a file, another box is displayed listing all the
        revisions of that file.  Selecting any two revisions will bring up a
        diff comparing those revisions to each other.

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
        AE2DIFF The name of the program to perform the 2-way diff.  Default to
                xidff if not set.

EEXXIITT SSTTAATTUUSS
        The _a_e_x_v_e_r command will exit with a status of 1 on any error.  The
        _a_e_x_v_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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

CCOOPPYYRRIIGGHHTT
        aexver version 4.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        The aexver program comes with ABSOLUTELY NO WARRANTY; for details use
        the '_a_e_x_v_e_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_x_v_e_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/



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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.24.2
        Copyright (C) 1995, 1999 Graham Wheeler

AAUUTTHHOORR
        Graham Wheeler <gram@cdsec.com>
        Citadel Data Security



tkaenc(1)                                                            tkaenc(1)



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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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 filename (or pressing the space key when
        the filename is highlighted) will show the differences between the
        change and the current branch baseline. Holding down button 3 (or
        pressing the "a" key) 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.  The default setting is
                set pref(diff_command) "tkdiff"
        You can change it to
                set pref(diff_command) "mgdiff"
        If you have the _m_g_d_i_f_f(1) command installed.

        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.  See _a_e_p_c_o_n_f(5) for the project configuration file's
        _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all
        commands executed by Aegis.

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
        _t_k_a_e_r contributed by Scott Finneran <sfinneran@lucent.com>



aecattr(5)                                                          aecattr(5)


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.

        attribute = [ { ... } ];
                This is a list of _(_n_a_m_e_,_v_a_l_u_e_) pairs, defining user specified
                attributes.

                name = string;
                        The name of the attribute.  By convention, names which
                        start with an upper-case letter will appear in
                        listings, and lower-case will not.  Attribute names
                        are case-insensitive.

                value = string;
                        The value of the attribute.

                Arguably, most change attributes which may be altered by the
                user (and some that can't) should be of this form.  Due to an
                accident of history, this is not the case.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

        attribute = [ { ... } ];
                This is a list of _(_n_a_m_e_,_v_a_l_u_e_) pairs, defining user specified
                attributes.

                name = string;
                        The name of the attribute.  By convention, names which
                        start with an upper-case letter will appear in
                        listings, and lower-case will not.  Attribute names
                        are case-insensitive.

                value = string;
                        The value of the attribute.

                Arguably, most change attributes which may be altered by the
                user (and some that can't) should be of this form.  Due to an
                accident of history, this is not the case.

        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.

        delta_uuid = string;
                This field records a universally unique identifier for this
                configuration.  It is supplements the _d_e_l_t_a___n_u_m_b_e_r field in
                that it is unique across all replicas of the project, whereas
                the delta number is ambiguous across replicas.  It is only
                present in the _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d and _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.

        uuid = string;
                This field provides a globally unique identifier for the
                change set, even when geographically distributed development
                is happening.

        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.

                default_test_regression_exemption = boolean;
                        This field contains what to do when a change is
                        created with no regression 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.

                uuid = string;
                        This field uniquely identifies the file for its entire
                        lifetime.  This field remains constant across file
                        renames.  The value of this field shall be formatted
                        as a valid UUID, all in lower case.

                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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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/
                                aegis.conf
                                _._._._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_/_a_e_g_i_s_._c_o_n_f 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.  The name of this file is not mandatory.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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/



aefattr(5)                                                          aefattr(5)



NNAAMMEE
        aefattr - aegis file attribute file format

SSYYNNOOPPSSIISS
        aaeeffaa --eeddiitt  _f_i_l_e_n_a_m_e

DDEESSCCRRIIPPTTIIOONN
        This file format is used to set or edit file attributes.

CCOONNTTEENNTTSS
        attribute = [ { ... } ];
                This is a list of _(_n_a_m_e_,_v_a_l_u_e_) pairs, defining user specified
                attributes.

                name = string;
                        The name of the attribute.  By convention, names which
                        start with an upper-case letter will appear in
                        listings, and lower-case will not.

                value = string;
                        The value of the attribute.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

                uuid = string;
                        This field uniquely identifies the file for its entire
                        lifetime.  This field remains constant across file
                        renames.  The value of this field shall be formatted
                        as a valid UUID, all in lower case.

                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.

        attribute = [ { ... } ];
                This is a list of _(_n_a_m_e_,_v_a_l_u_e_) pairs, defining user specified
                attributes.

                name = string;
                        The name of the attribute.  By convention, names which
                        start with an upper-case letter will appear in
                        listings, and lower-case will not.  Attribute names
                        are case-insensitive.

                value = string;
                        The value of the attribute.

                Arguably, most file properties which may be altered by the
                user (and some that can't) should be of this form.  Due to an
                accident of history, this is not the case.

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 are 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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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
        /usr/pkg/com/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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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_/_p_k_g_/_l_i_b_/_a_e_g_i_s
        is NFS mounted, try making the _/_u_s_r_/_p_k_g_/_l_i_b_/_a_e_g_i_s_/_l_o_c_k_f_i_l_e file world
        writable.  chmod 666 /usr/pkg/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      Baseline    Baselines    State        State
                     File        File                                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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.

        default_test_regression_exemption = boolean;
                This field contains what to do when a change is created with
                no regression 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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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/aegis.conf _(_d_e_f_a_u_l_t_)
        _p_r_o_j_e_c_t/baseline/config _(_o_b_s_o_l_e_t_e_)

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.

        As of aegis.4.17, it is possible to assign any arbitrary name to the
        project configuration file or files.  See _a_e_n_f(1) for more
        information.

        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: file names 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 _a_e_g_i_s_._c_o_n_f file is under source control like any
        other file, you must create the project _a_e_g_i_s_._c_o_n_f file in the very
        first change of your project.  Use the
                $ aaeennff aaeeggiiss..ccoonnff
                $
        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 _a_e_g_i_s_._c_o_n_f
        file, you do this the same way as for any other source file, by
        copying it into a change using the
                $ aaeeccpp aaeeggiiss..ccoonnff
                $
        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
        _a_e_g_i_s_._c_o_n_f 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.

        If you would prefer a different name for the project configuration
        file, use the _a_e_n_f _-_c_o_n_f_i_g option.  For example, the
                $ aaeennff --ccoonnffiigg pprroojjeecctt..ccoonnffiigguurraattiioonn
                $
        command would create a file called _p_r_o_j_e_c_t_._c_o_n_f_i_g_u_r_a_t_i_o_n and Aegis
        would then proceed to use it to obtain project configuration
        information for the duration of the project.  This attribute will even
        be preserved across file renames (see the _a_e_m_v(1) command).

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 _a_e_g_i_s_._c_o_n_f 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 "aegis.conf" 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 _a_e_g_i_s_._c_o_n_f 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.

                If this field is set to "exit 0" then no integration build
                will be required, and will not be checked for by the
                _a_e_i_p_a_s_s(1) command.

        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.

                If this field is set to "exit 0" then no development build
                will be required, and will not be checked for by the _a_e_d_e(1)
                command.

        development_directory_style = { ... };
                This field encapsulates a set of parameters controlling the
                appearance of the development directory.  It has significant
                implications for the way the DMT is used, and the directory
                appearance presented to the DMT.

                source_file_link = boolean;
                        This field is true if hard links are to be used for
                        project source files (which are not part of the
                        change) so that the work area has a complete set of
                        source files.

                        Defaults to false if not set.

                        If the host system does not have hard links, this
                        field will be ignored.

                        Maintaining the hard links can be time consuming for
                        large projects, and add quite a noticeable delay
                        before builds start doing anything.  If possible,
                        change your build system to use the _$_s_e_a_r_c_h___p_a_t_h
                        substitution instead and avoid links.

                source_file_symlink = boolean;
                        This field is true if symbolic links are to be used
                        for project source files (which are not part of the
                        change) so that the work area has a complete set of
                        source files.

                        Defaults to false if not set.  [If the obsolete
                        _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, defaults to
                        the value of that field, with a warning.]

                        If (_s_o_u_r_c_e___f_i_l_e___l_i_n_k == true aanndd hard links are
                        available) this field will be ignored.  If the host
                        system does not have symbolic links, this field will
                        be ignored.

                        Maintaining the symbolic links can be time consuming
                        for large projects, and add quite a noticeable delay
                        before builds start doing anything.  If possible,
                        change your build system to use the _$_s_e_a_r_c_h___p_a_t_h
                        substitution instead and avoid symbolic links.

                source_file_copy = boolean;
                        This field is true if copies are to be used for
                        project source files (which are not part of the
                        change) so that the work area has a complete set of
                        source files.  File modification time attributes will
                        be preserved.

                        Defaults to false if not set.

                        If ((_s_o_u_r_c_e___f_i_l_e___l_i_n_k == true aanndd hard links are
                        available) OR (_s_o_u_r_c_e___f_i_l_e___s_y_m_l_i_n_k == true aanndd
                        symbolic links are available)) this field will be
                        ignored.

                        Maintaining the copies can be time consuming (and
                        space consuming) for large projects, and add quite a
                        noticeable delay before builds start doing anything.
                        If possible, change your build system to use the
                        _$_s_e_a_r_c_h___p_a_t_h substitution instead and avoid file
                        copies.

                source_file_whiteout = boolean;
                        The _s_o_u_r_c_e___f_i_l_e___w_h_i_t_e_o_u_t field mat be used to specify
                        the presence (true) or absence (false) of white-out
                        files, used to "cover up" files being removed by a
                        change set.  These files contain 1kB of random data,
                        intended to cause a syntax error should be build
                        reference them.

                        It is rarely necessary to explicitly set this field.
                        It defaults to false if you set any of the
                        _s_o_u_r_c_e___f_i_l_e___l_i_n_k, _s_o_u_r_c_e___f_i_l_e___s_y_m_l_i_n_k or
                        _s_o_u_r_c_e___f_i_l_e___c_o_p_y to true; it defaults to true only if
                        none of them are true.

                        Not meaningful (always false) for integration builds.

                derived_file_link = boolean;
                        This field is true if hard links are to be used for
                        non-source files which are present in the project
                        baseline(s) but which are not present in the work
                        area, so that the work area has a complete set of
                        derived files.  This allows work areas to take
                        advantage of "precompiled" object files (_e_t_c) in the
                        baseline(s).

                        Defaults to false if not set.

                        If the host system does not have hard links, this
                        field will be ignored.

                        Maintaining the links can be time consuming for large
                        projects, and add quite a noticeable delay before
                        builds start doing anything.  If possible, change your
                        build system to use the _$_s_e_a_r_c_h___p_a_t_h substitution
                        instead and avoid hard links.  Alternatively, set
                        _d_e_r_i_v_e_d___a_t___s_t_a_r_t___o_n_l_y _= _t_r_u_e_; and your work area will
                        get a "head start" but the derived files will not be
                        checked for every build, but this will occasionally
                        result in long build times after integrations.

                        See also the _i_n_t_e_g_r_a_t_e___b_e_g_i_n___e_x_c_e_p_t_i_o_n_s and _s_y_m_l_i_n_k___-
                        _e_x_c_e_p_t_i_o_n_s fields (they apply to hard links as well as
                        symbolic links).

                derived_file_symlink = boolean;
                        This field is true if symbolic links are to be used
                        for non-source files which are present in the project
                        baseline(s) but which are not present in the work
                        area, so that the work area has a complete set of
                        derived files.  This allows work areas to take
                        advantage of "precompiled" object files (etc) in the
                        baseline(s).

                        Defaults to false if not set.  [If the obsolete
                        _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, defaults to
                        the value of that field, with a warning.]

                        If (_d_e_r_i_v_e_d___f_i_l_e___l_i_n_k == true aanndd hard links are
                        available) this field will be ignored.  If the host
                        system does not have symbolic links, this field will
                        be ignored.

                        Maintaining the symbolic links can be time consuming
                        for large projects, and add quite a noticeable delay
                        before builds start doing anything.  If possible,
                        change your build system to use the _$_s_e_a_r_c_h___p_a_t_h
                        substitution instead and avoid symbolic links.
                        Alternatively, set _d_e_r_i_v_e_d___a_t___s_t_a_r_t___o_n_l_y _= _t_r_u_e_; and
                        your work area will get a "head start" but the derived
                        files will not be checked for every build,
                        occasionally resulting in long build times after
                        integrations.

                        See also the _i_n_t_e_g_r_a_t_e___b_e_g_i_n___e_x_c_e_p_t_i_o_n_s and _s_y_m_l_i_n_k___-
                        _e_x_c_e_p_t_i_o_n_s fields.

                derived_file_copy = boolean;
                        This field is true if copies are to be used for non-
                        source files which are present in the project
                        baseline(s) but which are not present in the work
                        area, so that the work area has a complete set of
                        derived files.  This allows work areas to take
                        advantage of "precompiled" object files (_e_t_c) in the
                        baseline(s).

                        Defaults to false if not set.

                        If ((_d_e_r_i_v_e_d___f_i_l_e___l_i_n_k == true aanndd hard links are
                        available) oorr (_d_e_r_i_v_e_d___f_i_l_e___s_y_m_l_i_n_k == true aanndd
                        symbolic links are available)) this field will be
                        ignored.

                        Maintaining the copies can be time consuming (and
                        space consuming) for large projects, and add quite a
                        noticeable delay before builds start doing anything.
                        If possible, change your build system to use the
                        _$_s_e_a_r_c_h___p_a_t_h substitution instead and avoid symbolic
                        links.  Alternatively, set _d_e_r_i_v_e_d___a_t___s_t_a_r_t___o_n_l_y _=
                        _t_r_u_e_; and your work area will get a "head start" but
                        the derived files will not be checked for every build,
                        occasionally resulting in long build times after
                        integrations.

                        See also the integrate_begin_exceptions and
                        symlink_exceptions fields (they apply to copies as
                        well as symbolic links).

                during_build_only = boolean;
                        This field is set to true if you want the symbolic
                        links, hard links and/or copies removed again after
                        each build.  This allows the user to maintain the
                        illusion of using a search path, without actually
                        doing so.  This option is not especially efficient.

                        Defaults to false if not set.  [If the obsolete
                        _r_e_m_o_v_e___s_y_m_l_i_n_k_s___a_f_t_e_r___b_u_i_l_d field is set, defaults to
                        the value of that field, with a warning.]

                        If this field is false, the development directory will
                        be populated by the develop begin (_a_e_d_b) command, and
                        the integration directory will be populated by the
                        integrate begin (_a_e_i_b) command.

                derived_at_start_only = boolean;
                        This field controls whether the above fields
                        controlling the appearance of derived files are acted
                        upon before every build (false) or only when the work
                        area is created (true).

                        Defaults to false if not set.

                        This field is ignored if the _d_u_r_i_n_g___b_u_i_l_d___o_n_l_y field
                        is true.

                This field can be complex.  Here are a few examples; but much,
                much more is possible.  The first example will get you a
                development directory very similar to one presented by CVS:
                        development_directory_style =
                        {
                            source_file_copy = true;
                        };
                Note that this is hugely space inefficient, and can be quite
                slow.  The second example will get you a development directory
                very similar to one presented by Tom Lord's _a_r_c_h:
                        development_directory_style =
                        {
                            source_file_link = true;
                            source_file_symlink = true;
                            source_file_copy = true;
                        };
                Ideally, however, you should use the _$_s_e_a_r_c_h___p_a_t_h substitution
                of the _b_u_i_l_d___c_o_m_m_a_n_d field.  This is because the view path
                scales better than any other method.  On the other hand, you
                need a DMT with an excellent view path implementation (and GNU
                _m_a_k_e doesn't).

        integration_directory_style = { ... };
                This field encapsulates a set of parameters controlling the
                appearance of the integration directory.  It has significant
                implications for the way the DMT is used, and the directory
                appearance presented to the DMT.

                Defaults to the value of the _d_e_v_e_l_o_p_m_e_n_t___d_i_r_e_c_t_o_r_y___s_t_y_l_e field
                if not set.  Note that the obsolete _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
                fields affect this default (with a warning) but only if they
                are _e_x_p_l_i_c_i_t_l_y set.

                Note that 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 is still
                relevant.  That field controls how the baseline is cloned to
                form the integration directory.  This field operates after
                that operation.

        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 integration directory.  This is what is
                about to be come the new baseline.

                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.

        test_covers_all_architectures = boolean;
                This field is set to true if the test command, when executed
                on any architecture, results in all architectures being
                tested.  This may be accomplished, for example, by using
                Cook's ability to nominate hosts on which to execute each test
                rule.

        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.

                ${File_Name}
                        The base relative file name of the file for this
                        check-in.  Note that the file name can vary over the
                        lifetime of the file as it is renamed, but the history
                        file name (above) never varies.  _D_o _n_o_t _u_s_e this as
                        the name of the history file.  ((OOppttiioonnaall))

                ${UUID} The universally unique identifier of the source file.
                        This is invariant for the lifetime of the file.  _D_o
                        _n_o_t _u_s_e use this as the name of the history file.
                        ((OOppttiioonnaall))

                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.

                ${File_Name}
                        The base relative file name of the file for this
                        check-in.  Note that the file name can vary over the
                        lifetime of the file as it is renamed, but the history
                        file name (above) never varies.  _D_o _n_o_t _u_s_e this as
                        the name of the history file.  ((OOppttiioonnaall))

                ${UUID} The universally unique identifier of the source file.
                        This is invariant for the lifetime of the file.  _D_o
                        _n_o_t _u_s_e use this as the name of the history file.
                        ((OOppttiioonnaall))

                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_transaction_begin_command = string;
                The history_transaction_begin_command field is used to specify
                a command to be run by _a_e_i_p_a_s_s(1) before any history create or
                history put commands are run.  The default is to do nothing.

                All of the substitutions described in _a_e_s_u_b(5) are available.
                If you need a transaction ID, use the _$_v_e_r_s_i_o_n substitution.

                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_transaction_end_command = string;
                The history_transaction_end_command field is used to specify a
                command to be run by _a_e_i_p_a_s_s(1) after any history create or
                history put commands are run, but before any history query
                commands are run.  The default is to do nothing.

                All of the substitutions described in _a_e_s_u_b(5) are available.
                If you need a transaction ID, use the _$_v_e_r_s_i_o_n substitution.

                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_transaction_abort_command = string;
                The history_transaction_abort_command field is used to specify
                a command to be run by _a_e_i_p_a_s_s(1) to indicate that a
                transaction has been abandoned.  The default is to do nothing.

                All of the substitutions described in _a_e_s_u_b(5) are available.
                If you need a transaction ID, use the _$_v_e_r_s_i_o_n substitution.

                Executed as: the project owner.  Current directory: the base
                of the history tree.  Exit status: ignored (the integrate pass
                has already failed).

        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 success, 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).

                Please note that this field ddooeess nnoott apply to the _d_i_f_f___c_o_m_m_a_n_d
                or _m_e_r_g_e___c_o_m_m_a_n_d fields.

        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).

                NNoottee:: It is possible to configure a project to omit the diff
                step as unnecessary, by the following setting:
                        diff_command = "exit 0";
                This disables all generation, checking and validation of
                difference file for each change source file.  The merge
                functions of the _a_e_d_i_f_f(1) command are unaffected by this
                setting.

        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 success, 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; test $? -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 success, 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;
                test $? -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 success, all non-zero exits indicate failure
                (the aed will fail).

        review_policy_command = string;
                This field is used to set the command to be executed by the
                _a_e_r_p_a_s_s(1) command.  This command is useful in cases where the
                enterprise has determined that more than one review is
                necessary or that the reviewer must be senior to the
                developer, _e_t_c.  Defaults to "exit 0" if not set.

                The exit status is examined.  An zero exit status (success)
                means that the change will proceed to the _a_w_a_i_t_i_n_g _i_n_t_e_g_r_a_t_i_o_n
                state; a non-zero exit status (failure) means that the change
                requires further review state, and the _d_e_v_e_l_o_p___e_n_d___a_c_t_i_o_n is
                consulted to determine the appropriate state (_a_w_a_i_t_i_n_g___r_e_v_i_e_w
                or _b_e_i_n_g___r_e_v_i_e_w_e_d) for the change to move to.

                All of the substitutions described by _a_e_s_u_b(5) are available.
                Of particular interest are ${Change_Developer_List} and
                ${Change_Reviewer_List} for passing the specific staff
                involved with the change.

                Executed as: the current reviewer.  Current directory: the
                development directory.  Exit status: zero indicates success,
                non-zero indicates failure.

                For example, to have a script which is a project source file
                to be used to gate the code review process, a setting such as
                the following may be used:
                        review_policy_command =
                            "$sh ${source script/reviewpolicy.sh} "
                            "-p $project -c $change "
                            "-d ${developer_list} "
                            "-r ${reviewer_list}"
                            ;
                This is only one of many ways to implement a project specific
                review policy.

        develop_end_policy_command = string;
                This field is used to set the command to be executed by the
                _a_e_d_e(1) command.  This command is useful in cases where the
                enterprise has determined that additional pre-conditions must
                be met (in addition to those already imposed by the _a_e_d_e(1)
                command) before a change may leave the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state.
                Defaults to "exit 0" if not set.

                The exit status is examined.  An zero exit status (success)
                means that the change may leave to the _b_e_i_n_g _d_e_v_e_l_o_p_e_d state;
                a non-zero exit status (failure) means that the change
                requires further development.

                All of the substitutions described by _a_e_s_u_b(5) are available.

                Executed as: the developer.  Current directory: the
                development directory.  Exit status: zero indicates success,
                non-zero indicates failure.

                There are some common validations available in the _a_e_d_e_-
                _p_o_l_i_c_y(1) command; you may choose all or only some of them, or
                you may choose to write a policy command specific to your
                project.

        unchanged_file_develop_end_policy = (...);
                This field may be used to control what happens when
                development of a change is ended, and the change contains
                files which have not had their contents or their attributes
                changed.

                ignore  Does not look for or warn about unchanged files.  This
                        the default.

                warning If the change sets contains unchanged files, a warning
                        will be issued for each one.

                error   If the change set contains unchanged files, an error
                        will be issued for each one, and develop end will not
                        complete (the change will remain in the _b_e_i_n_g
                        _d_e_v_e_l_o_p_e_d state).

        unchanged_file_integrate_pass_policy = (...);
                This field may be used to control what happens when a change
                is completed, and the change contains files which have not had
                their contents or their attributes changed.

                ignore  Does not look for or warn about unchanged files.  The
                        file version will be added to the history.  This the
                        default.

                warning If the change sets contains unchanged files, a warning
                        will be issued for each one.  The file version will be
                        added to the history.

                remove  If the change set contains an unchanged file, it will
                        be silently removed from the change set.  The file
                        version will not be added to the history.  The project
                        file is unaffected.

        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.

                ${VARiables}
                        The text of name=value variable settings from the
                        command line, suitably quoted to protect special
                        character from the shell.  Will be appended to the end
                        of the command if not used explicitly.

                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.

                ${VARiables}
                        The text of name=value variable settings from the
                        command line, suitably quoted to protect special
                        character from the shell.  Will be appended to the end
                        of the command if not used explicitly.

                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.

                ${VARiables}
                        The text of name=value variable settings from the
                        command line, suitably quoted to protect special
                        character from the shell.  Will be appended to the end
                        of the command if not used explicitly.

                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 -independent tests).  Exit
                status: zero indicates success, 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.  May be
                assigned more than once.  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.  May be assigned
                more than once.  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 file names.  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 _a_e_g_i_s_._c_o_n_f 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 file
                names 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 file names so that they
                conform to the DOS 8+3 filename limits and to the DOS filename
                character set.  Also denies file names 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 file names so that they
                conform to the Windows98 and WindowsNT filename limits and
                character set.  Also denies file names 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 file names 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
                file names in commands, or risk unexpected errors.

                This field defaults to true if not set.

                The white space characters (space, tab, newline, _e_t_c) are
                considered shell special characters.

        allow_white_space_in_filenames = boolean;
                This field may be used to allow white space characters in file
                names.  This will allow the following characters to appear in
                filenames: backspace (BS, \b, 0x08), horizontal tab (HT, \t,
                0x09), new line (NL, \n, 0x0A), vertical tab (VT, \v, 0x0B),
                form feed (FF, \f, 0x0C), and carriage return (CR, \r, 0x0D).

                Defaults to false if not set.

                Note that this field does not override other file name
                filters.  It will be necessary to explicitly set _s_h_e_l_l___s_a_f_e___-
                _f_i_l_e_n_a_m_e_s _= _f_a_l_s_e as well.  It will be necessary to set _d_o_s___-
                _f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d _= _f_a_l_s_e (the default) as well.  It will be
                necessary to set _p_o_s_i_x___f_i_l_e_n_a_m_e___c_h_a_r_s_e_t _= _f_a_l_s_e (the default)
                as well.

                The user must take great care to use the ${quote} substitution
                around all file names in commands in the project
                configuration.  And even then, substitutions which expect a
                space separated list of file names will have undefined
                results.

        allow_non_ascii_filenames = boolean;
                This field may be used to allow file names with non-ascii-
                printable characters in them.  Usually this would mean a UTF8
                or international charset of some kind.

                Defaults to false if not set.

                Note that this field does not override other file name
                filters.  It will be necessary to explicitly set _s_h_e_l_l___s_a_f_e___-
                _f_i_l_e_n_a_m_e_s _= _f_a_l_s_e as well.  It will be necessary to set _d_o_s___-
                _f_i_l_e_n_a_m_e___r_e_q_u_i_r_e_d _= _f_a_l_s_e (the default) as well.  It will be
                necessary to set _p_o_s_i_x___f_i_l_e_n_a_m_e___c_h_a_r_s_e_t _= _f_a_l_s_e (the default)
                as well.

        filename_pattern_accept = [ string ];
                This field is used to specify a list of patterns of acceptable
                file names.  The patterns are matched against each filename
                path element.  The patterns are constructed from the usual
                shell filename wild-cards.  Defaults to "*" if not set.

        filename_pattern_reject = [ string ];
                This field is used to specify a list of patterns of
                unacceptable file names.  The patterns are matched against
                each filename path element.  The patterns are constructed from
                the usual shell filename wild-cards.  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 file names), 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 path name 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).  May be assigned more than once.  The sub-fields
                are

                name = string;
                        The name of the value.  By convention, names which
                        start with an upper-case letter will appear in
                        listings, and lower-case will not.  Attribute names
                        are case-insensitive.

                value = string;
                        The value to be substituted.

                There are almost no limitations on the strings which may
                appear in either of these fields.

                There are several attribute names which are known to and used
                by Aegis, these include:

                aede-policy
                        This attribute is used when no policy names are listed
                        on the _a_e_d_e_-_p_o_l_i_c_y(1) command line.

                aetar:exclude
                        This attribute is used by he _a_e_t_a_r(1) receive command
                        to exclude files in tarballs from consideration.  This
                        is a space separated list of file names.

                html:meta
                        This attribute is used by the _a_e_g_e_t(1) command to
                        customize generated web pages.  See _a_e_g_e_t(1) for more
                        information.

                html:body-begin
                        This attribute is used by the _a_e_g_e_t(1) command to
                        customize generated web pages.  See _a_e_g_e_t(1) for more
                        information.

                html:body-end
                        This attribute is used by the _a_e_g_e_t(1) command to
                        customize generated web pages.  See _a_e_g_e_t(1) for more
                        information.

                copyright-owner
                        This string is available via the _$_{_c_o_p_y_r_i_g_h_t_-_o_w_n_e_r_}
                        substitution, and is the one checked by the _a_e_d_e_-
                        _p_o_l_i_c_y(1) command.  Only set this attribute if your
                        project is a work-for-hire under copyright law.  It
                        defaults to the value of _$_{_u_s_e_r _n_a_m_e_} if not set, this
                        is almost always correct for Open Source projects.

                When commands are executed by Aegis, it ensures that the
                AEGIS_PROJECT, AEGIS_CHANGE, AEGIS_ARCH, LINES and COLS
                environment variables are set appropriately.  The project
                configuration file's _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field is also consulted,
                looking for value's whose name starts with "setenv:" and sets
                the corresponding environment variable.  All of the
                substitutions described by _a_e_s_u_b(5) are available.  For
                example: specifying a PATH and a SEARCH_PATH to be used for
                all commands may be set as follows:
                        project_specific =
                        [
                          {
                            name = "setenv:PATH";
                            value = "/usr/bin:/bin";
                          },
                          {
                            name = "setenv:SEARCH_PATH";
                            value = "${search_path}";
                          },
                        ];
                As many environment variables as desired may be specified in
                this way.

        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 re-linked 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 much 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.

        signed_off_by = boolean;
                If this field is set each _a_e_d_b(1), _a_e_c_h_o_w_n(1), _a_e_d_e(1) and
                _a_e_r_p_a_s_s(1) will append a Signed-off-by line to the change
                description.  This field should only be set to true for open
                source projects.

                For a description of Signed-off-by see
                http://www.ussg.iu.edu/hypermail/linux/kernel/0405.2/1301.html
                and
                http://www.osdl.org/newsroom/press_releases/2004/2004_05_24_dco.html

        cache_project_file_list_for_each_delta = boolean;
                It is possible to have Aegis cache the list of project files
                that were present at integrate pass for each delta (integrated
                change set).  This is used to optimize all project-history-
                based operations, such as _a_e_c_p _-_d_e_l_t_a or _a_e_p_a_t_c_h(1).

                This cache will optimize many operations which would otherwise
                require time to reconstruct the project state using the roll-
                forward data available in each change set.  However, it comes
                at the cost of disk space, and not everyone can afford more
                and more disk.

                This field defaults to true if not set.

        clean_exceptions = [ string ];
                It is possible to have Aegis exclude from the clean process
                any file that match one of the pattern listed in the
                clean_exceptions list.

                This field default to an empty list if not set.

        cache_project_file_list_for_each_delta = boolean;
                It is possible to have Aegis cache the list of project files
                that were present at integrate pass for each delta (integrated
                change set).  This is used to optimize all project-history-
                based operations, such as _a_e_c_p _-_d_e_l_t_a or _a_e_p_a_t_c_h(1).

                This cache will optimize many operations which would otherwise
                require time to reconstruct the project state using the roll-
                forward data available in each change set.  However, it comes
                at the cost of disk space, and not everyone can afford more
                and more disk.

                This field defaults to true if not set.

RRSSSS FFEEEEDDSS
        Aegis has the ability to feed RSS channels when change sets transition
        states.  See the User Guide for full details.  Following is a brief
        description of the project-specific attributes used to control this
        process.

        Create / Add to a channel
                An RSS channel is specified with the rss:feedfilename
                project_specific attribute:

                project_specific =
                        [
                          {
                            name = "rss:feedfilename-<filename>";
                            value = "<space-separated list of states>";
                          }
                        ]

        Specify the Description of an RSS channel
                The description of an RSS channel is specified with the
                rss:feeddescription project_specific attribute:

                project_specific =
                        [
                          {
                            name = "rss:feeddescription-<filename>";
                            value = "<description>";
                          }
                        ]

        Specify the Title of an RSS channel
                The title of an RSS channel is specified with the
                rss:feedtitle project_specific attribute:

                project_specific =
                        [
                          {
                            name = "rss:feedtitle-<filename>";
                            value = "<title>";
                          }
                        ]

        Specify the Language of an RSS channel
                The language of an RSS channel is specified with the
                rss:feedlanguage project_specific attribute:

                project_specific =
                        [
                          {
                            name = "rss:feedlanguage-<filename>";
                            value = "<language";
                          }
                        ]

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.

        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.

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_d_e_-_p_o_l_i_c_y(1) check things about
                a change

        _a_e_r_p_a_s_s(1)
                pass a review 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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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_/_p_k_g_/_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_/_p_k_g_/_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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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/pkg/share/aegis/report.index
        /usr/pkg/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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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:

        Active_Directory
                The absolute path of the change's development directory, if
                the change is between the _b_e_i_n_g _d_e_v_e_l_o_p_e_d and _a_w_a_i_t_i_n_g
                _i_n_t_e_g_r_a_t_i_o_n states.  The absolute path of the change's
                integration directory, if the change is in the _b_e_i_n_g
                _i_n_t_e_g_r_a_t_e_d state.  Not available when the change is in the
                _a_w_a_i_t_i_n_g _d_e_v_e_l_o_p_m_e_n_t or _c_o_m_p_l_e_t_e_d states.  This rather like
                the default behaviour of the _a_e_c_d(1) command.

        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.

                attribute
                        This substitution takes an additional argument, the
                        name of a change attribute (see _a_e_c_a(1) and _a_e_c_a_t_t_r(5)
                        for more information).  This returns the value listed
                        in the change attributes, or the empty string if the
                        change does not have the named attribute.

                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.  Only
                        valid for completed changes.

                delta_uuid
                        This returns the delta UUID of the change, assigned on
                        integrate pass, a globally unique identifier for the
                        state of the project when this change was integrated
                        (different for all repositories).  Only valid for
                        _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d and _c_o_m_p_l_e_t_e_d _c_h_a_n_g_e_s_.

                _d_e_s_c_r_i_p_t_i_o_n
                        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.

                uuid    This returns the UUID of the change.

                version This returns the version of the change.

        Change_Attribute
                This substitution takes exactly one argument.  This argument
                is a name of a change attribute (see _a_e_c_a(1) and _a_e_c_a_t_t_r(5)
                for more information).  This returns the value listed in the
                change attributes, or the empty string if the change does not
                have the named attribute.

        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.

        Change_Developer_List
                Space separated list of all the change's developers.  Note
                that this is different than the Developer_List substitution.

        Change_Reviewer_List
                Space separated list of the change's reviewers since the last
                _d_e_v_e_l_o_p _e_n_d.  Note that this is different than the Reviewer_-
                List substitution.  Bt using the _r_e_v_i_e_w___p_o_l_i_c_y___c_o_m_m_a_n_d field
                of the project configuration file this value can have more
                than one reviewer, because this allows a project to require a
                change to need to be reviewed more than once before it can be
                integrated.

        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.
                Note that this is different than the Change_DeveloperList
                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.

        DIFF
                The absolute path of the diff command, as discovered when
                Aegis was built.  It tries to locate GNU Diff at build time to
                provide maximum functionality.

        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.

        EMail_Address
                This substitution takes one or more user names as arguments.
                It replaces them with email addresses.  (It is an error if any
                user name is unknown.)

                This substitution takes options.  You may specify one or more
                of them immediately after the substitution name.

                --CCoommmmaa  This option may be used to specify that the email
                        addresses are to be separated by commas.

                --QQuuoottee  This option may be used to specify that the email
                        addresses are to be quoted to insulate shell special
                        characters.

                See _a_e_u_c_o_n_f(5) for where this is set.

        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.

        History_Path
                This substitution takes one argument, the name of a source
                file.  It is replaced by the absolute path of the history file
                for that source file.  Note that you may beed to massage the
                file name a little for you proticular history tool, just as
                the history commands in the _a_e_g_i_s_._c_o_n_f file do.
                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.

        PAth_Reduce
                This function requires at least one argument.  It is used to
                remove duplicates from a command search path, such as may be
                found in the PATH environment variable.  If more than one
                argument is given, all are included in the results, as if they
                were separated by colons.

        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.

                version This returns the version of the project.

                version_long
                        This returns the version of the project, including the
                        delta number.

        Project_Specific
                This substitution takes exactly one argument.  This argument
                is a name to be found in the project configuration 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 configuration
                file.  Unknown attributes will be replaced with the empty
                string.

        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.
                Note that this is different than the Change_Reviewer_List
                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.

                delta_uuid
                        This variant gives the change's delta-UUID assigned at
                        integrate pass.  Only valid for _b_e_i_n_g___i_n_t_e_g_r_a_t_e_d and
                        _c_o_m_p_l_e_t_e_d changes.

        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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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_/_p_k_g_/_s_h_a_r_e_/_a_e_g_i_s_/_a_e_g_i_s_r_c
        _/_u_s_r_/_p_k_g_/_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_/_p_k_g_/_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_/_p_k_g_/_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
                configuration 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.

        attribute = [ { ... } ];
                This is a list of _(_n_a_m_e_,_v_a_l_u_e_) pairs, defining user specified
                attributes.

                name = string;
                        The name of the attribute.  By convention, names which
                        start with an upper-case letter will appear in
                        listings, and lower-case will not.  Attribute names
                        are case-insensitive.

                        Arguably, most user attributes which may be altered by
                        the user (and some that can't) should be of this form.
                        Due to an accident of history, this is not the case.

                        The attributes known to Aegis are:

                        progress-preference
                                boolean; true if _a_e_t(1) should emit progress
                                messages, false if not.  Can be overridden
                                with the --pprrooggrreessss and --nnoo--pprrooggrreessss command
                                line options.

                        FIXME: there needs to be a _a_e_s_u_b(5) way to get at
                        these values.

                value = string;
                        The value of the attribute.

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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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
        /usr/pkg/com/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.24.2.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter
        Miller

        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
              Windows NT . . . . . . . . . . . . . . . . . . . . . . . . .   3
          Release Notes  . . . . . . . . . . . . . . . . . . . . . . . . .   5
          How to Build the Sources . . . . . . . . . . . . . . . . . . . .  48
              Windows NT . . . . . . . . . . . . . . . . . . . . . . . . .  55
aegis(1)  project change supervisor  . . . . . . . . . . . . . . . . . . .  56
ae-cvs-ci(1)                                                               checkin a change set to CVS 61
ae-repo-ci(1)                                                              redundant repository checkin 61
ae-sccs-put(1)                                                             put file version into SCCS 62
ae_c(1)   set change number  . . . . . . . . . . . . . . . . . . . . . . .  63
ae_diff2htm(1)                                                             wraps the diff2html command 63
ae_p(1)   set project name . . . . . . . . . . . . . . . . . . . . . . . .  63
aeannotate(1)                                                              annotated source file listing 63
aeb(1)    build a change . . . . . . . . . . . . . . . . . . . . . . . . .  64
aebisect(1)                                                                search  for  a delta which changed project be-
haviour .                                                                  67
aebuffy(1)                                                                 watch for changes 68
aeca(1)   modify the attributes of a change  . . . . . . . . . . . . . . .  68
aecd(1)   change directory . . . . . . . . . . . . . . . . . . . . . . . .  70
aechown(1)                                                                 set change owner 71
aeclean(1)                                                                 clean files from development directory 73
aeclone(1)                                                                 make an exact copy of a change 74
aecomp(1) compare two changes  . . . . . . . . . . . . . . . . . . . . . .  77
aecomplete(1)                                                              command completion 77
aecp(1)   copy a file into a change  . . . . . . . . . . . . . . . . . . .  77
aecpu(1)  reverse action of aecp . . . . . . . . . . . . . . . . . . . . .  80
aecvsserver(1)                                                             serve CVS  client  protocol  against  Aegis
projects .                                                                 82
aed(1)    difference a change  . . . . . . . . . . . . . . . . . . . . . .  83
aedb(1)   begin development of a change  . . . . . . . . . . . . . . . . .  85
aedbu(1)  undo the effects of aedb . . . . . . . . . . . . . . . . . . . .  87
aede-policy(1)                                                             check change set is ready for aede 88
aede(1)   complete development of a change . . . . . . . . . . . . . . . .  89
aedeu(1)  recall a change for further development  . . . . . . . . . . . .  91
aediff(1) file differences between deltas  . . . . . . . . . . . . . . . .  92
aedist(1) remotely distribute a change . . . . . . . . . . . . . . . . . .  93
aedn(1)   assign a symbolic name to a project delta  . . . . . . . . . . .  97
aeedit(1) edit a change's files  . . . . . . . . . . . . . . . . . . . . .  98
aefa(1)   modify the attributes of a file  . . . . . . . . . . . . . . . .  99
aefind(1) search for files in directory hierarchy  . . . . . . . . . . . . 100
aefinish(1)                                                                finish a change 102
aefp(1)   calculate file fingerprint . . . . . . . . . . . . . . . . . . . 103
aeget(1)  Aegis CGI file access  . . . . . . . . . . . . . . . . . . . . . 103
aegis.cgi(1)                                                               Aegis web interface script 104
aeib(1)   begin integrating a change . . . . . . . . . . . . . . . . . . . 105
aeibu(1)  reverse the aeib command . . . . . . . . . . . . . . . . . . . . 106
aeifail(1)                                                                 fail a change integration 107
aeimport(1)                                                                import foreign repository into Aegis 108
aeintegratq(1)                                                             integrate changes into projects 110
aeipass(1)                                                                 pass a change integration 112
ael(1)    list interesting things  . . . . . . . . . . . . . . . . . . . . 114
aelcf(1)  list change files  . . . . . . . . . . . . . . . . . . . . . . . 116
aelic(1)  GNU General Public License . . . . . . . . . . . . . . . . . . . 116
aelock(1) take a lock while a command runs . . . . . . . . . . . . . . . . 120
aelpf(1)  list project files . . . . . . . . . . . . . . . . . . . . . . . 120
aels(1)   annotated directory listing  . . . . . . . . . . . . . . . . . . 121
aemakegen(1)                                                               generate a Makefile.in from file manifest 122
aemeasure(1)                                                               simple file metrics 122
aemt(1)   make branch file transparent . . . . . . . . . . . . . . . . . . 123
aemtu(1)  no longer make branch file transparent . . . . . . . . . . . . . 124
aemv(1)   rename one or more files as part of a change . . . . . . . . . . 125
aemvu(1)  undo the rename a file as part of a change . . . . . . . . . . . 127
aena(1)   add a new administrator to a project . . . . . . . . . . . . . . 128
aenbr(1)  create a new branch  . . . . . . . . . . . . . . . . . . . . . . 129
aenbru(1) remove a branch  . . . . . . . . . . . . . . . . . . . . . . . . 129
aenc(1)   add a new change to a project  . . . . . . . . . . . . . . . . . 130
aencu(1)  remove a change  . . . . . . . . . . . . . . . . . . . . . . . . 131
aend(1)   add new developers to a project  . . . . . . . . . . . . . . . . 132
aenf(1)   add new files to be created by a change  . . . . . . . . . . . . 132
aenfu(1)  remove new files from a change . . . . . . . . . . . . . . . . . 135
aeni(1)   add new integrators to a project . . . . . . . . . . . . . . . . 136
aenpa(1)  create a new project alias . . . . . . . . . . . . . . . . . . . 136
aenpr(1)  create a new project . . . . . . . . . . . . . . . . . . . . . . 137
aenrls(1) create  a  new project from an old-style project
. . . . .                                                                  138
aenrv(1)  add new reviewers to a project . . . . . . . . . . . . . . . . . 140
aent(1)   add a new test to a change . . . . . . . . . . . . . . . . . . . 140
aentu(1)  remove new tests from a change . . . . . . . . . . . . . . . . . 142
aepa(1)   modify the attributes of a project . . . . . . . . . . . . . . . 143
aepatch(1)                                                                 send and receive changes as patches 144
aepromptcmd(1)                                                             change prompt color by change state 146
aer(1)    report generator . . . . . . . . . . . . . . . . . . . . . . . . 147
aera(1)   remove administrators from a project . . . . . . . . . . . . . . 147
aerb(1)   begin a change review  . . . . . . . . . . . . . . . . . . . . . 148
aerbu(1)  stop reviewing a change  . . . . . . . . . . . . . . . . . . . . 149
aerd(1)   remove developers from a project . . . . . . . . . . . . . . . . 150
aerect    draw a rectangle . . . . . . . . . . . . . . . . . . . . . . . . 150
aerevml(1)                                                                 send and receive RevML change sets 151
aerfail(1)                                                                 fail a change review 152
aeri(1)   remove integrators from a project  . . . . . . . . . . . . . . . 153
aerm(1)   add files to be deleted to a change  . . . . . . . . . . . . . . 154
aermpr(1) remove project . . . . . . . . . . . . . . . . . . . . . . . . . 155
aermu(1)  remove files to be deleted from a change . . . . . . . . . . . . 156
aerpa(1)  remove a project alias . . . . . . . . . . . . . . . . . . . . . 157
aerpass(1)                                                                 pass a change review 157
aerpu(1)  rescind a change review pass . . . . . . . . . . . . . . . . . . 158
aerrv(1)  remove reviewers from a project  . . . . . . . . . . . . . . . . 159
aesub(1)  substitute and echo strings  . . . . . . . . . . . . . . . . . . 159
aesubunit(1)                                                               run SubUnit tests 160
aesvt(1)  simple vertion tool  . . . . . . . . . . . . . . . . . . . . . . 160
aet(1)    run tests  . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
aetar(1)  remotely distribute a change via tar . . . . . . . . . . . . . . 163
aev(1)    version information  . . . . . . . . . . . . . . . . . . . . . . 165
aexml(1)  Aegis database to XML  . . . . . . . . . . . . . . . . . . . . . 165
aexver(1) graphical file history . . . . . . . . . . . . . . . . . . . . . 166
tkaeca(1) GUI interface for aeca, using TCL/TK . . . . . . . . . . . . . . 166
tkaegis(1)                                                                 GUI interface for Aegis, using TCL/TK 166
tkaenc(1) GUI interface for aenc, using TCL/TK . . . . . . . . . . . . . . 167
tkaeca(1) GUI interface for aeca, using TCL/TK . . . . . . . . . . . . . . 168
tkaer(1)  GUI  tool  for reviewing Aegis change sets, using
TCL/TK  .                                                                  168
aecattr(5)                                                                 change attributes file format 169
aecstate(5)                                                                change state file format 169
aedir(5)  directory structures . . . . . . . . . . . . . . . . . . . . . . 172
aefattr(5)                                                                 file attribute file format 172
aefstate(5)                                                                file state file format 173
aegis(5)  file format  . . . . . . . . . . . . . . . . . . . . . . . . . . 174
aegstate(5)                                                                global state file format 174
aelock(5)   how locking works, and which commands use them
. . . . .                                                                  175
aemetrics(5)                                                               metrics values file format 175
aepattr(5)                                                                 project attribute file format 175
aepconf(5)                                                                 project configuration file format 177
aepstate(5)                                                                project state file format 184
aer(5)    report script language definition  . . . . . . . . . . . . . . . 185
aerptidx(5)                                                                report index file format 188
aesub(5)  available command substitutions  . . . . . . . . . . . . . . . . 188
aetest(5) test results file format . . . . . . . . . . . . . . . . . . . . 190
aeuconf(5)                                                                 user configuration file format 191
aeustate(5)                                                                user state file 192



Permuted Index(Aegis)                                    Permuted Index(Aegis)



aeget(1)         103      aeget - Aegis CGI file   access
aecpu(1)          80     aegis -CoPy file Undo -   action of aecp
                                         reverse
aena(1)          128    aegis -New Administrator   add a new administrator
                                               -   to a project
aenc(1)          130         aegis -New Change -   add a new change to a
                                                   project
aent(1)          140           aegis -New Test -   add a new test to a
                                                   change
aerm(1)          154        aegis -ReMove file -   add files to be deleted
                                                   to a change
aend(1)          132      aegis -New Developer -   add new developers to a
                                                   project
aenf(1)          132           aegis -New File -   add new files to be
                                                   created by a change
aeni(1)          136     aegis -New Integrator -   add new integrators to a
                                                   project
aenrv(1)         140       aegis -New ReViewer -   add new reviewers to a
                                                   project
aena(1)          128                  aegis -New   Administrator - add a new
                                                   administrator to a
                                                   project
aera(1)          147               aegis -Remove   Administrator - remove
                                                   administrators from a
                                                   project
aera(1)          147               aegis -Remove   administrators from a
                          Administrator - remove   project
aena(1)          128    aegis -New Administrator   administrator to a
                                     - add a new   project
aeannotate(1)     63                               aeannotate - annotated
                                                   source file listing


aecattr(5)       169                               aecattr - aegis change
                                                   attributes file
tkaeca(1)        168   aegis - GUI interface for   aeca, using TCL/TK
tkaepa(1)              aegis - GUI interface for   aeca, using TCL/TK
aecomplete(1)     77                               aecomplete - command
                                                   completion
aecpu(1)          80     aegis -CoPy file Undo -   aecp
                               reverse action of
ae_c(1)           63                               ae c - set change number
aecstate(5)      169                               aecstate - aegis change
                                                   state file
ae-cvs-ci(1)      61                               ae-cvs-ci - checkin a
                                                   change set to CVS
aecvsserver(1)    82                               aecvsserver - serve CVS
                                                   client protocol against
                                                   Aegis projects
aedbu(1)          87   aegis -Develop Begin Undo   aedb
                           - undo the effects of
aede-policy(1)    88         aede-policy - check   aede
                         change set is ready for
aede-policy(1)    88                               aede-policy - check
                                                   change set is ready for
                                                   aede
ae_diff2htm(1)    63                               ae diff2htm - wraps the
                                                   diff2html command
aediff(1)         92                               aediff - file differences
                                                   between deltas
aedir(5)         172                               aedir - aegis directory
                                                   structures
aedist(1)         93                               aedist - remotely
                                                   distribute a change
aeedit(1)         98                               aeedit - edit a change's
                                                   files
aefattr(5)       172                               aefattr - aegis file
                                                   attribute file format
aefinish(1)      102                               aefinish - finish a
                                                   change
aefstate(5)      173                               aefstate - aegis file
                                                   state file
aeget(1)         103                               aeget - Aegis CGI file
                                                   access
aeget(1)         103                     aeget -   Aegis CGI file access
tkaer(1)         168        aegis - GUI tool for   Aegis change sets, using
                                       reviewing   TCL/TK
aexml(1)         165                     aexml -   Aegis database to XML
aecvsserver(1)    82     aecvsserver - serve CVS   Aegis projects
                         client protocol against
tkaegis(1)       166   aegis - GUI interface for   Aegis, using TCL/TK
aegis.cgi(1)     104                 aegis.cgi -   Aegis web interface
                                                   script
aegstate(5)      174                               aegstate - aegis state
                                                   file
aeibu(1)         106      aegis -Integrate Begin   aeib command
                              Undo - reverse the
aelcf(1)         116                               aelcf - list change files
aelock(1)        120                               aelock - take a lock
                                                   while a command runs
aelpf(1)         120                               aelpf - list project
                                                   files
aemakegen(1)     122                               aemakegen - generate a
                                                   Makefile.in from file
                                                   manifest
aemeasure(1)     122                               aemeasure - simple file
                                                   metrics
aemetrics(5)     175                               aemetrics - metrics
                                                   values file format
tkaenc(1)        167   aegis - GUI interface for   aenc, using TCL/TK
aepattr(5)       175                               aepattr - project
                                                   attribute file
aepconf(5)       177                               aepconf - aegis project
                                                   configuration file
aepromptcmd(1)   146                               aepromptcmd - change
                                                   prompt color by change
                                                   state
ae_p(1)           63                               ae p - set project name
aepstate(5)      184                               aepstate - project state
                                                   file
aerect(1)                                          aerect - draw a rectangle
ae-repo-ci(1)     61                               ae-repo-ci - redundant
                                                   repository checkin
aerevml(1)       151                               aerevml - send and
                                                   receive RevML change sets
aerptidx(5)      188                               aerptidx - report index
                                                   file format
aer(5)           185                               aer - report script
                                                   language definition
aesub(5)         188                               aesub - available command
                                                   substitutions
aesub(1)         159                               aesub - substitute and
                                                   echo strings
aesubunit(1)     160                               aesubunit - run SubUnit
                                                   tests
aesvt(1)         160                               aesvt - simple version
                                                   tool
aetar(1)         163                               aetar - remotely
                                                   distribute a change via
                                                   tar
aetest(5)        190                               aetest - test results
                                                   file format
aeuconf(5)       191                               aeuconf - user
                                                   configuration file
aeustate(5)      192                               aeustate - user state
                                                   file
aexml(1)         165                               aexml - Aegis database to
                                                   XML
aexver(1)        166                               aexver - graphical file
                                                   history
aecvsserver(1)    82     aecvsserver - serve CVS   against Aegis projects
                                 client protocol
aenpa(1)         136    aegis -New Project Alias   alias
                          - create a new project
aerpa(1)         157       aegis -Remove Project   alias
                        Alias - remove a project
aenpa(1)         136          aegis -New Project   Alias - create a new
                                                   project alias
aerpa(1)         157       aegis -Remove Project   Alias - remove a project
                                                   alias
aeclone(1)        74         aegis -clone - make   an exact copy of a change
aels(1)          121                     aegis -   annotated directory
                                                   listing
aeannotate(1)     63                aeannotate -   annotated source file
                                                   listing
aenrls(1)        138        aegis -New ReLeaSe -   an old-style project.
                       create a new project from
aedn(1)           97         aegis -DELta NAme -   assign a symbolic name to
                                                   a project delta
aepattr(5)       175           aepattr - project   attribute file
aefattr(5)       172        aefattr - aegis file   attribute file format
aecattr(5)       169      aecattr - aegis change   attributes file
aeca(1)           68               aegis -Change   Attributes - modify the
                                                   attributes of a change
aefa(1)           99                 aegis -File   ATtributes - modify the
                                                   attributes of a file
aepa(1)          143              aegis -Project   Attributes - modify the
                                                   attributes of a project
aeca(1)           68    aegis -Change Attributes   attributes of a change
                                    - modify the
aefa(1)           99    aegis -File ATtributes -   attributes of a file
                                      modify the
aepa(1)          143   aegis -Project Attributes   attributes of a project
                                    - modify the
aesub(5)         188                     aesub -   available command
                                                   substitutions
aed(1)            83    aegis -DIFFerence - find   baseline
                           differences between a
                                  change and the
aerb(1)          148       aegis -Review Begin -   begin a change review
aerb(1)          148               aegis -Review   Begin - begin a change
                                                   review
aedb(1)           85              aegis -Develop   Begin - begin development
                                                   of a change
aeib(1)          105            aegis -Integrate   Begin - begin integrating
                                                   a change
aedb(1)           85      aegis -Develop Begin -   begin development of a
                                                   change
aeib(1)          105    aegis -Integrate Begin -   begin integrating a
                                                   change
aeibu(1)         106            aegis -Integrate   Begin Undo - reverse the
                                                   aeib command
aerbu(1)         149               aegis -Review   Begin Undo - stop
                                                   reviewing a change
aedbu(1)          87              aegis -Develop   Begin Undo - undo the
                                                   effects of aedb
aed(1)            83    aegis -DIFFerence - find   between a change and the
                                     differences   baseline
aediff(1)         92   aediff - file differences   between deltas
aenbr(1)         129         aegis -New BRanch -   branch
                                    create a new
aenbru(1)        129    aegis -New BRanch Undo -   branch
                                        remove a
aenbr(1)         129                  aegis -New   BRanch - create a new
                                                   branch
aemt(1)          123   aegis -Make Transparent -   branch file transparent
                                            make
aemtu(1)         124     aegis -Make Transparent   branch file transparent
                           Undo - no longer make
aenbru(1)        129                  aegis -New   BRanch Undo - remove a
                                                   branch
aeb(1)            64              aegis -Build -   build a change
aeb(1)            64                     aegis -   Build - build a change
aefp(1)          103                     aegis -   calculate file
                                                   fingerprint
aegis.cgi(1)     104                      aegis.   cgi - Aegis web interface
                                                   script
aeget(1)         103               aeget - Aegis   CGI file access
aedist(1)         93           aedist - remotely   change
                                    distribute a
aefinish(1)      102         aefinish - finish a   change
aeb(1)            64      aegis -Build - build a   change
aeca(1)           68    aegis -Change Attributes   change
                         - modify the attributes
                                            of a
aeclone(1)        74      aegis -clone - make an   change
                                 exact copy of a
aecp(1)           77   aegis -CoPy file - copy a   change
                                     file into a
aedb(1)           85      aegis -Develop Begin -   change
                          begin development of a
aede(1)           89        aegis -Develop End -   change
                       complete development of a
aeib(1)          105    aegis -Integrate Begin -   change
                             begin integrating a
aemv(1)          125   aegis -MoVe file - rename   change
                       one or more files as part
                                            of a
aemvu(1)         127     aegis -MoVe file Undo -   change
                       undo the rename a file as
                                       part of a
aenf(1)          132   aegis -New File - add new   change
                        files to be created by a
aenfu(1)         135      aegis -New File Undo -   change
                         remove new files from a
aent(1)          140     aegis -New Test - add a   change
                                   new test to a
aentu(1)         142      aegis -New Test Undo -   change
                         remove new tests from a
aerm(1)          154    aegis -ReMove file - add   change
                        files to be deleted to a
aermu(1)         156   aegis -ReMove file Undo -   change
                              remove files to be
                                  deleted from a
aerbu(1)         149    aegis -Review Begin Undo   change
                              - stop reviewing a
aenc(1)          130                  aegis -New   Change - add a new change
                                                   to a project
aed(1)            83    aegis -DIFFerence - find   change and the baseline
                           differences between a
aecattr(5)       169             aecattr - aegis   change attributes file
aeca(1)           68                     aegis -   Change Attributes -
                                                   modify the attributes of
                                                   a change
aecd(1)           70   aegis -Change Directory -   change directory
aecd(1)           70                     aegis -   Change Directory - change
                                                   directory
aelcf(1)         116                aelcf - list   change files
aedeu(1)          91   aegis -Develop End Undo -   change for further
                                        recall a   development
aencu(1)         131    aegis -New Change Undo -   change from a project
                                    remove a new
aeifail(1)       107     aegis -Integrate Fail -   change integration
                                          fail a
aeipass(1)       112     aegis -Integrate Pass -   change integration
                                          pass a
ae_c(1)           63                  ae c - set   change number
aechown(1)        71   aegis -Change Owner - set   change owner
aechown(1)        71                     aegis -   Change Owner - set change
                                                   owner
aepromptcmd(1)   146               aepromptcmd -   change prompt color by
                                                   change state
aerb(1)          148       aegis -Review Begin -   change review
                                         begin a
aerfail(1)       152   aegis -Review FAIL - fail   change review
                                               a
aerpass(1)       157   aegis -Review PASS - pass   change review
                                               a
aerpu(1)         158   aegis -Review Pass Undo -   change review pass
                                       rescind a
aecomp(1)         77         aegis - compare two   changes
aebuffy(1)        68           aegis - watch for   changes
aepatch(1)       144    aegis - send and receive   changes as patches
aede-policy(1)    88         aede-policy - check   change set is ready for
                                                   aede
aerevml(1)       151          aerevml - send and   change sets
                                   receive RevML
tkaer(1)         168        aegis - GUI tool for   change sets, using TCL/TK
                                 reviewing Aegis
ae-cvs-ci(1)      61       ae-cvs-ci - checkin a   change set to CVS
aeedit(1)         98             aeedit - edit a   change's files
aeintegratq(1)   110           aegis - integrate   changes into projects


aepromptcmd(1)   146        aepromptcmd - change   change state
                                 prompt color by
aecstate(5)      169            aecstate - aegis   change state file
aegis(1)          56             aegis - project   change supervisor
aenc(1)          130   aegis -New Change - add a   change to a project
                                             new
aencu(1)         131                  aegis -New   Change Undo - remove a
                                                   new change from a project
aetar(1)         163            aetar - remotely   change via tar
                                    distribute a
aede-policy(1)    88               aede-policy -   check change set is ready
                                                   for aede
ae-repo-ci(1)     61      ae-repo-ci - redundant   checkin
                                      repository
ae-cvs-ci(1)      61                 ae-cvs-ci -   checkin a change set to
                                                   CVS
ae-cvs-ci(1)      61                     ae-cvs-   ci - checkin a change set
                                                   to CVS
ae-repo-ci(1)     61                    ae-repo-   ci - redundant repository
                                                   checkin
aeclean(1)        73                     aegis -   CLEan - clean files from
                                                   development directory
aeclean(1)        73              aegis -CLEan -   clean files from
                                                   development directory
aecvsserver(1)    82     aecvsserver - serve CVS   client protocol against
                                                   Aegis projects
aeclone(1)        74                     aegis -   clone - make an exact
                                                   copy of a change
aepromptcmd(1)   146        aepromptcmd - change   color by change state
                                          prompt
ae_diff2htm(1)    63     ae diff2htm - wraps the   command
                                       diff2html
aeibu(1)         106      aegis -Integrate Begin   command
                         Undo - reverse the aeib
aecomplete(1)     77                aecomplete -   command completion
aelock(1)        120        aelock - take a lock   command runs
                                         while a
aesub(5)         188           aesub - available   command substitutions
aelock(5)        175   aegis locks - how locking   commands use them
                                works, and which
aecomp(1)         77                     aegis -   compare two changes
aede(1)           89        aegis -Develop End -   complete development of a
                                                   change
aecomplete(1)     77        aecomplete - command   completion
aepconf(5)       177     aepconf - aegis project   configuration file
aeuconf(5)       191              aeuconf - user   configuration file
aecp(1)           77          aegis -CoPy file -   copy a file into a change
aecp(1)           77                     aegis -   CoPy file - copy a file
                                                   into a change
aecpu(1)          80                     aegis -   CoPy file Undo - reverse
                                                   action of aecp
aeclone(1)        74      aegis -clone - make an   copy of a change
                                           exact
aenbr(1)         129         aegis -New BRanch -   create a new branch
aenpr(1)         137        aegis -New PRoject -   create a new project
aenpa(1)         136    aegis -New Project Alias   create a new project
                                               -   alias
aenrls(1)        138        aegis -New ReLeaSe -   create a new project from
                                                   an old-style project.
aenf(1)          132   aegis -New File - add new   created by a change
                                     files to be
ae_c(1)           63                          ae   c - set change number
ae-cvs-ci(1)      61       ae-cvs-ci - checkin a   CVS
                                   change set to
ae-cvs-ci(1)      61                         ae-   cvs-ci - checkin a change
                                                   set to CVS
aecvsserver(1)    82         aecvsserver - serve   CVS client protocol
                                                   against Aegis projects
aexml(1)         165               aexml - Aegis   database to XML
aer(5)           185         aer - report script   definition
                                        language
aermu(1)         156   aegis -ReMove file Undo -   deleted from a change
                              remove files to be
aerm(1)          154    aegis -ReMove file - add   deleted to a change
                                     files to be
aedn(1)           97         aegis -DELta NAme -   delta
                       assign a symbolic name to
                                       a project
aedn(1)           97                     aegis -   DELta NAme - assign a
                                                   symbolic name to a
                                                   project delta
aediff(1)         92   aediff - file differences   deltas
                                         between
aedb(1)           85                     aegis -   Develop Begin - begin
                                                   development of a change
aedbu(1)          87                     aegis -   Develop Begin Undo - undo
                                                   the effects of aedb
aede(1)           89                     aegis -   Develop End - complete
                                                   development of a change
aedeu(1)          91                     aegis -   Develop End Undo - recall
                                                   a change for further
                                                   development
aend(1)          132                  aegis -New   Developer - add new
                                                   developers to a project
aerd(1)          150               aegis -Remove   Developer - remove
                                                   developers from a project
aerd(1)          150   aegis -Remove Developer -   developers from a project
                                          remove
aend(1)          132      aegis -New Developer -   developers to a project
                                         add new
aedeu(1)          91   aegis -Develop End Undo -   development
                             recall a change for
                                         further
aeclean(1)        73        aegis -CLEan - clean   development directory
                                      files from
aedb(1)           85      aegis -Develop Begin -   development of a change
                                           begin
aede(1)           89        aegis -Develop End -   development of a change
                                        complete
ae_diff2htm(1)    63     ae diff2htm - wraps the   diff2html command
ae_diff2htm(1)    63                          ae   diff2htm - wraps the
                                                   diff2html command
aed(1)            83                     aegis -   DIFFerence - find
                                                   differences between a
                                                   change and the baseline
aed(1)            83    aegis -DIFFerence - find   differences between a
                                                   change and the baseline
aediff(1)         92               aediff - file   differences between
                                                   deltas
aecd(1)           70   aegis -Change Directory -   directory
                                          change
aeclean(1)        73        aegis -CLEan - clean   directory
                          files from development
aecd(1)           70               aegis -Change   Directory - change
                                                   directory
aefind(1)        100    aegis - search for files   directory hierarchy
                                              in
aels(1)          121           aegis - annotated   directory listing
aedir(5)         172               aedir - aegis   directory structures
aedist(1)         93           aedist - remotely   distribute a change
aetar(1)         163            aetar - remotely   distribute a change via
                                                   tar
aerect(1)                               aerect -   draw a rectangle
aesub(1)         159      aesub - substitute and   echo strings
aeedit(1)         98                    aeedit -   edit a change's files
aedbu(1)          87   aegis -Develop Begin Undo   effects of aedb
                                      - undo the
aede(1)           89              aegis -Develop   End - complete
                                                   development of a change
aedeu(1)          91              aegis -Develop   End Undo - recall a
                                                   change for further
                                                   development
aeclone(1)        74      aegis -clone - make an   exact copy of a change
aeifail(1)       107     aegis -Integrate Fail -   fail a change integration
aerfail(1)       152        aegis -Review FAIL -   fail a change review
aeifail(1)       107            aegis -Integrate   Fail - fail a change
                                                   integration
aerfail(1)       152               aegis -Review   FAIL - fail a change
                                                   review
aecattr(5)       169      aecattr - aegis change   file
                                      attributes
aecstate(5)      169     aecstate - aegis change   file
                                           state
aefstate(5)      173       aefstate - aegis file   file
                                           state
aefa(1)           99    aegis -File ATtributes -   file
                        modify the attributes of
                                               a
aegstate(5)      174      aegstate - aegis state   file
aepattr(5)       175           aepattr - project   file
                                       attribute
aepconf(5)       177     aepconf - aegis project   file
                                   configuration
aepstate(5)      184    aepstate - project state   file
aeuconf(5)       191              aeuconf - user   file
                                   configuration
aeustate(5)      192       aeustate - user state   file
aeget(1)         103           aeget - Aegis CGI   file access
aerm(1)          154               aegis -ReMove   file - add files to be
                                                   deleted to a change
aenf(1)          132                  aegis -New   File - add new files to
                                                   be created by a change
aemvu(1)         127     aegis -MoVe file Undo -   file as part of a change
                               undo the rename a
aefattr(5)       172             aefattr - aegis   file attribute file
                                                   format
aefa(1)           99                     aegis -   File ATtributes - modify
                                                   the attributes of a file
aecp(1)           77                 aegis -CoPy   file - copy a file into a
                                                   change
aediff(1)         92                    aediff -   file differences between
                                                   deltas
aefp(1)          103           aegis - calculate   file fingerprint
aefattr(5)       172        aefattr - aegis file   file format
                                       attribute
aegis(5)         174                     aegis -   file format
aemetrics(5)     175         aemetrics - metrics   file format
                                          values
aerptidx(5)      188     aerptidx - report index   file format
aetest(5)        190       aetest - test results   file format
aexver(1)        166          aexver - graphical   file history
aecp(1)           77   aegis -CoPy file - copy a   file into a change
aeannotate(1)     63      aeannotate - annotated   file listing
                                          source
aemakegen(1)     122      aemakegen - generate a   file manifest
                                Makefile.in from
aemeasure(1)     122          aemeasure - simple   file metrics
aemv(1)          125                 aegis -MoVe   file - rename one or more
                                                   files as part of a change
aeedit(1)         98    aeedit - edit a change's   files
aelcf(1)         116         aelcf - list change   files
aelpf(1)         120        aelpf - list project   files
aemv(1)          125   aegis -MoVe file - rename   files as part of a change
                                     one or more
aenfu(1)         135      aegis -New File Undo -   files from a change
                                      remove new
aeclean(1)        73        aegis -CLEan - clean   files from development
                                                   directory
aefind(1)        100          aegis - search for   files in directory
                                                   hierarchy
aefstate(5)      173            aefstate - aegis   file state file
aenf(1)          132   aegis -New File - add new   files to be created by a
                                                   change
aermu(1)         156   aegis -ReMove file Undo -   files to be deleted from
                                          remove   a change
aerm(1)          154    aegis -ReMove file - add   files to be deleted to a
                                                   change
aemt(1)          123   aegis -Make Transparent -   file transparent
                                     make branch
aemtu(1)         124     aegis -Make Transparent   file transparent
                           Undo - no longer make
                                          branch
aermu(1)         156               aegis -ReMove   file Undo - remove files
                                                   to be deleted from a
                                                   change
aenfu(1)         135                  aegis -New   File Undo - remove new
                                                   files from a change
aecpu(1)          80                 aegis -CoPy   file Undo - reverse
                                                   action of aecp
aemvu(1)         127                 aegis -MoVe   file Undo - undo the
                                                   rename a file as part of
                                                   a change
aed(1)            83         aegis -DIFFerence -   find differences between
                                                   a change and the baseline
aefp(1)          103      aegis - calculate file   fingerprint
aefinish(1)      102                  aefinish -   finish a change
tkaeca(1)        168       aegis - GUI interface   for aeca, using TCL/TK
tkaepa(1)                  aegis - GUI interface   for aeca, using TCL/TK
aede-policy(1)    88         aede-policy - check   for aede
                             change set is ready
tkaegis(1)       166       aegis - GUI interface   for Aegis, using TCL/TK
tkaenc(1)        167       aegis - GUI interface   for aenc, using TCL/TK
aebuffy(1)        68               aegis - watch   for changes
aeimport(1)      108              aegis - import   foreign repository into
aefind(1)        100              aegis - search   for files in directory
                                                   hierarchy
aedeu(1)          91   aegis -Develop End Undo -   for further development
                                 recall a change
aefattr(5)       172        aefattr - aegis file   format
                                  attribute file
aegis(5)         174                aegis - file   format
aemetrics(5)     175         aemetrics - metrics   format
                                     values file
aerptidx(5)      188     aerptidx - report index   format
                                            file
aetest(5)        190       aetest - test results   format
                                            file
tkaer(1)         168            aegis - GUI tool   for reviewing Aegis
                                                   change sets, using TCL/TK
aenfu(1)         135      aegis -New File Undo -   from a change
                                remove new files
aentu(1)         142      aegis -New Test Undo -   from a change
                                remove new tests
aermu(1)         156   aegis -ReMove file Undo -   from a change
                              remove files to be
                                         deleted
aenrls(1)        138        aegis -New ReLeaSe -   from an old-style
                            create a new project   project.
aencu(1)         131    aegis -New Change Undo -   from a project
                             remove a new change

aera(1)          147               aegis -Remove   from a project
                          Administrator - remove
                                  administrators
aerd(1)          150   aegis -Remove Developer -   from a project
                               remove developers
aeri(1)          153    aegis -Remove Integrator   from a project
                            - remove integrators
aerrv(1)         159    aegis -Remove ReViewer -   from a project
                                remove reviewers
aeclean(1)        73        aegis -CLEan - clean   from development
                                           files   directory
aemakegen(1)     122      aemakegen - generate a   from file manifest
                                     Makefile.in
aedeu(1)          91   aegis -Develop End Undo -   further development
                             recall a change for
aemakegen(1)     122                 aemakegen -   generate a Makefile.in
                                                   from file manifest
aer(1)           147      aegis -RePorT - report   generator
aev(1)           165            aegis -VERSion -   give version information
aexver(1)        166                    aexver -   graphical file history
tkaeca(1)        168                     aegis -   GUI interface for aeca,
                                                   using TCL/TK
tkaepa(1)                                aegis -   GUI interface for aeca,
                                                   using TCL/TK
tkaegis(1)       166                     aegis -   GUI interface for Aegis,
                                                   using TCL/TK
tkaenc(1)        167                     aegis -   GUI interface for aenc,
                                                   using TCL/TK
tkaer(1)         168                     aegis -   GUI tool for reviewing
                                                   Aegis change sets, using
                                                   TCL/TK
aefind(1)        100    aegis - search for files   hierarchy
                                    in directory
aexver(1)        166     aexver - graphical file   history
aelock(5)        175               aegis locks -   how locking works, and
                                                   which commands use them
ae_diff2htm(1)    63     ae diff2htm - wraps the   html command
                                           diff2
ae_diff2htm(1)    63                    ae diff2   htm - wraps the diff2html
                                                   command
aeimport(1)      108                     aegis -   import foreign repository
                                                   into
aerptidx(5)      188           aerptidx - report   index file format
aefind(1)        100    aegis - search for files   in directory hierarchy
aev(1)           165       aegis -VERSion - give   information
                                         version
aemakegen(1)     122      aemakegen - generate a   in from file manifest
                                       Makefile.
aeib(1)          105                     aegis -   Integrate Begin - begin
                                                   integrating a change
aeibu(1)         106                     aegis -   Integrate Begin Undo -
                                                   reverse the aeib command
aeintegratq(1)   110                     aegis -   integrate changes into
                                                   projects
aeifail(1)       107                     aegis -   Integrate Fail - fail a
                                                   change integration
aeipass(1)       112                     aegis -   Integrate Pass - pass a
                                                   change integration
aeib(1)          105    aegis -Integrate Begin -   integrating a change
                                           begin
aeifail(1)       107     aegis -Integrate Fail -   integration
                                   fail a change
aeipass(1)       112     aegis -Integrate Pass -   integration
                                   pass a change
aeni(1)          136                  aegis -New   Integrator - add new
                                                   integrators to a project
aeri(1)          153               aegis -Remove   Integrator - remove
                                                   integrators from a
                                                   project
aeri(1)          153    aegis -Remove Integrator   integrators from a
                                        - remove   project
aeni(1)          136     aegis -New Integrator -   integrators to a project
                                         add new
ael(1)           114          aegis -List - list   interesting things
                                      (possibly)
tkaeca(1)        168                 aegis - GUI   interface for aeca, using
                                                   TCL/TK
tkaepa(1)                            aegis - GUI   interface for aeca, using
                                                   TCL/TK
tkaegis(1)       166                 aegis - GUI   interface for Aegis,
                                                   using TCL/TK
tkaenc(1)        167                 aegis - GUI   interface for aenc, using
                                                   TCL/TK
aegis.cgi(1)     104       aegis.cgi - Aegis web   interface script
aeimport(1)      108      aegis - import foreign   into
                                      repository
aecp(1)           77   aegis -CoPy file - copy a   into a change
                                            file
aeintegratq(1)   110   aegis - integrate changes   into projects
aede-policy(1)    88         aede-policy - check   is ready for aede
                                      change set
aer(5)           185         aer - report script   language definition
aelcf(1)         116                     aelcf -   list change files
aeannotate(1)     63      aeannotate - annotated   listing
                                     source file
aels(1)          121           aegis - annotated   listing
                                       directory
ael(1)           114                     aegis -   List - list (possibly)
                                                   interesting things
ael(1)           114               aegis -List -   list (possibly)
                                                   interesting things
aelpf(1)         120                     aelpf -   list project files
aelock(5)        175           aegis locks - how   locking works, and which
                                                   commands use them
aelock(5)        175                       aegis   locks - how locking
                                                   works, and which commands
                                                   use them
aelock(1)        120             aelock - take a   lock while a command runs
aemtu(1)         124     aegis -Make Transparent   longer make branch file
                                       Undo - no   transparent
aeclone(1)        74              aegis -clone -   make an exact copy of a
                                                   change
aemt(1)          123   aegis -Make Transparent -   make branch file
                                                   transparent
aemtu(1)         124     aegis -Make Transparent   make branch file
                                Undo - no longer   transparent
aemakegen(1)     122      aemakegen - generate a   Makefile.in from file
                                                   manifest
aemt(1)          123                     aegis -   Make Transparent - make
                                                   branch file transparent
aemtu(1)         124                     aegis -   Make Transparent Undo -
                                                   no longer make branch
                                                   file transparent
aemakegen(1)     122      aemakegen - generate a   manifest
                           Makefile.in from file
aemeasure(1)     122     aemeasure - simple file   metrics
aemetrics(5)     175                 aemetrics -   metrics values file
                                                   format
aeca(1)           68    aegis -Change Attributes   modify the attributes of
                                               -   a change
aefa(1)           99    aegis -File ATtributes -   modify the attributes of
                                                   a file
aepa(1)          143   aegis -Project Attributes   modify the attributes of
                                               -   a project
aemv(1)          125   aegis -MoVe file - rename   more files as part of a
                                          one or   change
aemv(1)          125                     aegis -   MoVe file - rename one or
                                                   more files as part of a
                                                   change
aemvu(1)         127                     aegis -   MoVe file Undo - undo the
                                                   rename a file as part of
                                                   a change
ae_p(1)           63          ae p - set project   name
aedn(1)           97                aegis -DELta   NAme - assign a symbolic
                                                   name to a project delta
aedn(1)           97         aegis -DELta NAme -   name to a project delta
                               assign a symbolic
aena(1)          128                     aegis -   New Administrator - add a
                                                   new administrator to a
                                                   project
aena(1)          128    aegis -New Administrator   new administrator to a
                                         - add a   project
aenbr(1)         129         aegis -New BRanch -   new branch
                                        create a
aenbr(1)         129                     aegis -   New BRanch - create a new
                                                   branch
aenbru(1)        129                     aegis -   New BRanch Undo - remove
                                                   a branch
aenc(1)          130                     aegis -   New Change - add a new
                                                   change to a project
aencu(1)         131    aegis -New Change Undo -   new change from a project
                                        remove a
aenc(1)          130   aegis -New Change - add a   new change to a project
aencu(1)         131                     aegis -   New Change Undo - remove
                                                   a new change from a
                                                   project
aend(1)          132                     aegis -   New Developer - add new
                                                   developers to a project
aend(1)          132      aegis -New Developer -   new developers to a
                                             add   project
aenf(1)          132                     aegis -   New File - add new files
                                                   to be created by a change
aenfu(1)         135      aegis -New File Undo -   new files from a change
                                          remove
aenf(1)          132       aegis -New File - add   new files to be created
                                                   by a change
aenfu(1)         135                     aegis -   New File Undo - remove
                                                   new files from a change
aeni(1)          136                     aegis -   New Integrator - add new
                                                   integrators to a project
aeni(1)          136     aegis -New Integrator -   new integrators to a
                                             add   project
aenpr(1)         137        aegis -New PRoject -   new project
                                        create a
aenpa(1)         136    aegis -New Project Alias   new project alias
                                      - create a
aenpa(1)         136                     aegis -   New Project Alias -
                                                   create a new project
                                                   alias
aenpr(1)         137                     aegis -   New PRoject - create a
                                                   new project
aenrls(1)        138        aegis -New ReLeaSe -   new project from an old-
                                        create a   style project.
aenrls(1)        138                     aegis -   New ReLeaSe - create a
                                                   new project from an old-
                                                   style project.
aenrv(1)         140                     aegis -   New ReViewer - add new
                                                   reviewers to a project
aenrv(1)         140   aegis -New ReViewer - add   new reviewers to a
                                                   project
aent(1)          140                     aegis -   New Test - add a new test
                                                   to a change
aentu(1)         142      aegis -New Test Undo -   new tests from a change
                                          remove
aent(1)          140     aegis -New Test - add a   new test to a change
aentu(1)         142                     aegis -   New Test Undo - remove
                                                   new tests from a change
aemtu(1)         124     aegis -Make Transparent   no longer make branch
                                          Undo -   file transparent
ae_c(1)           63           ae c - set change   number
aenrls(1)        138        aegis -New ReLeaSe -   old-style project.
                       create a new project from
                                              an
aemv(1)          125   aegis -MoVe file - rename   one or more files as part
                                                   of a change
aemv(1)          125   aegis -MoVe file - rename   or more files as part of
                                             one   a change
aechown(1)        71   aegis -Change Owner - set   owner
                                          change
aechown(1)        71               aegis -Change   Owner - set change owner
aemv(1)          125   aegis -MoVe file - rename   part of a change
                            one or more files as
aemvu(1)         127     aegis -MoVe file Undo -   part of a change
                       undo the rename a file as
aerpu(1)         158   aegis -Review Pass Undo -   pass
                         rescind a change review
aeipass(1)       112     aegis -Integrate Pass -   pass a change integration
aerpass(1)       157        aegis -Review PASS -   pass a change review
aeipass(1)       112            aegis -Integrate   Pass - pass a change
                                                   integration
aerpass(1)       157               aegis -Review   PASS - pass a change
                                                   review
aerpu(1)         158               aegis -Review   Pass Undo - rescind a
                                                   change review pass
aepatch(1)       144    aegis - send and receive   patches
                                      changes as
aede-policy(1)    88                       aede-   policy - check change set
                                                   is ready for aede
ael(1)           114        aegis -List - list (   possibly) interesting
                                                   things
aena(1)          128    aegis -New Administrator   project
                       - add a new administrator
                                            to a
aenc(1)          130   aegis -New Change - add a   project
                                 new change to a
aencu(1)         131    aegis -New Change Undo -   project
                        remove a new change from
                                               a
aend(1)          132      aegis -New Developer -   project
                         add new developers to a
aeni(1)          136     aegis -New Integrator -   project
                        add new integrators to a
aenpr(1)         137        aegis -New PRoject -   project
                                    create a new
aenrls(1)        138        aegis -New ReLeaSe -   project.
                       create a new project from
                                    an old-style
aenrv(1)         140   aegis -New ReViewer - add   project
                              new reviewers to a
aepa(1)          143   aegis -Project Attributes   project
                         - modify the attributes
                                            of a
aera(1)          147               aegis -Remove   project
                          Administrator - remove
                           administrators from a
aerd(1)          150   aegis -Remove Developer -   project
                        remove developers from a
aeri(1)          153    aegis -Remove Integrator   project
                       - remove integrators from
                                               a

aermpr(1)        155     aegis -ReMove PRoject -   project
                                          remove
aerrv(1)         159    aegis -Remove ReViewer -   project
                         remove reviewers from a
aenpa(1)         136    aegis -New Project Alias   project alias
                                  - create a new
aerpa(1)         157       aegis -Remove Project   project alias
                                Alias - remove a
aenpa(1)         136                  aegis -New   Project Alias - create a
                                                   new project alias
aerpa(1)         157               aegis -Remove   Project Alias - remove a
                                                   project alias
aepattr(5)       175                   aepattr -   project attribute file
aepa(1)          143                     aegis -   Project Attributes -
                                                   modify the attributes of
                                                   a project
aegis(1)          56                     aegis -   project change supervisor
aepconf(5)       177             aepconf - aegis   project configuration
                                                   file
aenpr(1)         137                  aegis -New   PRoject - create a new
                                                   project
aedn(1)           97         aegis -DELta NAme -   project delta
                       assign a symbolic name to
                                               a
aelpf(1)         120                aelpf - list   project files
aenrls(1)        138        aegis -New ReLeaSe -   project from an old-style
                                    create a new   project.
ae_p(1)           63                  ae p - set   project name
aermpr(1)        155               aegis -ReMove   PRoject - remove project
aecvsserver(1)    82     aecvsserver - serve CVS   projects
                         client protocol against
                                           Aegis
aeintegratq(1)   110   aegis - integrate changes   projects
                                            into
aepstate(5)      184                  aepstate -   project state file
aepromptcmd(1)   146        aepromptcmd - change   prompt color by change
                                                   state
aecvsserver(1)    82     aecvsserver - serve CVS   protocol against Aegis
                                          client   projects
ae_p(1)           63                          ae   p - set project name
ae-sccs-put(1)    62                     aegis -   put sccs version
aede-policy(1)    88         aede-policy - check   ready for aede
                                   change set is
aedeu(1)          91   aegis -Develop End Undo -   recall a change for
                                                   further development
aepatch(1)       144            aegis - send and   receive changes as
                                                   patches
aerevml(1)       151          aerevml - send and   receive RevML change sets
aerect(1)                        aerect - draw a   rectangle
ae-repo-ci(1)     61                ae-repo-ci -   redundant repository
                                                   checkin
aenrls(1)        138                  aegis -New   ReLeaSe - create a new
                                                   project from an old-style
                                                   project.
aedist(1)         93                    aedist -   remotely distribute a
                                                   change
aetar(1)         163                     aetar -   remotely distribute a
                                                   change via tar
aenbru(1)        129    aegis -New BRanch Undo -   remove a branch
aera(1)          147                     aegis -   Remove Administrator -
                                                   remove administrators
                                                   from a project
aera(1)          147               aegis -Remove   remove administrators
                                 Administrator -   from a project
aencu(1)         131    aegis -New Change Undo -   remove a new change from
                                                   a project
aerpa(1)         157       aegis -Remove Project   remove a project alias
                                         Alias -
aerd(1)          150                     aegis -   Remove Developer - remove
                                                   developers from a project
aerd(1)          150   aegis -Remove Developer -   remove developers from a
                                                   project
aerm(1)          154                     aegis -   ReMove file - add files
                                                   to be deleted to a change
aermu(1)         156   aegis -ReMove file Undo -   remove files to be
                                                   deleted from a change
aermu(1)         156                     aegis -   ReMove file Undo - remove
                                                   files to be deleted from
                                                   a change
aeri(1)          153                     aegis -   Remove Integrator -
                                                   remove integrators from a
                                                   project
aeri(1)          153    aegis -Remove Integrator   remove integrators from a
                                               -   project
aenfu(1)         135      aegis -New File Undo -   remove new files from a
                                                   change
aentu(1)         142      aegis -New Test Undo -   remove new tests from a
                                                   change
aermpr(1)        155     aegis -ReMove PRoject -   remove project
aerpa(1)         157                     aegis -   Remove Project Alias -
                                                   remove a project alias
aermpr(1)        155                     aegis -   ReMove PRoject - remove
                                                   project
aerrv(1)         159                     aegis -   Remove ReViewer - remove
                                                   reviewers from a project
aerrv(1)         159    aegis -Remove ReViewer -   remove reviewers from a
                                                   project
aemvu(1)         127     aegis -MoVe file Undo -   rename a file as part of
                                        undo the   a change
aemv(1)          125          aegis -MoVe file -   rename one or more files
                                                   as part of a change
ae-repo-ci(1)     61                         ae-   repo-ci - redundant
                                                   repository checkin
aer(1)           147             aegis -RePorT -   report generator
aerptidx(5)      188                  aerptidx -   report index file format
aer(1)           147                     aegis -   RePorT - report generator
aer(5)           185                       aer -   report script language
                                                   definition
ae-repo-ci(1)     61      ae-repo-ci - redundant   repository checkin
aeimport(1)      108      aegis - import foreign   repository into
aerpu(1)         158   aegis -Review Pass Undo -   rescind a change review
                                                   pass
aetest(5)        190               aetest - test   results file format
aecpu(1)          80     aegis -CoPy file Undo -   reverse action of aecp
aeibu(1)         106      aegis -Integrate Begin   reverse the aeib command
                                          Undo -
aerb(1)          148       aegis -Review Begin -   review
                                  begin a change
aerfail(1)       152   aegis -Review FAIL - fail   review
                                        a change
aerpass(1)       157   aegis -Review PASS - pass   review
                                        a change
aerb(1)          148                     aegis -   Review Begin - begin a
                                                   change review
aerbu(1)         149                     aegis -   Review Begin Undo - stop
                                                   reviewing a change
aenrv(1)         140                  aegis -New   ReViewer - add new
                                                   reviewers to a project
aerrv(1)         159               aegis -Remove   ReViewer - remove
                                                   reviewers from a project
aerrv(1)         159    aegis -Remove ReViewer -   reviewers from a project
                                          remove
aenrv(1)         140   aegis -New ReViewer - add   reviewers to a project
                                             new
aerfail(1)       152                     aegis -   Review FAIL - fail a
                                                   change review
aerbu(1)         149    aegis -Review Begin Undo   reviewing a change
                                          - stop
tkaer(1)         168        aegis - GUI tool for   reviewing Aegis change
                                                   sets, using TCL/TK
aerpu(1)         158   aegis -Review Pass Undo -   review pass
                                rescind a change
aerpass(1)       157                     aegis -   Review PASS - pass a
                                                   change review
aerpu(1)         158                     aegis -   Review Pass Undo -
                                                   rescind a change review
                                                   pass
aerevml(1)       151          aerevml - send and   RevML change sets
                                         receive
aelock(1)        120        aelock - take a lock   runs
                                 while a command
aesubunit(1)     160                 aesubunit -   run SubUnit tests
aet(1)           161               aegis -Test -   run tests
ae-sccs-put(1)    62                 aegis - put   sccs version
aegis.cgi(1)     104       aegis.cgi - Aegis web   script
                                       interface
aer(5)           185                aer - report   script language
                                                   definition
aefind(1)        100                     aegis -   search for files in
                                                   directory hierarchy
aepatch(1)       144                     aegis -   send and receive changes
                                                   as patches
aerevml(1)       151                   aerevml -   send and receive RevML
                                                   change sets
aecvsserver(1)    82               aecvsserver -   serve CVS client protocol
                                                   against Aegis projects
ae_c(1)           63                      ae c -   set change number
aechown(1)        71       aegis -Change Owner -   set change owner
aede-policy(1)    88         aede-policy - check   set is ready for aede
                                          change
ae_p(1)           63                      ae p -   set project name
aerevml(1)       151          aerevml - send and   sets
                            receive RevML change
tkaer(1)         168        aegis - GUI tool for   sets, using TCL/TK
                          reviewing Aegis change
ae-cvs-ci(1)      61       ae-cvs-ci - checkin a   set to CVS
                                          change
aeedit(1)         98     aeedit - edit a change'   s files
aemeasure(1)     122                 aemeasure -   simple file metrics
aesvt(1)         160                     aesvt -   simple version tool
aeannotate(1)     63      aeannotate - annotated   source file listing
aepromptcmd(1)   146        aepromptcmd - change   state
                          prompt color by change
aecstate(5)      169     aecstate - aegis change   state file
aefstate(5)      173       aefstate - aegis file   state file
aegstate(5)      174            aegstate - aegis   state file
aepstate(5)      184          aepstate - project   state file
aeustate(5)      192             aeustate - user   state file
aerbu(1)         149    aegis -Review Begin Undo   stop reviewing a change
                                               -
aesub(1)         159      aesub - substitute and   strings
                                            echo
aedir(5)         172     aedir - aegis directory   structures
aenrls(1)        138        aegis -New ReLeaSe -   style project.
                       create a new project from
                                         an old-
aesub(1)         159                     aesub -   substitute and echo
                                                   strings
aesub(5)         188   aesub - available command   substitutions
aesubunit(1)     160             aesubunit - run   SubUnit tests
aegis(1)          56      aegis - project change   supervisor
aedn(1)           97         aegis -DELta NAme -   symbolic name to a
                                        assign a   project delta
aelock(1)        120                    aelock -   take a lock while a
                                                   command runs
aetar(1)         163            aetar - remotely   tar
                         distribute a change via
tkaeca(1)        168   aegis - GUI interface for   TCL/TK
                                     aeca, using
tkaepa(1)              aegis - GUI interface for   TCL/TK
                                     aeca, using
tkaegis(1)       166   aegis - GUI interface for   TCL/TK
                                    Aegis, using
tkaenc(1)        167   aegis - GUI interface for   TCL/TK
                                     aenc, using
tkaer(1)         168        aegis - GUI tool for   TCL/TK
                          reviewing Aegis change
                                     sets, using
aent(1)          140                  aegis -New   Test - add a new test to
                                                   a change
aetest(5)        190                    aetest -   test results file format
aet(1)           161                     aegis -   Test - run tests
aet(1)           161           aegis -Test - run   tests
aesubunit(1)     160     aesubunit - run SubUnit   tests
aentu(1)         142      aegis -New Test Undo -   tests from a change
                                      remove new
aent(1)          140     aegis -New Test - add a   test to a change
                                             new
aentu(1)         142                  aegis -New   Test Undo - remove new
                                                   tests from a change
aelock(5)        175   aegis locks - how locking   them
                       works, and which commands
                                             use
ael(1)           114          aegis -List - list   things
                          (possibly) interesting
tkaeca(1)        168   aegis - GUI interface for   TK
                                aeca, using TCL/
tkaepa(1)              aegis - GUI interface for   TK
                                aeca, using TCL/
tkaegis(1)       166   aegis - GUI interface for   TK
                               Aegis, using TCL/
tkaenc(1)        167   aegis - GUI interface for   TK
                                aenc, using TCL/
tkaer(1)         168        aegis - GUI tool for   TK
                          reviewing Aegis change
                                sets, using TCL/
aesvt(1)         160      aesvt - simple version   tool
tkaer(1)         168                 aegis - GUI   tool for reviewing Aegis
                                                   change sets, using TCL/TK
aemt(1)          123   aegis -Make Transparent -   transparent
                                make branch file
aemtu(1)         124     aegis -Make Transparent   transparent
                           Undo - no longer make
                                     branch file
aemt(1)          123                 aegis -Make   Transparent - make branch
                                                   file transparent
aemtu(1)         124                 aegis -Make   Transparent Undo - no
                                                   longer make branch file
                                                   transparent
aecomp(1)         77             aegis - compare   two changes
aemtu(1)         124     aegis -Make Transparent   Undo - no longer make
                                                   branch file transparent
aedeu(1)          91          aegis -Develop End   Undo - recall a change
                                                   for further development
aenbru(1)        129           aegis -New BRanch   Undo - remove a branch
aencu(1)         131           aegis -New Change   Undo - remove a new
                                                   change from a project
aermu(1)         156          aegis -ReMove file   Undo - remove files to be
                                                   deleted from a change


aenfu(1)         135             aegis -New File   Undo - remove new files
                                                   from a change
aentu(1)         142             aegis -New Test   Undo - remove new tests
                                                   from a change
aerpu(1)         158          aegis -Review Pass   Undo - rescind a change
                                                   review pass
aecpu(1)          80            aegis -CoPy file   Undo - reverse action of
                                                   aecp
aeibu(1)         106      aegis -Integrate Begin   Undo - reverse the aeib
                                                   command
aerbu(1)         149         aegis -Review Begin   Undo - stop reviewing a
                                                   change
aedbu(1)          87   aegis -Develop Begin Undo   undo the effects of aedb
                                               -
aemvu(1)         127     aegis -MoVe file Undo -   undo the rename a file as
                                                   part of a change
aedbu(1)          87        aegis -Develop Begin   Undo - undo the effects
                                                   of aedb
aemvu(1)         127            aegis -MoVe file   Undo - undo the rename a
                                                   file as part of a change
aeuconf(5)       191                   aeuconf -   user configuration file
aeustate(5)      192                  aeustate -   user state file
aelock(5)        175   aegis locks - how locking   use them
                       works, and which commands
tkaeca(1)        168   aegis - GUI interface for   using TCL/TK
                                           aeca,
tkaepa(1)              aegis - GUI interface for   using TCL/TK
                                           aeca,
tkaegis(1)       166   aegis - GUI interface for   using TCL/TK
                                          Aegis,
tkaenc(1)        167   aegis - GUI interface for   using TCL/TK
                                           aenc,
tkaer(1)         168        aegis - GUI tool for   using TCL/TK
                          reviewing Aegis change
                                           sets,
aemetrics(5)     175         aemetrics - metrics   values file format
ae-sccs-put(1)    62            aegis - put sccs   version
aev(1)           165                     aegis -   VERSion - give version
                                                   information
aev(1)           165       aegis -VERSion - give   version information
aesvt(1)         160              aesvt - simple   version tool
aetar(1)         163            aetar - remotely   via tar
                             distribute a change
aebuffy(1)        68                     aegis -   watch for changes
aegis.cgi(1)     104           aegis.cgi - Aegis   web interface script
aelock(5)        175   aegis locks - how locking   which commands use them
                                      works, and
aelock(1)        120        aelock - take a lock   while a command runs
aelock(5)        175   aegis locks - how locking   works, and which commands
                                                   use them
ae_diff2htm(1)    63               ae diff2htm -   wraps the diff2html
                                                   command
aexml(1)         165   aexml - Aegis database to   XML



Reference Manual                     Aegis                             -cmxcvi
