.













                              Aegis

                   A Project Change Supervisor




                        Reference Manual







                          Peter Miller

                    [4mmillerp@canb.auug.org.au[0m


































.












This document describes Aegis version 4.24.3
and was prepared 6 July 2013.






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,
2010 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/>.

[1mNAME[0m
        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, 2010 Peter
        Miller

        [4mAegis[24m is distributed under the terms of the GNU General Public
        License.  See the LICENSE section, below, for more details.

        [1maegis [22m(ee.j.iz) [4mn.,[24m a protection, a defense.

[1mDESCRIPTION[0m
        [4mAegis[24m is a CASE tool with a difference.  In the spirit of the UNIX
        Operating System, [4mAegis[24m 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.  [4mAegis[24m adds to this list with software
        configuration management, and true to UNIX philosophy, [4mAegis[24m 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 [4mAegis[24m does?  Just what is software
        configuration management?  This question is sufficiently broad as to
        require a book in answer.  In essence, [4mAegis[24m 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 [4mAegis[0m
        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 [4mAegis'[24m major functions.

        It should be noted that [4mAegis[24m 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.

[1mBENEFITS[0m
        So why should you use [4mAegis[24m?

        [4mAegis[24m 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.  [4mAegis[24m 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, [4mAegis[24m 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 [4mAegis[24m is that there are [4mO(n)[24m interactions between
        developers and the baseline.  Contrast this with a master source which
        is being edited directly by the developers - there are [4mO(n!)[0m
        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 [4mAegis[24m?  Recall that RCS provides
        file locking, but only for one file at a time.  [4mAegis[24m 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.  [4mAegis[24m 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.

[1mARCHIVE SITE[0m
        The latest version of [4mAegis[24m is available by HTTP from:

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

        This directory also contains a few other pieces of software written by
        me.  Some are referred to in the [4mAegis[24m documentation.  Please have a
        look if you are interested.

   [1mMirrors[0m
        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.3.README   # Description, from tar file
                File:   aegis.4.24.3.lsm      # Description, in LSM format
                File:   aegis.4.24.3.spec     # RedHat package specification
                File:   aegis.4.24.3.ae       # the complete source, aedist format
                File:   aegis.4.24.3.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).

[1mMAILING LIST[0m
        A mailing list has been created so that users of [4mAegis[24m may exchange
        ideas about how to use [4mAegis[24m.  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.

   [1mHow To Subscribe[0m
        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 [1msubscribe [22mdialogue.

   [1mArchive[0m
        The mailing list is archived at eGroups.  The URL is
        http://www.egroups.com/list/aegis-users/info.html

   [1mNo Files By EMail[0m
        The software which handles this mailing list CANNOT send you a copy of
        [4mAegis[24m.  Please use FTP or ftp-by-email, instead.

[1mBUILDING[0m
        Instructions on how to build and test [4mAegis[24m are to be found in the
        [4mBUILDING[24m file included in this distribution.

[1mSOME HISTORY[0m
        The idea for [4mAegis[24m 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).  [4mAegis[24m 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 [4mAegis[24m took shape, and
        formed most of the design document for [4mAegis[24m.

        Since getting the first glimmerings of a functional [4mAegis[24m 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
        [4mAegis[24m, as is anything I distribute.  All code I write for myself, and
        all new code I write for my employer, goes under [4mAegis[24m.  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
        [4mAegis[24m appeared on the scene, and I used it daily.  When I placed cook
        under [4mAegis[24m, 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.

   [1mBranching[0m
        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.

   [1mGeographically Distributed Development[0m
        In 1999 a conversation on the aegis-users mailing list resulted in the
        creation of [4maedist[24m, 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.

[1mWindows NT[0m
        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 [4mseteuid[24m system
        call, which has no direct equivalent on Windows NT.  This makes
        porting difficult.  Single-user ports are possible ([4me.g.[24m 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.

[1mLICENSE[0m
        [4mAegis[24m 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.

        [4mAegis[24m 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 [4mLICENSE[24m file included in this distribution.

[1mAUTHOR[0m
        Peter MillerE-Mail:   millerp@canb.auug.org.au
        /\/\*                                     WWW:   http://www.canb.auug.org.au/~millerp/

[1mRELEASE NOTES[0m
        For excruciating detail, and also acknowledgments of those who
        generously sent me feedback, please see the [4metc/CHANGES.*[24m  files
        included in this distribution.

   [1mUpgrading[0m
        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.

   [1mVersion 4.24.3 (08-Mar-2010)[0m
        * This release fixes definitly CVE-2008-4938 since the fix included in
        4.24.1 was incomplete.

        * The [4maecp[24m(1) command has been corrected to not issue a multiple user
        permission set bug when invoked as: aecp -ind -o.

        * The [4maeib[24m(1) command has been modified to no copy into the baseline
        derived files tracked by Aegis.

        * A bug has been fixed that made it possible to delete the difference
        files for removed files, making it impossible to develop_end the
        change.

        * It is now possible to build Aegis on Debian under pbuilder.

        * Various portability related improvement.

   [1mVersion 4.24.2 (25-Jun-2009)[0m
        * 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 [4maerevml[24m(1) command was incorrectly printing twice user defined
        attributes. This behavior has been fixed.

        * The [4maeclean[24m(1) command was incorrectly checking the patterns against
        the absolute name of the files.  This behavior has been fixed.

        * The [4maelock[24m(1) man page was incorrectly reporting the attribute name
        aelock use.  This has been fixed.

        * The [4maesub[24m(5) man page now reference [4maeuconf[24m(5) in the email address
        section.

        * The [4maedist[24m(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 [4mae-repo-ci[24m(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.

   [1mVersion 4.24.1 (24-Sep-2008)[0m
        [1mSecurity: [22m[ #2079025 ] This update fix two security problems
        discovered by the Debian crew (Debian #496400 and #496402,
        CVE-2008-4938) You are encouraged to upgrade.

        [1mRemoved functionalities: [22mIn 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.

   [1mVersion 4.24 (09-Mar-2008)[0m
        * Numerous portability improvements.

        * Numerous improvements to the history reconstruction code.

        * Numerous improvements and bug fixes to the distributed development
        code.  See [4maedist[24m(1), [4maeget[24m(1), [4maetar[24m(1) and [4maepatch[24m(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 [4mael[24m(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 [4maesvt[24m(1) checkout command that
        can fail to extract from a gzip compressed archive.

        * A bug has been fixed in the [4maechown[24m(1) command, to stop a segfault
        when printing some error messages.

        * There is a new [4maebisect[24m(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 [4maeclone[24m(1) which caused [4maecp[24m [4m-delta[24m to
        segfault when a change set whith a removed file was cloned, and the
        clone change set subsequently integrated.

        * The [4maede-policy[24m(1) manual page has been updated to document the
        aede-policy-line-length file attribute.

        * A vietnamese translation has been added.

        * The [4maereport[24m(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 [4maedbu[24m(1) command. It no longer complains
        about permissions when the develop_begin_undo_command has been set.

        * A bug has been fixed in the [4maeimport[24m(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 [4maecd[24m(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 [4maeca[24m(1) command now checks for and discards duplicate
        architecture names. This fixes a bug with unsatifiable architecture
        dependencies.

        * The [4maeb[24m(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 [4maenf[24m(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 [4maed[24m(1) command, it no longer reports a
        bug when a cross branch merege is attempted for a file independently
        created in both branches.

   [1mVersion 4.23[0m
   [1mVersion 4.22.2 (18-Oct-2007)[0m
        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 [4maepconf[24m(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 [4maecp[24m(1) -delta command now follows the whiteout
        preference when copying a "removed"file.

        * [ 1685304 ] A bug has been fixed that caused [4maecp[24m(1) -delta X to
        copy in a change also a file with the old name of a file [4maemv[24m(1)ed
        before delta X.

        * The generated Makefile now installs [4maelock[24m(1) with the correct
        permissions.

        * A bug has been fixed in the [4maetar[24m(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.

   [1mVersion 4.22.1 (14-Apr-2007)[0m
        * Test t0247a-walt.sh has been fixed, it was not exporting
        AEGIS_TEST_DIR.  This make [4maeintegratq[24m(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 [4mlex[24m(1) was missing, since it
        is not required to build Aegis the test script has been modified to
        pass even when [4mlex[24m(1) is missing.

        * [4maedist[24m(1) now handle certain renamed files correctly when receiving
        branches or entire-source.

        * The t0011a.sh test script failed when [4mlex[24m(1) was missing, since it
        is not required to build Aegis the test script has been modified to
        pass even when [4mlex[24m(1) is missing.

        * [4maedist[24m(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 [4mdiff[24m(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 [4mdiff[24m(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.

        * [4maedist[24m(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.

        * [4maeclone[24m(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) [4mcpio[24m(1) archive format.

        * Test 95 has been improved to be less sensitive to [4mlibmagic[24m(3)
        differences.

        * Test 207 has been changed to be less sensitive to [4msort[24m(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 [4maedbu[24m(1) command.  It no longer
        complains about permissions when the [4mdevelop_begin_undo_command[24m has
        been set.

        * The [4maedist[24m(1) -rec command now better handles file renamed (not
        aemved) to match the local repository state.

        * A bug has been fixed that caused the [4mchange_pconf_get[24m function
        terminate [4maegis[24m(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 [4maenpr(1)[24m [4m-keep[24m command now set the administrator recursively.

        * A bug has been fixed in the ${project-specific} substitution, it now
        works correctly with the [4maesub[24m(1) -bl command.

        * [4maedist(1)[24m [4m-received[24m has been modified to set the user defined
        attribute foreign-copyright to true when receiving a remote change
        set.  This in order to avoid [4maede-policy[24m(1) complain about incorrect
        copyright notice at [4maede[24m(1) time.0

        * A bug has been fixed that caused an [4maemv[24m(1) followed by an [4maenf[24m(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 [4maet[24m(1) -regression command, it no longer
        reports free()ing a non-existent string.

        * A bug has been fixed in the [4maed[24m(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 [4maeipass[24m(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 [4maeannotate[24m(1) has been fixed.

        * A bug has been fixed related to the use of the
        [4munchanged_file_integrate_pass_policy=remove[24m policy described in
        [4maepconf[24m(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 [4maenf[24m(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.

   [1mVersion 4.22 (29-Mar-2006)[0m
        * A bug has been fixed in the [4maeclean[24m(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 [4maeintegratq[24m(1) command, it no longer
        ignores change number zero.

        * A bug has been fixed in the [4maepromptcmd[24m(1) comand, it now
        understands that when the build command is "exit 0" then no build is
        required.

        * The [4maede[24m(1) comand now runs the [4mreview_pass_notify_command[24m (instead
        of the [4mdevelop_end_notify_command[24m) for projects configured to skip the
        [4mbeing[24m [4mreviewed[24m state.

        * A bug has been fixed in the [4maeannotate[24m(1) command, it no longer uses
        the wrong timestamp when creating histories for completed branches.

        * A bug in the [4maed[24m(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 [4maet[24m(1) command, it now correctly handles
        multiple architectures being reported for batch test results.

        * A bug has been fixed in the [4maet[24m [4m-regression[24m command, the [4mbatch_-[0m
        [4mtest_command[24m 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 [4maediff[24m(1) command, the [4m-change[24m option is
        now ablew to cope with degenerate forms of the delta name in cases
        like [4maediff[24m [4m-change[24m [4mD001[24m and similar.

        * A bug has been fixed in the [4maenc[24m(1) command, it now takes more
        notice of project testing default settings.

        * A bug has been fixed in the [4maeget[24m(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 [4maeget[24m(1) command, is is now always
        possible to see the error produced by a script when the [4mnoerror[0m
        modifier is specified.

        * A bug has been fixed in the [4maeget[24m(1) web interface, it now provides
        the correct links to the more and less detailed file history pages.

        * The [4maeget[24m(1) web interface no longer emits broken links to removed
        source files.

        * A bug has been fixed in the [4maenbr[24m(1) command, the [4mprotect_database[0m
        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 [4maeipass[24m(1) command, it no longer fails
        if the [4mhistory_create_command[24m was not set, it uses the [4mhistory_put_-[0m
        [4mcommand[24m instead, as it is supposed to.

        * A bug has been fixed in the [4maedist[24m [4m-send[24m command, it no longer
        attempts to include the source of removed files.

        * A bug has been fixed in the [4maedist[24m(1) command, it no longer
        segfaults when compiled with DEBUG defined.

        * A bug has been fixed in the [4maedist[24m [4m-replay[24m command, it no longer
        downloads change sets more than once.

        * A bug has been fixed in the [4maedist[24m [4m-send[24m 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 [4maedist[24m(1) command, no longer attempts to
        include the source of removed files.

        * A bug has been fixed in the [4maedist[24m [4m-pending[24m command, it now resolves
        project aliases.

        * A bug has been fixed in the [4maedist[24m(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 [4maefinish[24m(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 [4maefinish[24m(1) for more information.

        * The [4maexml[24m(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 [4maerevml[24m [4m-send[24m 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 [4maeca[24m(1) for more information.

        * The [4maetar[24m [4m-send[24m command is now able to produce bzip2 compressed
        output.

        * There is an new [4maetar[24m [4m-exclude[24m 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 [4maetar[24m [4m-exclude-auto-tools[24m 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 [4maede-policy[24m(1) command which may be invoked by
        [4mdevelop_end_policy_command[24m to enforce additional local policies.  See
        [4maede-policy[24m(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 [4mname[24m[1m=[4m[22mvalue[24m attribute assignments on
        the command line.

        * The [4maet[24m(1) command now understands [4mname[24m[1m=[4m[22mvalue[24m pairs on the command
        line, and passes them unchanged to the test command.  The -force
        option implies a force=1 variable setting.

        * The [4maepatch[24m [4m-send[24m command is now able to produce bzip2 compressed
        output.

        * The [4maesvt[24m(1) command now uses the [4mbzip2[24m(1) algorithm by default.
        There is a [4maesvt[24m [4m-compression-algorithm=gzip[24m option for forwards
        compatibility.

        * There is a new [4mae-repo-ci[24m(1) command which may be used in an
        [4mintegrate_pass_notify_command[24m 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 [4mae-cvs-ci[24m(1) script now invokes the [4mae-repo-ci[24m(1) command.

        * The build step of the development process can now be made optional.
        Configuring a [4mbuild_command[24m of "exit 0" will tell Aegis your project
        does not need to be built.

        * The [4maedist[24m [4m--replay[24m 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 [4maedist[24m [4m-send[24m command now accepts a [4m-no-mime-header[24m option, to
        make it easier to validate the [4maedist[24m(1) output against the real
        [4mcpio[24m(1) command.

        * The [4maedist[24m [4m-send[24m command is now able to produce bzip2 compressed
        output.

        * There is a new [4mentire-source-hide[24m file attribute which may be used
        to omit site-specific files from [4maedist[24m [4m-send[24m change sets.

        * The [4maetar[24m [4m-remove-path-prefix[24m option now also accepts a numeric
        argument.

        * The [4maeannotate[24m(1) command now understands the [4m-change[24m and [4m-delta[0m
        options.

        * The [4maedb[24m(1) command has been enhanced to check that directory
        permissions above the development directory will be traversable by the
        integrator and the reviewers.

        * The [4maecpu[24m(1) comand now understands the [4m-read-only[24m option to mean
        uncopy all of the insulation files.

        * There is a new [4maelock[24m(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 [4maedist[24m command can now perform file merges with better results.

        * The [4maedist[24m [4m-receive[24m command now looks to see if the executing user
        has project admin priviledges, and if so does not cancel testing
        exemptions.

        * The [4maedist[24m [4m-receive[24m command now applies patches using the [4mpatch[24m(1)
        command, rather than doing it less well itself.

        * The [4maedist[24m [4m-replay[24m 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 [4munchanged_file_integrate_pass_policy[24m 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
        [4mdevelopers_may_create_changes[24m enabled.

        * The [4maed[24m(1) command is now optional.  Configuring a [4mdiff_command[24m of
        "exit 0" will tell Aegis your project does not need to be differenced.

        * The [4maeget[24m(1) interface now places HTML anchors in description text
        where it recognizes them.

        * There is a new [4maeget:inventory:hide[24m change attribute, which may be
        used to prevent strictly local change sets from being advertised in
        the [4maeget[24m(1) change set inventory.

        * The [4maeget[24m(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 [4maeget[24m(1) presentation of file history has been improved to
        highlight renaming of files.

        * The [4maeget[24m(1) web interface now has a recursive option on its project
        integration history pages.

        * The [4maebuffy[24m(1) command is now able to run the [4mtkaer[24m(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 [4mbison[24m(1) using [4mlibintl[24m(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.

   [1mVersion 4.21 (10-Nov-2005)[0m
        You must have the [4mGnome[24m [4mlibxml2[24m 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 [4mlibxml2-devel[24m or [4mlibxml2-dev[24m package
        in addition to the [4mlibxml2[24m package.

        Ideally, you would also install the [4mlibmagic[24m package, used to
        determine file types, just as [4mfile[24m(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 [4mlibmagic-devel[24m or
        [4mlibmagic-dev[24m package in addition to the [4mlibmagic[24m package.

        * A bug has been fixed in the [4maecp[24m [4m-independent[24m [4m-output[24m option, which
        resulted in an error when Aegis tried to chmod nothing.

        * The auto file promote feature previously available in [4maed[24m(1) has
        been added to the [4maeb[24m(1), [4maecp[24m(1), [4maerm[24m(1) and [4maenf[24m(1) commands.

        * The [4maedist[24m [4m-pending[24m and [4maedist[24m [4m-missing[24m commands now print the
        number of changes in the remote inventory.

        * A bug was fixed in the [4maecp[24m command which caused a segfault
        sometimes when the user tries to copy a removed file.

        * The [4maedist[24m [4m-replay[24m command now accepts a [4m-maximum[24m option, which
        includes change sets not yet completed in the local change set
        inventory when considering what to download.

        * There is a new [4mdevelop_end_policy_command[24m field in the project
        configuration file. It can be used to add addition constrains to
        change sets before they can complete [4maede[24m(1) successfully.

        * The [4maedist[24m [4m-receive[24m command now annotates remote change sets
        (typically, change sets downloaded via the [4maedist[24m [4m-replay[24m command)
        with their origin URL.

        * A bug has been fixed in the [4maebuffy[24m 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. [4maenc[24m, [4maede[24m, etc.  This is done using
        the [1m-reason [22mcommand 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 [4maelcf[24m(1) command to efficiently generate lists of
        change source files for use by your build tool.

        * There is a new [4maelpf[24m(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
        [4maepconf[24m(5) and [4maeget[24m(1) for more information.

        * The ${change delta_uuid} substitution now allows access to the
        delta_uuid in the [4mbeing[24m [4mintegrated[24m state.

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

        * There is a new optional [4m$filename[24m substitution for the [4mhistory_put_-[0m
        [4mcommand[24m, so that you can attach the current name of the check-in to
        the history file meta-data.  There is a new optional [4m$uuid[0m
        substitution for history_put_command, so you can attach that as mete-
        data, too.

        * There is a new history tool bundled with Aegis.  See [4maesvt[24m(1) for
        more information.

        * There is a new [4mdefault_regression_test_exempt[24m project attribute.

        * The [4maedist[24m [4m-receive[24m 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 [4maerevml[24m(1) command, which can be used to send change
        sets in the RevML format.  See [4maerevml[24m(1) for more information.  The
        [4maeget[24m(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 [4maetar[24m [4m-receive[24m program now uses the archive name as the brief
        description.

        * A bug was fixed in [4maedist[24m [4m-send[24m which caused segfaults when
        processing some files.

        * A bug was fixed which caused [4maedist[24m [4m-send[24m to produce an archive that
        can not be [4maedist[24m [4m-receive[24m because of an operation impossible to
        replicate in a change set.

        * There is an implementation of Robert Collins' subunit testing
        framework available.  See [4maesubunit[24m(1) for more information.

        * A bug was fixed in [4maedist[24m that caused an error when receiving a
        branch's archive generated with the [4maedist[24m [4m-send[24m [4m-entire-source[0m
        option.

        * A bug has been fixed in [4maedist[24m [4m-receive[24m that caused a segfault in
        the rename handling code.

        * The [4maedist[24m [4m-missing[24m listing (and the [4maedist[24m [4m-replay[24m behaviour) now
        check for branch UUIDs as well, just in case someone fetched a branch
        as a change set and applied it.  However, [4maeget[24m 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 [4m${History_Path}[24m substitution available.  It gives you
        the path name of the history file corresponding to the given
        filenames.

        * A bug in [4maedist[24m [4m-receive[24m which caused incorrect delta selection has
        been fixed.

        * There is a new [4maedist[24m [4m-pending[24m option which can print the list of
        local change sets missing from a remote repository.

        * The [4maedist[24m [4m-receive[24m 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 [4maedist[24m [4m-send[24m where some types of incomplete
        changes would fail an assert.

        * There is a new [4maexver[24m(1) command which can be used to view
        historical versions of files in an Aegis repository.  See [4maexver[24m(1)
        for more information.

        * A bug as been fixed which caused [4maemv[24m(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 [4maenf[24m(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 [4maefind[24m(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 [4maetar[24m(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 [4maenf[24m(1) command now understands the [4m-keep[24m and [4m-no-keep[24m options,
        to explicitly control the creation of new files in the development
        directory.

        * A bug has been fixed in [4maemv[24m(1) which failed to check the new name
        against the filename charset, [4metc[24m.

   [1mVersion 4.20 (28-Jan-2005)[0m
        [1mPlease Note: [22mUsers 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 [4mlib/config.example/[24m 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 [4maecvsserver[24m(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 [4maedist[24m [4m-send[24m [4m-entire-source[24m 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 [4maedist[24m 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 [4mduring_build_only[24m [4m=[24m [4mtrue[24m work area styles.

        * The [4maeb[24m command now complains [4mmuch[24m less about "directory not empty"
        when using the link farm.

        * A bug has been fixed in the [4maetar[24m [4m-send[24m [4m-entire-source[24m command where
        some files were missing when asking for a complete set of historical
        sources.

        * A bug has been fixed in the [4maedist[24m [4m-send[24m [4m-entire-source[24m where some
        files were zero length when asking for a complete set of historical
        sources.

        * A bug in [4maedist[24m(1) has been fixed, it was forcing regression test on
        the receiving side even if the change set does not require it and
        [4mdefault_test_exemption[24m 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 [4maediff[24m(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 [4maecpu[24m(1), [4maemtu[24m(1), [4maemvu[24m(1), [4maenfu[24m(1),
        [4maentu[24m(1) and [4maermu[24m(1) commands. They were not repairing the symlinks
        ([4metc[24m) required by the [4mdevelopment_directory_style[24m settings.

        * A bug has been fixed in the [4mChange_Files[24m 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 [4maedist[24m [4m-send[24m [4m-entrie-source[24m command,
        where it would segfault in some cases.

        * A bug has been fixed in reading plain [4mdiff[24m(1) format patches.  This
        was particularly obvious because [4maeannotate[24m(1) uses this form of diff
        by default.

        * A bug has been fixed in [4maeget[24m(1) where it was showing removed source
        files as available for download.

        * A bug has been fixed in [4maeget[24m(1) where it produced invalid output if
        the SCRIPT_NAME environment was not set.

        * A bug has been fixed in [4maeget[24m(1) where it would sometimes ignore
        modifiers.  This was particularly noticable in the download pages.

        * A bug has been fixed in the [4maeimport[24m(1) command.  It was using the
        old work area style configuration file parameters, instead of the new
        [4mdevelopment_directory_style[24m 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 [4maeintegratq[24m(1) command has a new -loop [4moptions,[24m [4mwhich[24m [4mcauses[24m [4mit[0m
        [4mto[24m [4mkeep[24m [4mprocessing[24m [4mchanges[24m [4mthat[24m [4mbecome[24m [4mavailable[24m [4mwhile[24m [4mit[24m [4mis[24m [4mrunning.[0m

        * The [4maet[24m(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 [4maed[24m(1) man page has been updated to better describe the
        behaviour around the merge command.

        * The [4maetar[24m [4m-send[24m command now accepts an -include-build option that
        also add build files, registered with [4maegis[24m [4m-new-file[24m [4m-build[24m, to the
        ouput archive.  A -not-include-build option is also accepted.

        * The [4maetar[24m [4m-receive[24m command now avoids copying build files from the
        baseline because this operation is forbidden and the error stops the
        processing.

        * There is a new [4m${Change_Attribute}[24m 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 [4maet[24m [4m-nopersevere[24m option now also stops for [4mno[24m [4mresult[24m as well as
        [4mfail[24m.

        * 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 [4maedist[24m [4m-receive[24m command has been enhanced to perform file merges
        if necessary.

        * There is a new [4maedist[24m [4m-replay[24m option.  When used in with an [4maeget[24m(1)
        server, it can be used to synchronize two repositories.  The [4maedist[0m
        [4m-missing[24m option may be used to show what would be downloaded.

        * The [4maefa[24m(1) command, with the -edit option, now shows you the
        content type, rather than adding it silently.

        * There is a new [4maediff[24m [4m--command[24m option, allowing you to specify the
        command you want to use to display the difference.  For example, you
        could use [4mtkdiff[24m(1) or [4mmgdiff[24m(1) to display the change graphically.

        * The [4maediff[24m(1) command now adds labels when it is producing a context
        or unified diff output.

        * There is a new optional [4mreview_policy_command[24m 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 [4mreview_-[0m
        [4mpolicy_command[24m 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
        [4maesub[24m(5) for more information.

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

        * The remaining [4maegis.cgi[24m(1) functions have been reproduced in
        [4maeget[24m(1).  The [4maegis.cgi[24m(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
        [4moriginal-UUID[24m.

        * The [4maedist[24m [4m-receive[24m 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 [4maedist[24m [4m-receive[24m 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.

   [1mVersion 4.19 (30-Sep-2004)[0m
        [1mPlease Note: [22mUsers 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 [4mlib/config.example/[24m directory of
        the source distribution.

        * There is a new [4mdevelopment_directory_style[24m 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 [4maepconf[24m(5) and the [4mDependency[24m [4mMaintenance[0m
        [4mTool[24m chapter of the User Guide for more information.

        * There is a new [4maediff[24m(1) command, which may be used to obtain a
        [4mdiff[24m(1) listing of a file for different deltas.

        * There is a new [4maepromptcmd[24m(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
        [4mTest[24m [4mDriven[24m [4mDevelopment[24m.

        * There is a new [4msigned_off_by[24m 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 [4maede[24m(1) and [4maerpass[24m(1) commands now understand two new [1m-signed-[0m
        [1moff-by [22mand [1m-no-signed-off-by [22moptions, to override the project setting.
        The [4maedist[24m [4m-send[24m and [4maepatch[24m [4m-send[24m commands also understand the new
        [1m-signed-off-by [22moption, 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 [4maet[24m(1) command has been enhanced to allow integrators to run
        specific tests.

        * The [4maesub[24m(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 [4maeget[24m(1) web interface using
        project specific attributes.

        * The [4mael[24m(1) command and the [4maeget[24m(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
        [4mael[24m(1) command and the [4maeget[24m(1) web interface, which lists changes and
        their corresponding UUIDs, and links to an aedist download for each
        change. The idea is that the [4maeget[24m(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 [4maedist[24m(1) command now runs all tests required for the change
        set, and honors test exemptions.

        * The [4maedist[24m(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 [4maeb[24m(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 [1m-change [22moption may now be given a
        change set UUID.  You can discover a change's UUID using the [4mael[24m [4mcd[0m
        (list change details) or [4mael[24m [4minventory[24m listings.

        * The [4maed[24m(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 [4maetar[24m [4m-send[24m command now has an [1m-add-path-prefix [22moption, so that
        you can add a path prefix to all of the files in a tarball.  The
        [4maeget[24m(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 [4maepatch[24m(1) command now uses [4mdiff[24m [4m-u[24m 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 [4maede[24m(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 [4maeget[24m(1) command for file contents.  It
        was giving a "multiple permissions set (bug)" error message.

        * A bug in the [4maedist[24m [4m-receive[24m command, where it was not accurately
        manipulating the incoming change set UUID.

        * A bug has been fixed in [4maed[24m(1) which caused it to SEGFAULT.

        * A bug has been fixed in the [4maede[24m(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 [4maefa[24m(1)
        command.

        * A bug has been fixed in the [4maegis[24m [4m-review-begin[24m command; it was not
        operating correctly when the change was in [4mawaiting_review[24m but the
        project was in [4mgoto_being_reviewed[24m.

        * A bug has been fixed in the $basename substitution; it now functions
        exactly like [4mbasename[24m(1) command.

        * A bug has been fixed in the [4maet[24m [4m-bl[24m command; it erroneously stated
        that the $Search_Path_Executable substitution was mandatory, when it
        actually optional.

   [1mVersion 4.18 (10-Jun-2004)[0m
        * A number of build problems have been fixed, particularly concerning
        GCC 3.3 and later.

        * The [4maemv[24m(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 [4maedist[24m [4m-receive[24m 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 [4maepatch[24m(1) command.  It would SEGFAULT
        when a non-source file was patched.

        * A bug has been fixed in the [4maemeasure[24m(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 [4mvery[0m
        important to set it to [4m/etc[24m when you configure Aegis.

   [1mVersion 4.17 (3-Jun-2004)[0m
        * Each new change set is now assigned a Universally Unique Identifier
        (UUID) to allow it to be tracked across geographically distributed
        development.  The [4maedist[24m(1) and [4maepatch[24m(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 [4maedist[24m(1) and [4maepatch[24m(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 [4maecvsserver[24m(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 [4maefa[24m(1) command may be used to edit file
        attributes.  The [4maedist[24m(1) and [4maepatch[24m(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 [4maepatch[24m(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 [4maepatch[24m(1)
        can be as effective as [4maedist[24m(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 [4maeget[24m(1) web interface has been improved.  The [4maepatch[24m(1)
        download now accepts compat=[4mN[24m modifier, and there is a new Project
        Staff page.

        * There is a new [4mae-cvs-ci[24m(1) support script which may be used as an
        [4mintegrate_pass_notify_command[24m 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 [4maeget[24m(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 [4maedeu[24m(1) command has changed slightly.  When
        changes are in the [4mbeing[24m [4mreviewed[24m state, and Aegis has been configured
        to use the [4mawaiting[24m [4mreview[24m state, the [4maedeu[24m(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 [4mbeing[24m [4mdeveloped[24m state.
        Think of the change as "belonging" to the reviewer while in the [4mbeing[0m
        [4mreviewed[24m state.

        * The [4maedist[24m [4m-send[24m command has a new [4m-compatibility[24m option, use to
        indicate the version of the [1mreceiving [22maedist 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 [4maenf[0m
        [4m-configure[24m 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
        [4maeimport[24m(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 [4maeipass[24m(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 [4maeget[24m(1) web interface where it
        would display "-42" instead of "0" for changes and branches numbered
        zero.

        * A bug has been fixed in the [4maed[24m(1) command when merging files which
        have been renamed.  It now recognises they need merging.

        * A bug has been fixed in the [4maenf[24m(1) command.  It now correctly
        ignores difference files when given a directory name.

        * A bug has been fixed in [4maedist[24m(1) where one of the [4maegis[24m [4m-new-file[0m
        commands was missing a [4m-no-template[24m argument.  Under some
        circumstances, this resulted in change sets which could not be [4maedist[0m
        [4m-receive[24md.

        * 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 [4maepatch[24m(1) command.  It was creating
        empty patches for some changes in completed project branches.  This
        also affected [4maedist[24m [4m-send[24m and [4maecp[24m [4m-delta[24m and [4maecp[24m [4m-rescind[24m in some
        cases.  It was caused by a subtle flaw in the non-detailed case for
        the [4mproject_file_roll_forward[24m function.

        * A bug has been fixed in the handling of the MANPATH enviromnet
        variable by the [4mprofile[24m and [4mcshrc[24m scripts.

        * A bug has been fixed in the [4maedist[24m [4m-receive[24m and [4maepatch[24m [4m-receive[0m
        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 [4maede[24m(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 [4maetar[24m(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 [4maedist[24m(1) command to reprt the
        wrong error when the input file did not exist.

        * A bug has been fixed in the [4maenbru[24m(1) command which made project
        aliases disappear.

        * A bug has been fixed in the [4maede[24m command.  It would fail with new
        build files already in the baseline.

   [1mVersion 4.16 (14-Jan-2004)[0m
        * There is a new [4maecp[24m [4m-keep[24m option, causing [4maecp[24m(1) [1mnot [22mto overwrite
        file contents in the development directory.

        * The [4maedist[24m [4m-receive[24m option now understands changing the type of a
        file.

        * It is now possible to specify a URL to the [1m-file [22moption on the
        command line of [4maedist[24m(1), [4maepatch[24m(1) and [4maetar[24m(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 [4mael[24m(1), [4maeget[24m(1), etc) is now sorted in a
        slightly more natural way, as are the version statistics at the end of
        an [4maeannotate[24m(1) listing.

        * A bug has been fixed in [4maede[24m(1) for branches, where Aegis would
        complain about build source files (created by the [4maenf[24m [4m-build[24m 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 [4maecp[24m [4m-independent[24m command, where it did
        not preserve the execute bit, nor honour the user's umask.

        * The missing [4maemt[24m and [4maemtu[24m alias ve been added to the profile.

        * More detail has been added to [4maepconf[24m(5) detailing how to create the
        project configuration file for the first time.

        * A bug has been fixed in [4maedist[24m(1) and [4maepatch[24m(1) which would cause
        an assertion failure (or segfault) when you tried to [4maedist[24m [4m-send[0m
        [4m-delta[24m [4m-es[24m files which did not exist at that delta.

        * A bug has been fixed in [4maedist[24m(1) and [4maepatch[24m(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 [4maeipass[24m(1) which prevented changing a file's
        usage from being as straight-forward as it should have been.

        * The source RPM (and the [4mspec[24m file) now has Build Prequisites
        specified.

        * The [1m-Change [22moption now accepts more than just a change number.  It
        now accepts many forms similar to those used by the [4m${version}[0m
        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 [1m-branch [22moption as well as either [1m-change [22mor [1m-change-from-[0m
        [1mdelta[22m, respectively.  In addition, you may prepend a project name, to
        imply the [1m-project [22moption as well; form such as -c aegis.4.15.C28 are
        understood.

        * The [4maemeasure[24m(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 [4maedist[24m(1) for moved files.
        There was nothing wrong with [4maedist[24m(1), the test itself was broken.

   [1mVersion 4.15 (17-Nov-2003)[0m
        * 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 [4maedist[24m(1) and [4maeannotate[24m(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 [4maenrv[24m [4m-Descend_Project_Tree[24m option,
        which was free()ing a project twice, sometimes causing segfaults.

        * The [4maeget[24m CGI interface is now able to retrieve historical versions
        of files.

        * The [4maeget[24m CGI interface now has support for file metrics.

        * The [4maeget[24m CGI interface has been enhanced to provide more
        information about project files and change files: activity, conflicts,
        history.

        * The [4maeipass[24m(1) command now sets the AEGIS_INTEGRATION_DIRECTORY
        environment variable before running the [4mintegrate_pass_notify_command[24m,
        so that you can add a symlink for compilers which insist on placing
        absolute paths into debugging information in object files.

        * The [4maeget[24m CGI interface has been enhanced to provide more
        information about project files and change files - activity,
        conflicts, history.

        * The [4maeget[24m CGI interface now reports more project information.

        * The [4maeget[24m CGI interface now has download links in many of its menus,
        allowing more and better downloads than the old [4maegis.cgi[24m(1) script.

        * The way [4maenf[24m(1) and [4maent[24m(1) work have been made more generous.  It
        is now possible to [4maerm[24m(1) a file and then [4maenf[24m(1) or [4maent[24m(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 [4maecp[24m [4m-independent[24m command has been enhanced to allow you to
        extract versions of built files (created with [4maenf[24m [4m-build[24m and
        maintained at [4maeipass[24m(1) time).

        * Documentation has been added to [4maer[24m(5) for the try/catch mechanism.

        * There was a disagreement between the [4maereport[24m(1), [4maeannotate[24m(1),
        [4maedist[24m(1), [4maefind[24m(1), [4maeimport[24m(1), [4maels[24m(1), [4maepatch[24m(1), [4maerect[24m(1),
        [4maetar[24m(1) and [4maexml[24m(1) man pages and the commands themselves about the
        existence of the [1m-version [22moption.  The commands now behave as
        documented.

        * There is a new [4mProject_Branch_Dates[24m report, which may be used to see
        when branches of a project were begun and completed.

   [1mVersion 4.12 (29-Sep-2003)[0m
        * A bug has been fixed in [4maedist[24m(1) where it handled moved files
        incorrectly.

        * There is a new experimental [4maeget[24m(1) program.  It is a potentially
        faster, potentially more capable replacement for the [4maegis.cgi[24m(1)
        script.  At the moment it isn't, it's experimental.

        * A bug has been fixed in [4maedist[24m(1) where it would sometimes segfault
        when sending transparent files.

        * Command completion now works for the [4maemt[24m(1) and [4maemtu[24m(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 [4maemt[24m(1)
        and [4maemtu[24m(1) commands.  See [4maepconf[24m(5) for more information.

        * A bug has been fixed in [4maefind[24m(1) command where it could report
        files which had been removed.

        * A bug has been fixed in the [4maecp[24m(1) command where it would scramble
        the [4maet[24m [4m-reg[24m exemption.

        * A bug has been fixed in the [4maede[24m(1) command.  The problem manifested
        as an [4maet[24m [4m-reg[24m command which terminated early.

        * There is a new [4maexml[24m(1) command.  You can now obtain various pieces
        of the Aegis database as XML.  See [4maexml[24m(1) for more information.

        * The the [4mnew_file_command[24m, [4mcopy_file_command[24m and [4mremove_file_command[0m
        fields of the project [4mconfig[24m file are now defaulted correctly.

        * Theer is a new [4m$change_files[24m substitution.  See [4maesub[24m(5) for more
        information.

        * The project config file has a new [4marchitecture_discriminator_command[0m
        field.  Now you can use an arbitrary command (rather than [4muname[24m(2)
        information) to determine the architecture.  See [4maepconf[24m(5) for more
        information.

        * The Russian message translation has been updated.

        * The German message translation has been updated.

        * The [4mael[24m(1) command now has a new [4mincomplete[24m listing.  It lists
        changes between [4mawaiting[24m [4mreview[24m and [4mbeing[24m [4mintegrated[24m. inclusive.

        * The [4mael[24m(1) command now accepts arguments for the listings.  The
        [4mdefault-change[24m, [4mdefault-project[24m, [4moutstanding-changes[24m and [4muser-changes[0m
        lists now accept a user name argument.

        * The [4maemt[24m(1) command now understand the [1m-UNCHanged [22moption, 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 [4mwecp[24m(1) command where the [1m-OverWrite[0m
        option did not honor the presence/absence of the [1m-ReadOnly [22mflag.

        * There is a new [4maeedit[24m script.  See [4maeedit[24m(1) for more information.

        * A bug has been fixed in the file history mechanism (as used by the
        [4m-delta[24m options, [4maeannotate[24m(1), [4maedist[24m(1), [4maepatch[24m(1), etc) which did
        not correctly understand transparent files.

        * The [4maeclean[24m(1) command now touches all of the source sfiles.  It
        also accepts a [1m-NoTouch [22moption.

        * There is a new [4m$change_files[24m substitution.  See [4maesub[24m(5) for more
        information.

        * The [4maeclean[24m command now touches the source files as well.  Use the
        now [1m-no-touch option if you don't want this.[0m

        * There have been several improvements to the output of the [4maegis.cgi[0m
        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.

   [1mVersion 4.11 (29-Jan-2003)[0m
        * For Aegis developers: the developer build now uses [4msudo[24m(8) to
        simplify and automate the tricky bit.  The regular distribution build
        is unchanged.

        * A bug has been fixed where the '[4maet[24m [4m-reg[24m' 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 [4maedist[24m(1) command now preserves the executable bit on files.

        * There is a new [4m-descend-project-tree[24m option for the [4maena[24m(1),
        [4maera[24m(1), [4maend[24m(1), [4maerd[24m(1), [4maeni[24m(1), [4maeri[24m(1), [4maenrv[24m(1), [4maerrv[24m(1) and
        [4maepa[24m(1) commands, to apply the action to all descendant branches of
        the project.

        * A bug has been fixed in [4mtkaer[24m(1) which stopped it working on some
        systems.

        * The [4maeintegratq[24m(1) command now copes better with changes leaving the
        [4mawaiting[24m [4mintegration[24m state.

        * A bug has been fixed in the [4maeimport[24m(1) command which misunderstood
        RCS branches.

        * A bug has been fixed where there [4maenf[24m(1) command would use the new
        [4mconfig[24m file about to be created, which was almost always wrong.

        * There is a new [4m${substr}[24m substitution.  See [4maesub[24m(5) for more
        information.

        * The [4maeclone[24m(1) command now understands transparent files.

        * The [4maecpu[24m(1) command now restores test exemptions in some cases.

        * There is a new [4maemeasure[24m(1) command, which procudes simple file
        metrics for use with Aegis.

        * There is a new [4mproject[24m [4mancestors[24m report.

        * Trunk version number no longer have a leading dot.

        * Command line completion now works for [4mzsh[24m(1).

        * The [4maetar[24m(1) command now preserves the executable bit on files.

        * A bug has been fixed which caused [4maetar[24m(1) to hang.

        * The [4maereport[24m(1) and [4maesub[24m(1) commands now gave the same email
        address for users.

        * The [4maeannotate[24m(1) command now olny prints caption columns if their
        value changes.  This highlights the differences, and is less
        distracting.

   [1mVersion 4.10 (24-Dec-2002)[0m
        * There is a new [4maemt[24m(1) command, used to make branch files
        "transparent".  This is like an [4maecpu[24m(1) command for branches, but
        done through the agency of a change set.

        [1mNote: [22mThe behaviour of the view path in the presence of transparent
        files is complete, however full support for [4maecp[24m [4m-delta[24m 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 [4maecp[0m
        [4m-delta[24m and reports in the next release.

        * There is a new [4maemtu[24m(1) command, to undo the effects of the [4maemt[24m(1)
        command.

        * It is now possible to use the [4maeclone[24m(1) command on changes in the
        [4mawaiting[24m [4mdevelopment[24m state.

        * The problematics directory permissions check has been removed from
        the [4maeintegratq[24m(1) command.

        * A bug has been fixed in [4maecp[24m(1) when retrieving deltas before files
        were removed.

        * There are new [4m${split}[24m and [4m${unsplit}[24m substitutions for manipulating
        search paths ([4metc)[24m.  See [4maesub[24m(5) for more information.

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

        * The [4maedist[24m(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 [4maeimport[24m(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 [4mbeing[24m [4mreviewed[24m state.

        * A problem with long command lines has been fixed in the [4maedist[0m
        [4m-receive[24m, [4maepatch[24m [4m-receive[24m and [4maetar[24m [4m-receive[24m commands.

        * A problem with [4maeimport[24m(1) and binary files has been fixed.

   [1mVersion 4.9 (23-Oct-2002)[0m
        * The [4maepatch[24m(1) and [4maetar[24m(1) commands now accept -add-path-prefix and
        -remove-path-prefix options, for manipulating the filenames when
        unpacking an creating a change set.  The [4maepatch[24m(1) documentation has
        been significantly improved.

        * There is a new [4maecp[24m [4m-rescind[24m option, which may be used to rescind
        (roll back) a completed change.  See [4maecp[24m(1) for more information.

        * The Debian [4m/etc/mailname[24m file is now understood by the [4m${user[24m [4memail}[0m
        substitution.

        * There is a new [4mproject_gantt[24m 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 [4maerpass[24m(1) command,
        just as you always could to the [4maerfail[24m(1) command.

        * The [4maet[24m(1) program now has a -progress option, to tell you where it
        is up to.  See [4maet[24m(1) for more information.

        * The Russian error messages have been updated.

        * The [4maeimport[24m(1) program now understands the CVS Attic directory.

        * There are new [4mperl[24m, [4mPLural_Forms[24m, [4mcapitalize[24m, [4mdowncase[24m and [4mupcase[0m
        substitutions.  See [4maer[24m(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.

   [1mVersion 4.8 (19-Aug-2002)[0m
        * A bugs has been fixed in the [4maetar[24m [4m-receive[24m 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 [4maeimport[24m(1) command.  The symptom was
        that the [4maecp[24m [4m-delta[24m command misbehaved.  The probelm was that the
        first delta needed a timestamp [4mprior[24m [4mto[24m the first change set taken
        from the import sets.

        * A bug has been fixed in the [4maepatch[24m [4m-send[24m 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.

   [1mVersion 4.7 (6-Aug-2002)[0m
        * The [4maefind[24m(1) command now has -resolve as the default.  To get the
        previous behaviour, use the -NoResolve [4moption.[0m

        * In the [4maeca[24m [4m-e[24m and [4maepa[24m [4m-e[24m 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 [4maegis[24m(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 [4maedist[24m(1) command has two new options, -patch and -nopatch,
        which may be used to control how and when [4maedist[24m uses patches.  See
        [4maepatch[24m(1) for more information.

        * A bug has been fixed inthe [4mstrncasecmp[24m function.  This only affected
        you if your system did not have a native version of this function.

        * The [4maeca[24m(1) command now accepts a -fix-architecture option.  This
        option may be used to correct the architecture list of a change
        automatically.

        * The [4maedist[24m [4m-receive[24m command now runs the [4maeca[24m [4m-fixarch[24m command when
        a change set arrives which modified the project [4mconfig[24m 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 [4maetar[24m(1) command.  It may be used to send and receive
        tarballs as Aegis change sets.  See [4maetar[24m(1) for more information.

        * Missing documentation on the [4maepconf[24m(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 [4mhtml2diff[24m(1) if available.

        * It is now possible for reviewers to use the [4maet[24m(1) command to run
        tests against the changes they are reviewing.

        * The command completion for the [4maet[24m(1) command now works better; it
        now completes project test names as well as change test names.

        * The [4maepatch[24m(1) and [4maedist[24m(1) commands now cope with a wider range of
        input vagueries, including some weird things done by MTAs and more
        content transfer encoding synonyms.

   [1mVersion 4.6 (11-Jul-2002)[0m
        * The [4maeipass[24m(1) command now sleeps, rather than issue the rather
        alarming "warning: file modification times extend into the future"
        message.  There is a new project [4mconfig[24m file field, [4mbuild_time_adjust[24m,
        which controls this behaviour, but it is strongly recommended that you
        leave it on the default setting.

        * There is a new [4m${base_relative}[24m substitiontion, almost the inverse
        of [4m${source}[24m.  See [4maesub[24m(5) for more information.

        * A bug has been fixed with the [4maeca[24m and [4maepa[24m [4m-edit[24m 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 [4mtkaepa[24m 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.

   [1mVersion 4.5 (26-Jun-2002)[0m
        * It is now possible to set pager and editor preferences in your
        [4m.aegisrc[24m file.  See [4maeuconf[24m(5) for more information.

        * A bug in [4maepatch[24m [4m-receive[24m 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 [4maedist[24m(1) and [4maepatch[24m(1) commands now accept -delta and -delta-
        date options.

        * The [4mintegrate_q.sh[24m shell script has been replaced by the
        [4maeintegratq[24m(1) Perl script.  It can now lots more useful things.  See
        [4maeintegratq[24m(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 [4maepatch[24m [4m-receive[24m, 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
        [4m${change[24m [4m...}[24m  within [4maesub[24m(5) for more information.

        * The [4maepatch[24m(1) command now understands ordinary diff listings, in
        addition to the context and unified differences it already understood.

        * There is a new [4maeannotate[24m(1) command, used to produce annotated
        source file listings.  See [4maeannotate[24m(1) for more information.

   [1mVersion 4.4 (12-May-2002)[0m
        * It is now possible to specify system wide user preferences.  See
        [4maeuconf[24m(5) for more information.

        * The [4maepatch[24m(1) command now understands the quoted-printable content
        transfer encoding.

        * The [4maepatch[24m(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 [4maegis.cgi[0m
        was being determined.  The [4maegis.cgi[24m script is now installed into
        $bindir by default.  There is a [4maegis.cgi.i[24m helper script to find your
        web server's [4mcgi-bin[24m directory and copy [4maegis.cgi[24m there, but this is
        not done automatically.  See [4maegis.cgi[24m(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 [4maedist[24m [4m-receive[24m has been fixed, where the new
        [4mconfiguration_directory[24m 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 [4maepatch[24m [4m-receive[0m
        and [4maedist[24m [4m-receive[24m, because [4maedist[24m(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 [4maeipass[24m(1) has been added to the man page.

        * Some improvements have been made to the web pages.

   [1mVersion 4.3 (16-Apr-2002)[0m
        * 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 [4maede[24m(1) command now gives a more informative error message when
        files in a branch require merging.

        * There is now an interconnection between the [4maeib[24m(1) and the [4maeb[24m(1)
        command.  When you specify a minimum integrate begin, you also get a
        minimum integrate build.

        * A bug has been fixed which caused [4maenf[24m(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 [4maede[24m(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 "[4maecp[24m [4m-ind[24m" 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
        [4maepatch[24m 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 [4maedist[24m(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
        [4maedist[24m(1) is only backwards compatiple.  Previous versions of
        [4maedist[24m(1) will give a fatal error if they see a .ae file generated by
        this version of [4maedist[24m(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
        [4mconfig[24m 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, [4mprotect_development_directory[24m,
        which when true causes the development directory to be read-only in
        states between [4mawaiting_review[24m and [4mbeing_integrated[24m.

        * A problem has been fixed where some reports would fail is users had
        made their [4m.aegisrc[24m files unreadable.

        * A number of small build problems have been fixed.

        * Command completion has been added for the [4maeb[24m(1), [4mae_c[24m(1), [4maeca[24m(1),
        [4maecd[24m(1), [4maechown[24m(1), [4maeclean[24m(1), [4maecp[24m(1), [4maecpu[24m(1), [4maedb[24m(1), [4maedbu[24m(1),
        [4maede[24m(1), [4maedeu[24m(1), [4maedn[24m(1), [4maeib[24m(1), [4maeibu[24m(1), [4maeipass[24m(1), [4maeifail[24m(1),
        [4maena[24m(1), [4maencu[24m(1), [4maend[24m(1), [4maenf[24m(1), [4maenfu[24m(1), [4maeni[24m(1), [4maenrv[24m(1),
        [4maentu[24m(1), [4mae_p[24m(1), [4maepa[24m(1), [4maera[24m(1), [4maerb[24m(1), [4maerbu[24m(1), [4maerd[24m(1),
        [4maerfail[24m(1), [4maeri[24m(1), [4maerm[24m(1), [4maermu[24m(1), [4maerpass[24m(1), [4maerpu[24m(1), [4maerrv[24m(1)
        and [4maet[24m(1) commands.  More will be added in the future.

        * It is now possible to specify a directory to contain project [4mconfig[0m
        file fragments.  These fragments are then read in as if catenated as a
        single project [4mconfig[24m file.  See [4maepfonf[24m(5) for more information.

   [1mVersion 4.2 (26-Feb-2002)[0m
        * 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 [4mhistory_label_command[24m which may be used to label your
        history files at each integration.  See [4maepconf[24m(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 [4mChange_Log[24m 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 "[4maecp[24m [4m-delta[24m" 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,
        "[4maecp[24m [4m-delta[24m" now goes significantly faster ([4mN[24m times faster, where [4mN[0m
        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 [4mawaiting[24m [4mreview[24m state
        have been corrected.

        * The [4m${expr}[24m substitution has been enhanced to include modulo,
        logical not and the six relative operators.  All using the usual C
        syntax and precedences.  See [4maesub[24m(5) for more information.

        * There is a new [4m${switch}[24m substitution, see [4maesub[24m(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 [4mchange_file_command[24m field of the project [4mconfig[24m file is now
        available at a finer granularity.  There are 8 new commands (the
        [4mcopy_file_command[24m, [4mcopy_file_undo_command[24m, [4mnew_file_command[24m, [4mnew_-[0m
        [4mfile_undo_command[24m, [4mnew_test_command[24m, [4mnew_test_undo_command[24m, [4mremove_-[0m
        [4mfile_command[24m and [4mremove_file_undo_command[24m fields) which may be
        individually configured.  They default to the previous behaviour, for
        backwards compatibility.  See [4maepconf[24m(5) for more information.

        * A bug has been fixed in the [4maepatch[24m(1) command, which prevented it
        form constructing patches for changes on completed branches.

        * The [4maeipass[24m(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 [4maemvu[24m(1) man page has been added.

   [1mVersion 4.1 (6-Dec-2001)[0m
        [1mNote: [22mYou 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 [4maed[24m(1), which tried to access a nonexistent
        files under some circumstances.

        * A bug has been fixed in [4maede[24m.  When two changes created the same
        file, the second change received a misleading message from [4maede[24m.

        * There is a new German message translation.

        * There is a new [4mtkaepa[24m(1) command, giving GUI access to the [4maepa[24m(1)
        command.

        * The [4maeclone[24m(1) command now runs the [4mchange_file_command[24m and
        [4mproject_file_command[24m from the project [4mconfig[24m file.  This is in order
        to be more consistent withthe [4maecp[24m(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 [4mhistory_put_command[24m and [4mhistory_create_command[24m field of the
        project [4mconfig[24m 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 [4maeib[24m(1) command, when the [4mlink_-[0m
        [4mintegration_directory[24m field in the project [4mconfig[24m file is false.

        * There is a new [4mawaiting[24m [4mreview[24m state, and new [4maerb[24m(1) and [4maerbu[24m(1)
        commands to go with it.  It is now possible to configure your project
        to have changes enter the [4mawaiting[24m [4mreview[24m state after [4maede[24m(1), rather
        than the [4mbeing[24m [4mreviewed[24m state.  It is also possible to skip the review
        states altogether and immediatelt enter the [4mawaiting[24m [4mintegration[0m
        state.

        * There is a new [4mmodeP[24m [4mfield[24m [4mfor[24m [4mthe[24m [4mspecification[24m [4mof[24m [4marchitectures[24m [4min[0m
        [4mthe[24m [4mproject[24m [4mconfig[24m [4mfile.[24m  [4mThe[24m [4mmeans[24m [4mthat[24m [4myou[24m [4mcan[24m [4mdesignate[24m [4msome[0m
        [4marchitectures[24m [4mas[24m [4mmandatory[24m [4mand[24m [4msome[24m [4mas[24m [4moptional.[24m  [4mSee[24m [4maepconf(5)[24m [4mfor[0m
        [4mmore[24m [4minformation.[0m

        * The [4maenbr[24m(1) command now populates the new branch's baseline with
        symlinks if the project [4mconfig[24m file is set so that they would remain
        after an integration build.  This is more consistent with the [4maedb[24m(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 [4maels[24m(1) command, which may be used to list
        directories, annotated with Aegis' file attribute information.

        * The [4maeclean[24m(1) command now accepts the [1m-Keep [22moption, 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.

   [1mVersion 3.29 (31-Oct-2001)[0m
        * The [4maeimport[24m(1) command can now import CVS repositories which
        contain binary files.

        * There is a new [4m${Read_File_Simple}[24m substritution.  It is like
        [4m${Read_File}[24m, but is does not substitute into the file contents.

        * The [4maecp[24m [4m-independent[24m command now accepts a [4m-output[24m option.

        * There is a new [4m${environment}[24m substitution, allowing you to access
        environment variables within substitutions.  See [4maesub[24m(5) for more
        information.

        * There is a new [4m${project-specific}[24m substitution, allowing you to
        define project specific value to be inserted into various commands.
        See [4maesub[24m(5) and [4maepconf[24m(5) for more information.

        * The [4maefind[24m(1) command now works with completed change.  It searches
        the baseline.

        * A problem with using the ${source} substitution within the
        [4mintegrate_pass_notify_command[24m 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.

   [1mVersion 3.28 (21-Aug-2001)[0m
        * There is a new [4maepatch[24m(1) program, which may be used to send an
        receive changes using the classic open source patch format.  See
        [4maepatch[24m(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 [4m${developer[24m [4memail}[24m substitution, for inserting users'
        preferred email addresses into commands.  Useful for the state
        transition notification commands.

        * There is now more text in the [4maepconf[24m(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 [4maesub[24m [4m$source[24m substitution now works in combination with the
        [1m-BaseLine [22moption.

        * The [4maegis.spec[24m file now mentions the executables again.

   [1mVersion 3.27 (26-Jun-2001)[0m
        * A bug has been fixed in the [4maesub[24m(1) $delta substitution.  It now
        works correctly for completed changes.

        * A bug has been fixed in [4maermu[24m(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 [4maedist[24m(1) command.  It failed to
        correctly recognise files produced using the [4maedist[24m [4m-send[24m [4m-no-ascii-[0m
        [4marmour[24m option.

        * The [4maecpu[24m [4m-unch[24m command now deals more gracefully with files which
        have been removed from the project in the mean time.

        * There is a new [4mchange[24m [4mfile[24m [4mhistory[24m listing, similar to the [4mfile[0m
        [4mhistory[24m report.  It is much faster, much more informatuve, and less
        selective.

   [1mVersion 3.26 (21-Jun-2001)[0m
        * 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 [4maeipass[24m(1) takes precedence
        over new development builds, so that there is a guarantee that
        [4maeipass[24m(1) will succeed in finite time.  Current development builds
        will run to completion, but new development builds will block until
        the [4maeipass[24m(1) gets the basline lock and subsequently completes.

        * The "file format error" bug in [4maedist[24m(1) has been fixed.

        * There is a new [4mproject[24m [4mactivity[24m 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 [4maepconf[24m(5) and the [4mUser[24m [4mGuide[24m 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 [4mbash[24m(1) behaviour which sets the $PWD environment
        variable.  (GNU libc does this internally to the [4mgetcwd[24m(3) function,
        not all libcs do.)

        * The [4maer[24m(1) report generator now has access to the project [4mconfig[0m
        file fields, through a new config field in the report generator's
        concept of the project state.

        * There is a new [4maer[24m(1) $comdir substitution, which gives access to
        the shared state directory, configured at build time.

        * The [4maebuffy[24m(1) now accepts a project name on the command line.

        * There is a new [4mbuild_covers_all_architectures[24m field in the project
        [4mconfig[24m file, so that you can tell Aegis that the build tool builds all
        architectures wimultaneouasly.  See [4maepconf[24m(5) for more information.

        * The [4mtkaer[24m(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 [4maenbru[24m(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 [4maede[24m(1) where it would not allow a
        branch, created with [4maeimport[24m(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 [4mtkaenc[24m(1) dialog.  You are presented with a pick
        list.

        * There is a new [4maesub[24m(1) $history_directory substitution.  This may
        be used in scripts which access the history tool's files directly.

        * There is a new [4mchange_file_undo_command[24m field of the project [4mconfig[0m
        file.  It is similar to the [4mchange_file_command[24m field (it defaults to
        it if unset), but is executed by all of the "undo" file commands.

        * The [4maede[24m(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 [4maedeu[24m(1) or [4maerfail[24m(1).

   [1mVersion 3.25 (3-Apr-2001)[0m
        * It is now possible to remove users who's accounts have been removed
        (the affects the [4maera[24m(1), [4maerd[24m(1), [4maeri[24m(1) and [4maerrv[24m(1) commands).

        * There is a new [4m--description-only[24m option to the [4maeca[24m(1) command.
        This is useful for editing only the descrioption, and also for use
        within scripts.

        * The [4m--file[24m option has now been generalized to accept "-" to mean the
        standard input.  This is useful in scripts.

        * There is a new [4maebuffy[24m(1) command, which may be used to see what
        changes a user has outstanding.  It needs X11 (Tk/Tcl) to work.  Named
        after the [4mxbuffy[24m(1) command.

        * The [4mtkaer[24m(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 ([4me.g.[24m the "-cp" of [4maecp[24m) 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 [4maemvu[24m(1) command, which may be used to undo the
        effects of an [4maemv[24m(1) command.  This should prove less confusing than
        the previous method.

        * A big has been fixed in the [4maemv[24m(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 [4mtkaenc[24m(1) command.

        * The SCCS section of the [4mUser[24m [4mGuide[24m 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 [4maecpu[24m(1) command when you had [4mcreate_symlinks_-[0m
        [4mbefore_build[24m turned on and you were using an automounter, but it
        occured at other times as well.

        * The [4maeimport[24m(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.

   [1mVersion 3.24 (10-Mar-2001)[0m
        * There is a new [4maeimport[24m(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 [4m${quote}[24m substitution which incorrectly
        quoted the exclamation mark (!).  Unfortunately, quoting isn't at all
        simple, because you can't exclusively use single quotes [4mor[24m double
        quotes [4mor[24m backslash.

        * There is now a [4m${change[24m [4mdescription}[24m 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 [4maeibu[24m(1) command.  Handy for
        abandoned integrations which inconvenience everyone else.

        * There is a new project [4mconfig[24m file field, called build_covers_all_-
        architectures, which allows you to tell Aegis that your build process
        can cover all architectures simultaneously.

        * The [4m${quote}[24m 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, [4maereport[24m(1), can now access fields of the
        [4m.aegisrc[24m file.  This is important for accessing the preferred email
        address in various reports.  * The "[4maecp[24m [4m-delta[24m" 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 [4maermu[24m(1) to get rid of them ,rather than
        [4maecpu[24m(1).

        * The [4maedist[24m 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 [4mDeveloper[24m section.

   [1mVersion 3.23 (29-Oct-2000)[0m
        * A bug has been fixed which caused the report generator [4mchange_number[0m
        function to give garbage answers for change number zero (fortunalely,
        not very common).

        * There is a new [4mmtime[24m function in the report generator.

        * There is a new [4maecomp[24m utility, which may be used to compare two
        active changes, using [4mtkdiff.[0m

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

        * The project [4mconfig[24m file now contains two new fields, [4mcreate_-[0m
        [4msymlinks_before_integration_build[24m and [4mremove_symlinks_after_-[0m
        [4mintegration_build[24m, 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 [4mtkaer[24m has been contributed.  It is for
        reviewing, and shows you lists of files.  When you click on one, it
        launches [4mtkdiff[24m(1) to examine it.  You're going to like this one,
        folks!

        * The [4maedist[24m [4m-receive[24m 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 [4maenf[24m(1) and [4maent[24m(1) commands now accept [1m--template [22mand [1m--no-[0m
        [1mtemplate [22moptions, to control the use of new file templates.

        * A nasty Catch-22 in the [4maedist[24m(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.

   [1mVersion 3.22 (13-May-2000)[0m
        * [1mPlease Note: [22mSome code has been added to Aegis to assist in
        diagnosing problems when restoring projects from backups.  If you see
        a message "aegis: [4mproject-path[24m: 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 [4maesub[24m(1) command now accepts the ${arch} substitution in
        combination with the -baseline option.

        * A bugs has been fixed in the [4maedist[24m [4m-receive[24m command, when one of
        the files was also locked for review.

        * A bug in [4maeclone[24m(1) has been fixed, where it dropped file move
        information.

        * The [4maeib[24m(1) command now correctly validates that youare actually
        allowed to do this integration.  This may win the prize for the [4moldest[0m
        Aegis bug.

        * There is a new ${search_path_executable} substitution.  See [4maesub[24m(5)
        and [4maet[24m(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 [4maet[24m [4m-nopersever[24m option works again.  The previous release broke
        it when the batch test support has implemented.

        * A problem with the [4maeb[24m(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 [4maenf[24m(1) command which made it difficult to use
        with th symbolic link farm (in some cases) has been fixed.

        * The [4maeipass[24m(1) command now preserve file mod times across history
        updates, if the history tool gratuitously changes them.

        * The Solaris and IRIX build problems (wputc, [4met[24m [4mal[24m) has been fixed.

        * Numerous documentation patches were received and have been applied.

   [1mVersion 3.21 (12-Mar-2000)[0m
        * A couple of minor bugs have been fixed in [4maedist[24m, 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 [4maet[24m(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 [4maesub[24m(1) command now accepts the -baseline option, so that you
        can get project-specific substitution in shell scripts.

        * A bug has been fixed in [4mtkaenc[24m(1) which gave incorrect testing
        ssttings.  It now also tracks the project testing exemptions.

        * A bug in [4maenf(1)[24m [4mhas[24m [4mbeen[24m [4mfixed[24m [4mwhich[24m [4mallowed[24m [4mmultiple[24m [4minstances[24m [4mof[0m
        [4mthe[24m [4msame[24m [4mfile[24m [4mto[24m [4mbe[24m [4mcreated.[0m

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

        * A bug has been fixed in [4maenf[24m(1) which allowed you to create the same
        file multiple times, corrupting Aegis' database and causing [4maede[24m(1) to
        report mysterious errors.  Use [4maenfu[24m(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 [4mcron[24m(8) or [4mat[24m(1).

   [1mVersion 3.20 (19-Oct-1999)[0m
        * The [4maeib[24m command is now more robust about "foreign" files in the
        baseline ([4me.g.[24m root-owned core files).

        * A bug has been fixed in the [4m${administrator_list}[24m substitution.

        * A bug has been fixed in the [4maedist[24m [4m--delta[24m option, which caused it
        to dump core.

        * There is now a section in the [4mHistory[24m [4mTool[24m 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 [4maeclone[24m 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 "[1m-BRanch -[22m" as a synonym for the "[1m-TRunk [22moption, 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 [4maenbru[24m which failed to remove the branch
        development directory .

        * The [4maenf[24m(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 [4maenpa[24m(1) command, both
        in error situations.

        * A bug with the [1m-interactive [22moption has been fixed.  It will actually
        ask you, now.

   [1mVersion 3.19 (4-Aug-1999)[0m
        * You can now run a command to generate new file templates if you
        want, rather than using a simple string substitution.  See [4maenf[24m(1),
        [4maent[24m(1) and [4maepconf[24m(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 [4maede[24m 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
        [4mdevelopment_directory_template[24m field.

        * There are two new commands, [4maenpa[24m(1) and [4maerpa[24m(1) for creating and
        removing project aliases.  This means that you can give project
        branches more meaningful names.

        * There is a new [4maesub[24m(1) command.  It substitutes its arguments and
        prints them, rather like the [4mecho[24m(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 [4mtkaenc[24m(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 [4maenf[24m(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 [4mState-File-Name[24m 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 [4maeclean[24m to delete the development
        directory of changes with no files.

   [1mVersion 3.18 (8-Jul-1999)[0m
        * A bug has been fixed which caused [4maecp[24m [4m-delta[24m 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 [4maerp[24m(1) man page has been moved to [4maerpass[24m(1).  Similarly for
        [4maerfail[24m(1), [4maeipass[24m(1) and [4maeifail[24m(1).  This should make things easier
        for users to find the man pages.

   [1mVersion 3.17 (22-Jun-1999)[0m
        * Another [4maedist[24m 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 [4m${dirname_relative}[24m substitution.  This is useful in
        new file templates, and also some configured commands.

   [1mVersion 3.16 (15-Jun-1999)[0m
        * There is a new [4mtkaeca[24m command.  It is a GUI interface to the [4maeca[24m(1)
        command, using Tcl/Tk.

        * There are two new reports available: the [4mProject-Branches[24m and
        [4mProject-Active-Branches[24m reports may be used to query about branches
        within a project.

        * A bug has been fixed in the [4maedist[24m [4m-receive[24m duplicate suppression
        code.  It was complaining about user permissions.

        * A bug has been fixed in [4maeb[24m(1), which did strange things if you
        tried to build an unbuildable change.

        * There is a new [4m-No-WhiteOut[24m option for the [4maerm[24m(1) and [4maemv[24m(1)
        commands, letting you suppress the "whiteout" files, along with some
        explanation in the man page about why they are there.  See [4maerm[24m(1) for
        more information.

        * The default value of the "[4mmaximum_filename_length[24m" field of the
        project [4mconfig[24m 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 [4maedist[24m [4m-receive[24m command now accepts a [4m-directory[24m option, so you
        can specifiy the location of the development directory.

   [1mVersion 3.15 (2-May-1999)[0m
        * The "[4maedist[24m [4m-receive[24m" command now accepts a [1m-delta [22moption, 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 [4mBranching[24m chapter of the User Guide.

        * The [4maenpr[24m(1) command now accepts a [4m-keep[24m option, so that you can re-
        attach projects moved after using the [4maermpr[24m [4m-keep[24m command.  See
        [4maenpr[24m(1) for more information.

        * The [4maenpr[24m(1) command now accepts [4m-edit[24m and [4m-file[24m options, allowing
        you to specify project attributes when creating the project.  See
        [4maenpr[24m(1) for more information.

        * If the project [4mdevelopers_may_create_changes[24m attribute is true, the
        [4maencu[24m(1) command now allows developers to destroy changes they
        created.

        * There is a new [4madd_path_suffix[24m substitution, for manipulating search
        paths.  See [4maesub[24m(5) for more information.

        * There are 3 new substitutions: ${bindir}, ${datadir} and ${libdir}.
        These are replaced by the [4m./configure[24m options of the same name (or the
        values calculated, if none were given to [4m./configure[24m).  The old ${lib}
        substitution is deprecated in favour of the new ${datadir}
        substitution.  See [4maesub[24m(5) for more information.

        * Some changes have been made which increases portability,
        particularly the Linux libc5 [4mvs[24m 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.

   [1mVersion 3.12 (26-Mar-1999)[0m
        * The way the Apache configuration files are scanned for and read has
        been changed, to adapt to recent Apache changes.  The [4m./configure[0m
        script will now find it more often.

        * The "[4maedist[24m [4m-receive[24m" command has been enhanced to be more robust
        about change sets without headers (some browsers [4mgenerously[24m strip them
        all off.

        * A bug has been fixed in the "[4maedist[24m [4m-receive[24m" 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 [4mchsrc[0m
        and [4mprofile[24m commands.  It will not over-ride [4m/etc/man.config[24m now.

        * The [4maegis.cgi[24m script has been made more robust in coping with [4maedist[0m
        errors.

        * The [4msymlink_exception[24m field of the project [4mconfig[24m 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.

   [1mVersion 3.11 (17-Mar-1999)[0m
        * The [4maet[24m(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
        [4maedist[24m command.

        * The [4maedist[24m [4m--send[24m 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 [4mtrojan_horse_suspect[24m field in the project [4mconfig[0m
        file.  This is used by [4maedist[24m [4m--receive[24m to check for files which could
        be abused to carry Trojan horse attacks.

        * The [4maedist[24m [4m--receive[24m 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 [4maedist[24m [4m--receive[24m command now quotes filenames (if necessary)
        when executing commands, thus defending against filenames which
        contain semicolons.

        * The [4maenbru[24m(1) command has been implemented at last.  At last!  You
        no longer need to use the [4maedbu[24m work-around.

        * The [4maedbu[24m(1) command now gives an error if you attempt to apply it
        to a branch.

        * The [4maermpr[24m(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 [4mconfig[24m file have been enhanced to reject the brain-dead
        Windows special filenames such as "aux" [4met[24m [4mal[24m.

        * The ${user} and ${project} substitutions have been enhanced to
        provide additional information when given an additional argument.
        Useful for file templates.  See [4maesub[24m(5) for more information.

        * Several portability enhacements, notably the Windows filename
        incompatibility has been fixed, and also the Linux [4mstdlib.h[24m problem.

   [1mVersion 3.10 (6-Mar-1999)[0m
        * As of this release you must have [1mzlib [22minstalled before you can build
        Aegis.

        * There is a new [4mreuse_change_numbers[24m project attribute, letting you
        control whether [4maenc[24m fills in holes in the change number sequence.
        Defaults to true if not set.  See [4maepattr[24m(5) for more information.

        * There is a new [4mintegrate_begin_exceptions[24m field in the project
        [4mconfig[24m file.  This permits the user to specify file to be omitted when
        the integration directory copy/link is performed.

        * The [4maet[24m(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 [4maedist[24m(1) command, which may be used to send and
        receive Aegis change sets via e-mail and the web.

        * The [4maeclone[24m(1), [4maenbr[24m(1), [4maenc[24m(1) commands now accept a [1m-output[0m
        option, a file to contain the automatically generated change number.
        This greatly assists in writing scripts.  See the man pages for more
        information.

        * The [4maent[24m(1) command now accepts a [1m-output [22moption, a file to contain
        the automatically generated file name.  See the man pages for more
        information.

        * There is a new [4mcompres_database[24m 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.

   [1mVersion 3.9 (7-Feb-1999)[0m
        * 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 [4mtkaegis[24m command, using Tk/Tcl to give Aegis a GUI.
        Contributed by Graham Wheeler <gram@cdsec.com>.  Please report [4mtkaegis[0m
        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 [4maeipass[24m(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 [4maesub[24m(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 [4mfilename_maximum_length[24m field in the project [4mconfig[24m file, the
        file-system wins.  Mention of this is now also present in [4maedb[24m(1),
        [4metc[24m; Linux UMSDOS is highlighted as problematic.

        * Aegis can now collect code metrics.  See [4maeb[24m(1) and [4maeipass[24m(1) for
        more information.

        * There are three new report functions available: [4mquote_url[24m,
        [4mquote_html[24m and [4munquote_url[24m.  These are all for use when creating Aegis
        reports for the CGI interface.  See [4maer[24m(5) for more information.

        * There are several new substitutions available.  These include subst,
        trim_extension, trim_directory, and trim_filename.  See [4maesub[24m(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.

   [1mVersion 3.8 (1-Oct-1998)[0m
        * 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, [4mtrim_directory[24m and [4mtrim_extension[24m,
        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 [4maegis[24m(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 ([4me.g.[24m /home is the trigger, and /tmp_mnt/home is where the
        NFS mount is performed, with /home appearing to be a symlink).

   [1mVersion 3.7 (22-Sep-1998)[0m
        * The [4maeifail[24m(1) and [4maerfail[24m(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 [1m--delta-date [22moption to the [4maecp[24m(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 [1m--base-relative [22moption to most of the file
        manipulation commands, [4maecp[24m(1), [4maenf[24m(1), [4metc[24m.  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 [4maeuconf[24m(5) for more information.

        * There is a new "aeclean" command.  It can be used to clean your
        development directories of non-source files.  See [4maeclean[24m(1) for more
        information.

        * The [4maeb[24m(1) command now passes through arguments of the form
        [4mname[24m[1m=[4m[22mvalue[24m, 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.

   [1mVersion 3.6 (5-Jul-1998)[0m
        * The [4mdiff3_command[24m field of the project [4mconfig[24m file has been replaced
        by a [4mmerge_command[24m 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 [4mdiff3_command[24m to move the files around will need
        to take the moves [1mout [22mwhen you rename the [4mdiff3_command[24m field to be
        the new [4mmerge_command[24m 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 [4mshell_safe_filenames[24m field in the project [4mconfig[0m
        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 [4mconfig[24m 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.

   [1mVersion 3.5 (28-May-1998)[0m
        * 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.

   [1mVersion 3.4 (22-May-1998)[0m
        * There is a new "aegis -clone" command, used to replicate changes
        across branches.  See [4maeclone[24m(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 [4maeuconf(5)[24m [4mfor[24m [4mmore[24m [4minformation.[0m

   [1mVersion 3.3 (4-Apr-1998)[0m
        This release is a bug fix release, and mostly install and portability
        bug, at that.

        * The problem with [4merrno[24m defines messing up [4mglue.c[24m 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 [4maeb[24m [4m-minimum[24m option, for use with symbolic links,
        only, which has a minimal set of source file links, rather than
        everything in the baseline.

   [1mVersion 3.2 (22-Mar-1998)[0m
        * 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.

   [1mVersion 3.1 (15-Jan-1998)[0m
        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.

   [1mVersion 3.0[0m
        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 [4mvi[24m(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.

   [1mVersion 3.0 Major New Features[0m
        * 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 [4mBranching[24m chapter of the [4mAegis[0m
        [4mUser[24m [4mGuide[24m 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
        [4mstate[24m field above now points at a change state description, and most
        of the old project information is contained in the [4mbranch[24m 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 [4mcstate[24m, so access
        to the project file list need not change.  See the new [4maecstate[24m(5) for
        more information.

        * The new project command now creates branches to match the version
        number specified.  See [4maenpr[24m(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 [4mBUILDING[24m file for more information.  The [4mcshrc[24m and [4mprofile[24m 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 [4maet[24m [4m(1)[24m command can now suggest tests to be run.  This is done
        by correlating the source files and test files from each change.  See
        [4maet[24m(1) for more information.

        * There is now an [4maereport[24m(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 [4maefind[24m(1) command.  This is very similar to the UNIX
        [4mfind[24m(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 [4maefind[24m(1) command makes this simple again.

   [1mVersion 3.0 Minor New Features[0m
        * 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
        [4maegis[24m(1) and [4maeuconf[24m(5) for more information.

        * There is now a -No_PErsevere option to [4maet[24m(1), allowing you to
        request that [4maet[24m(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 [4maet[24m(1) and [4maeuconf[24m(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 [4maeca[24m(1) and [4maecattr[24m(5) for more information.

        * There is a new [4mSearch_Path[24m substitution, to support builds on
        branches.  See [4maesub[24m(5) for more information.  As a side effect, you
        can also use it in the [4mtest_command[24m field of the project [4mconfig[24m 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 [4maeuconf[24m(5) for more
        information.

        * It is now possible to specify the filename for new tests on the
        command line.  See [4maent[24m(1) for more information.

        * It is not possible to specify a pattern for test filesnames.  See
        [4maepconf[24m(5) for more information.

        * There is now a [1m-MAXimum [22moption to the [4maeib[24m command, allowing you to
        keep obsolete derived files at integrate begin.  This can avoid long
        integration build times for large projects.

   [1mVersion 3.0 Bug Fixes[0m
        * 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 [4maecp[24m(1) and [4maed[24m(1) commands now take a baseline read lock, to be
        more symetric with the [4maeb[24m(1) command which has always done so.  The
        [4maeipass[24m(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
        [4maeb[24m(1), [4maecp[24m(1), [4maed[24m(1) and [4maeipass[24m(1) for more information.

        * There are now some reminder scripts in the library, which can be run
        from [4mcrontab[24m(1).  These are installed into the [4m/remind[24m 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 [4m-Edit[24m option now also accept a
        [4m-Edit_BackGround[24m option, allowing edit commands to be piped in from
        the standard input.

        * The [4maecp[24m(1) command now accepts a [4m-INDependent[24m option, allowing
        files to be copied independent of any change (similar to the
        [4m-INDependent[24m option of the command.)  See [4maecp[24m(1) for more
        information.

        * The [4maecp[24m(1) command now accepts a [4m-Read_Only[24m 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
        [4maecp[24m(1) for more information.

        * The [4maenrls[24m(1) command is now used [4monly[24m 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
        [4mBranching[24m chapter of the [4mUser[24m [4mGuide[24m for more information.

   [1mVersion 2.3[0m
        * The merging behaviour of the [4maed[24m(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 [4maed[24m(1) and [4maeuconf[24m(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 [1m-Edit [22moption 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 [4maesub[24m(5) and [4mael[24m(1) for more information.

        * It is now possible to specify patterns for acceptable and
        unacceptable filenames in the project configuration file.  See
        [4maepconf[24m(5) for more information.

        * Four more functions have been added to the report language: [4mlength[24m,
        [4msplit[24m, [4msubstr[24m and [4mwrap[24m.  See [4maer[24m(5) for more information.

        * The tests distributed with  are now more stable on very fast hosts.
        See the environment variables section of [4maeb[24m(1) for more information.

        * The [4mlib/config.example[24m directory of the distribution now contains
        files with example portions of the project [4mconfig[24m file.  May thanks to
        David R Shue <shue@ll.mit.edu> for this suggestion.

        Changes made in the previous release included:

   [1mVersion 2.2[0m
        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 [4mHeterogeneous[24m [4mDevelopment[24m secion of the [4mTips[0m
        [4mand[24m [4mTraps[24m 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 [4mcake[0m
        and [4mGNU[24m [4mMake[24m to be used.  See the [4mDependency[24m [4mMaintenance[24m [4mTool[24m section
        of the User Guide and [4maeb[24m(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 [4mFile_Activity[24m report, which
        details currently active files.  See [4maer[24m(1) for more information.

        * Aegis is now configured using a shell script called [4mconfigure[24m,
        distributed with the package.  This shell script is generated using
        GNU Autoconf.  See the [4mBUILDING[24m file for more information.

        * The [4mAEGIS[24m environment variable has been renamed [4mAEGIS_PATH[24m, 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 [4maepconf[24m(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 [4maepconf[24m(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 [4maet[24m(1) and for more information.

        * The commands which accept the [4m-Edit[24m now preserve the edited text in
        the event of a failure.

        * The commands which delete files now accept a [4m-Interactive[24m 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 [4maenfu[24m(1),
        [4maentu[24m(1), [4maecpu[24m(1), and [4maeuconf[24m(5) for more information.

        * The [4maecp[24m(1) command now accepts directory names, allowing whole
        directory trees to be copied into a change.  The [4maecpu[24m(1) command now
        has a [1m-UNChanged [22moption which allows the unchanged files to be
        uncopied.

        * The [4maeb[24m command now accepts file names, allowing partial builds to
        be performed.  See [4maeb[24m(1) for more information.

        * There is a new [4maechown[24m(1) command to facilitate reassigning the
        developer of a change which is in the [4mbeing[24m [4mdeveloped[24m state.

        * It is now possible for project administrators to assign changes to
        specific developers.  See [4maedb[24m(1) for more information.

   [1mVersion 2.1[0m
        * Can now ask for history to maintained for file generated by the
        build.  This is useful for generating patch files.

   [1mVersion 2.0[0m
        * A new command has been added to facilitate changing the name of a
        file as part of a change.  See [4maemv[24m(1) for more information.

        * It is now possible to list the locks currently held.  See [4mael[24m(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 [4maenc[24m, [4maeca[24m, [4maerfail[24m, [4maeifail[24m and [4maepa[24m commands now accept a
        [1m-Edit [22mcommand line argument.  See the relevant manual pages for more
        information.

        * The [4maenpr[24m command now understands the [1m-MAJor [22mand [1m-MINOr [22moptions,
        allowing the initial version of a project to be something other than
        1.0.

        * The [4maed[24m command now understands the [1m-ANticipate [22moption.  See [4maed[24m(1)
        for more information.

        * It is now possible to list all the outstanding changes of a project,
        or of all projects.  See [4mael[24m(1) for more information.

   [1mVersion 1.4[0m
        * Support has been added for systems without the [4mseteuid[24m system call,
        or those with crippled implementations.

        * Most of the unimplemented command variants have been finished.
        These include [4mNew[24m [4mChange[24m [4mUndo[24m, [4mDevelop[24m [4mBegin[24m [4mUndo[24m and [4mReMove[24m [4mPRoject[24m.
        Most notable of the exceptions is [4m-ANticipate[24m option for the
        [4m-CoPy_file[24m and [4m-DIFFerence[24m 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)



[1mNAME[0m
        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, 2010 Peter
        Miller

        The [4maegis[24m program is distributed under the terms of the GNU General
        Public License.  See the LICENSE section, below, for more details.

        [1maegis [22m(ee.j.iz) [4mn.,[24m a protection, a defense.

[1mSPACE REQUIREMENTS[0m
        You will need up to 250MB to unpack and build the [4maegis[24m package.
        (This is the worst case seen so far, most systems have binaries
        smaller than this, 200MB is more typical.)  Your mileage may vary.

[1mSITE CONFIGURATION[0m
        The [1maegis [22mpackage is configured using the [4mconfigure[24m shell script
        included in this distribution.

        The [4mconfigure[24m shell script attempts to guess correct values for
        various system-dependent variables used during compilation, and
        creates the [4mMakefile[24m and [4mcommon/config.h[24m files.  It also creates a
        shell script [4mconfig.status[24m that you can run in the future to recreate
        the current configuration.

   [1mUpgrading[0m
        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 [1mbefore [22mrunning the [4m./configure[24m script.  You
        almost never need to do this, so if you have no idea what this is
        about, don't try to change them.

   [1mBefore You Start[0m
        Before you start configuring, it is worth reading the [4mOTHER[24m [4mUSEFUL[0m
        [4mSOFTWARE[24m section, below.

        The [4mconfigure[24m script checks for the internationalization library and
        functions.  If your system does not have them, it is worth fetching
        and installing [1mGNU Gettext [22mbefore you run the [4mconfigure[24m script.  Make
        sure that the [4mmsgfmt[24m 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 [4mbefore[24m running the [4mconfigure[24m script, or the error messages,
        even for English speakers, will be terse and uninformative.  Remember
        to use the GNU gettext configure [4m--with-gnu-gettext[24m option if your
        system has native gettext tools.

        The [4mconfigure[24m script checks for compression libraries and functions.
        If your system does not have them, you must download and install the
        [1mGNU zlib [22mcompression library (see http://www.gzip.org/zlib/ for
        download) and the [1mbzip2 [22mcompression library (see http://www.bzip.org/
        for download) before you run the [4mconfigure[24m script.  These libraries
        are essential, Aegis will not build without them.  ([1mNote: [22mzlib is not
        the same thing as zlib[1mc [22mwhich does something completely different.)

        The [4mconfigure[24m script checks for the regular expression library and
        functions.  If your system does not have them, it is worth fetching
        and installing [1mGNU rx [22mcompression library before you run the [4mconfigure[0m
        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 [1mnot [22moptional, 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
        [4maedist[24m [4m-replay,[24m [4mwill[24m [4mnot[24m [4mwork[24m [4mwithout[24m [4mit.[24m  [4mIf[24m [4myou[24m [4mare[24m [4musing[24m [4ma[24m [4mpackage[0m
        [4mbased[24m [4minstall,[24m [4myou[24m [4mwill[24m [4mneed[24m [4mthe[24m [4mlibcurl-dev[24m [4mor[24m [4mlibcurl-devel[24m [4mpackage[0m
        [4mas[24m [4mwell.[0m

   [1mRunning Configure[0m
        Normally, you just [4mcd[24m to the directory containing [4maegis[24m' source code
        and type
                % [1m./configure --sysconfdir=/etc[0m
                [4m...lots[24m [4mof[24m [4moutput...[0m
                %
        If you're using [4mcsh[24m on an old version of System V, you might need to
        type
                % [1msh configure --sysconfdir=/etc[0m
                [4m...lots[24m [4mof[24m [4moutput...[0m
                %
        instead to prevent [4mcsh[24m from trying to execute [4mconfigure[24m itself.

        Running [4mconfigure[24m 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 [4mconfigure[24m with its standard output redirected to
        [4m/dev/null[24m; for example,
                % [1m./configure  --sysconfdir=/etc --quiet[0m
                %

        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 [4m-lCio[24m 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, [4mconfigure[24m will arrange for the [4mmake[24m [4minstall[24m command to
        install the [1maegis [22mpackage's files in [4m/usr/local/bin[24m,
        [4m/usr/local/com/aegis[24m, [4m/usr/local/lib/aegis[24m, [4m/usr/local/man[24m and
        [4m/usr/local/share/aegis[24m.  There are a number of options which allow you
        to control the placement of these files.

        --prefix=[4mPATH[0m
                This specifies the path prefix to be used in the installation.
                Defaults to [4m/usr/local[24m unless otherwise specified.  The rest
                of these building instructions assume you are using the
                default [4m/usr/local[24m as the install prefix.

        --exec-prefix=[4mPATH[0m
                You can specify separate installation prefixes for
                architecture-specific files and architecture-independent
                files.  Defaults to [4m${prefix}[24m unless otherwise specified.

        --bindir=[4mPATH[0m
                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 [4m${exec_prefix}/bin[24m unless otherwise specified.

        --datadir=[4mPATH[0m
                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
                [4m${prefix}/share/aegis[24m unless otherwise specified.  An "aegis"
                directory will be appended if there is none in the specified
                path.

        --libdir=[4mPATH[0m
                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
                [4m${exec_prefix}/lib/aegis[24m unless otherwise specified.  An
                "aegis" directory will be appended if there is none in the
                specified path.

        --mandir=[4mPATH[0m
                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 [4m${prefix}/man[24m unless
                otherwise specified.

        --sharedstatedir=[4mPATH[0m
                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 [4m${prefix}/com/aegis[24m unless otherwise specified.
                An "aegis" directory will be appended if there is none in the
                specified path.

        --sysconfdir=[4mPATH[0m
                Location of system configuration files.  You should almost
                always use the [4m/etc[24m directory.

        [4mconfigure[24m ignores any other arguments that you give it.

        On systems that require unusual options for compilation or linking
        that the [4maegis[24m package's [4mconfigure[24m script does not know about, you can
        give [4mconfigure[24m initial values for variables by setting them in the
        environment.  In Bourne-compatible shells, you can do that on the
        command line like this:
                $ [1mCC='gcc -traditional' LIBS=-lposix [22m\
                  [1m./configure --sysconfdir=/etc[0m
                [4m...lots[24m [4mof[24m [4moutput...[0m
                $
        Here are the [4mmake[24m variables that you might want to override with
        environment variables when running [4mconfigure[24m.

        Variable: CC
                C compiler program.  The default is [4mcc[24m.

        Variable: INSTALL
                Program to use to install files.  The default is [4minstall[24m if
                you have it, [4mcp[24m otherwise.

        Variable: LIBS
                Libraries to link with, in the form -l[4mfoo[24m -l[4mbar[24m.  The
                [4mconfigure[24m 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 [4mconfigure[24m could check whether to do
        them, and mail diffs or instructions to the author so that they can be
        included in the next release.

   [1mCommon Problem[0m
        It is very common that other packages, such as [4mgettext[24m, [4mrx[24m and [4mzlib[0m
        are installed using [4m/usr/local[24m as the prefix.  However, the configure
        script can't work this out, even when it, too, is using [4m/usr/local[24m as
        the prefix.

        To cope with this, you need to say
                $ [1mCPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib [22m\
                  [1m./configure --sysconfdir=/etc[0m
                [4m...lots[24m [4mof[24m [4moutput...[0m
                $
        when running configure.  Substitute the appropriate prefix if you are
        using something other than the default [4m/usr/local[24m prefix.  Watch the
        output... it should now find your installed packages correctly.

   [1mGCC Version 3.*[0m
        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.

   [1mAIX Command Line Lengths[0m
        For some reason, AIX has a very short command line length limit by
        default.  You can extend this by using the command
                $ [1msystune ncargs 0x8000[0m
                $
        You will need to do this to build Aegis.  It has some very long link
        lines.

   [1mPRIVILEGES[0m
        There are a number of items in the generated [4mMakefile[24m and
        [4mcommon/config.h[24m file which affect the way [4maegis[24m works.  If they are
        altered too far, [4maegis[24m 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 [4maegis[24m to record pointers to
                your projects.  It is [4mnot[24m used to own projects (i.e. it must
                be less than AEGIS_MIN_UID).  If possible, the [4mconfigure[0m
                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 [4maegis[24m will work across NFS.  The
                default value is 3.

        AEGIS_USER_GID
                This is the group of files used by [4maegis[24m to record pointers to
                your projects.  It is [4mnot[24m used as the group for projects (i.e.
                it must be less than AEGIS_MIN_GID).  If possible, the
                [4mconfigure[24m 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 [4maegis[0m
                will work across NFS.  The default value is 3.

        DEFAULT_UMASK
                When [4maegis[24m 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
                [4maepa[24m(1) command.  The DEFAULT_UMASK is the umask initially
                given to all new projects created by the [4maenpr[24m(1) command.
                The default value of DEFAULT_UMASK is 026.  See the comments
                in the [4mcommon/config.h[24m file for an explanation of the
                alternatives.

        It is required that [4maegis[24m run set-uid-root for all of its
        functionality to be available.  It is NOT possible to create an
        "aegis" account and make [4maegis[24m run set-uid-aegis.  This is because
        [4maegis[24m does things as various different user IDs, sometimes as many as
        3 in the one command.  This allows [4maegis[24m to use UNIX security rather
        than inventing its own, and also allows [4maegis[24m to work across NFS.  To
        be able to do these things, [4maegis[24m must be set-uid-root.  Appendix D of
        the [4mAegis[24m [4mUser[24m [4mGuide[24m explains why [4maegis[24m must run set-uid-root; please
        read it if you have concerns.

   [1mRemember Your Settings[0m
        It is important to remember your configuration settings.  This way, it
        will be a simple matter when it comes time to upgrade Aegis.

[1mBUILDING AEGIS[0m
        All you should need to do is use the
                % [1mmake[0m
                [4m...lots[24m [4mof[24m [4moutput...[0m
                %
        command and wait.  When this finishes you should see a directory
        called [4mbin[24m containing several files: [4maegis[24m, [4maereport[24m, [4maefind[24m, [4maefp[24m,
        and [4mfmtgen[24m.

        [1maegis   [22mThe [4maegis[24m program is a project change supervisor.

        [1maefp    [22mThe [4maefp[24m 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 [4maereport[24m program is used to query Aegis' database.

        aefind  The [4maefind[24m program is used to find files.

        [1mfmtgen  [22mThe [4mfmtgen[24m program is a utility used to build the [4maegis[0m
                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
                % [1mmake clean[0m
                [4m...lots[24m [4mof[24m [4moutput...[0m
                %
        command.  To remove all of the above files, and also remove the
        [4mMakefile[24m and [4mcommon/config.h[24m and [4mconfig.status[24m files, use the
                % [1mmake distclean[0m
                [4m...lots[24m [4mof[24m [4moutput...[0m
                %
        command.

        The file [4maux/configure.in[24m is used to create [4mconfigure[24m by a GNU program
        called [4mautoconf[24m.  You only need to know this if you want to regenerate
        [4mconfigure[24m using a newer version of [4mautoconf[24m.

   [1mUpgrading[0m
        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.

[1mOTHER USEFUL SOFTWARE[0m
        Before describing how to test [4maegis[24m, 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 [1mnot [22moptional, you need it to
                successfully build Aegis.

        [1mcook    [22mThis is a dependency maintenance tool (DMT).  An example of a
                well-known DMT is [4mmake[24m(1), however this old faithful is mostly
                not sufficiently capable to meet the demands placed on it by
                the [4maegis[24m program, but [4mcook[24m certainly is.  The [4mcook[24m package is
                written by the same author as [4maegis[24m.  The [4mcook[24m package is
                necessary if test 11 is to be meaningful.  It is also used in
                the documentation.  The [4mcook[24m program may be found at the same
                archive site as the [4maegis[24m program.  The [4mcook[24m program is
                available under the terms of the GNU General Public License.

        GNU diff
                If the [4mdiff[24m(1) utility supplied by your flavor of Unix does
                not have the [1m-c [22moption, you will need GNU diff for [4maepatch[24m(1)
                to work (and the [4maepatch[24m(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 [4maepatch[24m(1) and [4maedist(1)[24m [4mwhen[0m
                [4mreceiving[24m [4mchange[24m [4msets,[24m [4myou[24m [4mneed[24m [4mthe[24m [4mGNU[24m [4mpatch[24m [4mutility.[0m

        [4mRCS[24m     This is a source control package, and is available from any of
                the GNU archives.  (It is best to compile and install RCS
                [4mafter[24m 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 [4maesvt[24m(1) history tool - although you are
                free to use any history tool you like.

        GNU Gettext
                Many systems do not yet supply the [4mgettext[24m(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 [4mbefore[24m running the [4mconfigure[24m 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 [4mconfigure[24m script will report
                finding -lintl and [4m(CWlibintl.h[24m 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 [4m--with-gnu-[0m
                [4mgettext[24m option if your system has native gettext tools.

                Please note: if you install GNU gettext package into
                [4m/usr/local[24m (for example) you must ensure that the Aegis
                [4m./configure[24m script is told to also look in [4m/usr/local/include[0m
                for include files (CFLAGS), and [4m/usr/local/lib[24m for library
                files (LDFLAGS).  Otherwise the [4m./configure[24m 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 [4mAegis[24m User Guide was prepared with GNU Groff.  You
                need GNU Groff 1.14 or later.

        bison   This GNU software is a replacement for [4myacc[24m(1).  Some systems
                have very sick yaccs, and [4mbison[24m may be necessary if your
                system include files disagree strongly with your system's
                yacc.  The generated [4mMakefile[24m 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
                [4mAegis[24m, 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 [1mzlibc [22mwhich is Linux specific.

        tkdiff  This program shows the difference between two text files,
                nicely highlighted in color.  This is used by the [4mtkaer[24m and
                [4maecomp[24m scripts (and probably others as they are contributed).
                By John M. Klassa, http://www.ede.com/free/tkdiff

        libmagic
                If [4mlibmagic[24m(3) is present, the [4maeget[24m(1) CGI handler will use
                it to determine the MIME type of files.  This is installed by
                [1mfile [22mversion 4.0 and later (ftp://ftp.astron.com/pub/file/),
                and uses the same database as the [4mfile[24m(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: [4mcc[24m, [4mcmp[24m, [4mdiff[24m, [4med[24m, [4mfind[24m, [4mmake[24m,
        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.

[1mTESTING AEGIS[0m
        The [4mAegis[24m program comes with a test suite.  To run this test suite,
        use the command
                % [1mmake sure[0m
                [4m...lots[24m [4mof[24m [4moutput...[0m
                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.

   [1mKnown Problems[0m
        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 [4mtest/00/t0011a.sh[24m file assumes the [4mcook[24m(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 [4mcook[24m(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 [4mtmpfs[24m file system as your [4m/tmp[24m directory, the
        tests will fail.  This is because the [4mtmpfs[24m file system does not
        support file locking.  Set the [4mAEGIS_TMP[24m environment variable to
        somewhere else before running the tests.  Something like
                % [1msetenv AEGIS_TMP /usr/tmp[0m
                %
        is usually sufficient if you are using C shell, or
                $ [1mAEGIS_TMP=/usr/tmp[0m
                $ [1mexport AEGIS_TMP[0m
                $
        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 [4mAEGIS_MIN_UID[24m defined in the
        [4mcommon/config.h[24m 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.

[1mTESTING SET-UID-ROOT[0m
        If the [4mAegis[24m program is not set-uid-root then it runs in "test" mode
        which gives you some confidence that [4mAegis[24m 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 [4mAegis[24m' lock file.  (Note that these building
        instructions assume you are using the default [4m/usr/local[24m as the
        install prefix.  You will need to substitute as appropriate if you are
        using some other prefix.)
                # [1mmake install-libdir[0m
                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 [4mAegis[24m to be set-uid-
        root.  Once this has been done, [4mAegis[24m should be tested again, in the
        same manner as before.
                % [1mmake sure[0m
                [4m...lots[24m [4mof[24m [4moutput...[0m
                Passed All Tests
                %

        You should test [4mAegis[24m 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 [4mAegis[24m run set-uid-root for all of its
        functionality to be available.  It is NOT possible to create an
        "aegis" account and make [4mAegis[24m run set-uid-aegis.  This is because
        [4mAegis[24m does things as various different user IDs, sometimes as many as
        3 in the one command.  This allows [4mAegis[24m to use UNIX security rather
        than inventing its own, and also allows [4mAegis[24m to work across NFS.  To
        be able to do these things, [4mAegis[24m must be set-uid-root.  Appendix D of
        the [4mAegis[24m [4mUser[24m [4mGuide[24m explains why [4mAegis[24m must run set-uid-root; please
        read it if you have concerns.

[1mINSTALLING AEGIS[0m
        As explained in the [4mSITE[24m [4mCONFIGURATION[24m section, above, the [4mAegis[0m
        package is installed under the [4m/usr/local[24m tree by default.  Use the
        --prefix=[4mPATH[24m option to [4mconfigure[24m if you want some other path.

        All that is required to install the [4mAegis[24m package is to use the
                % [1mmake install[0m
                [4m...lots[24m [4mof[24m [4moutput...[0m
                %
        command.  Control of the directories used may be found in the first
        few lines of the [4mMakefile[24m file if you want to bypass the [4mconfigure[0m
        script.

        The above procedure assumes that the [4msoelim[24m(1) command is somewhere in
        the command search [4mPATH[24m.  The [4msoelim[24m(1) command is available as part
        of the [4mGNU[24m [4mGroff[24m package, mentioned below in the [4mPRINTED[24m [4mMANUALS[0m
        section.  If you don't have it, but you do have the [4mcook[24m package, then
        a link from [4mroffpp[24m to [4msoelim[24m will also work.

        The above procedure also assumes that the [4m$(prefix)/man/man1[24m and
        [4m$(prefix)/man/man5[24m directories already exist.  If they do not, you
        will need to [4mmkdir[24m them manually.

[1mUSER CONFIGURATION[0m
        The [4mAegis[24m 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 [4m.cshrc[24m file for the recommended aliases.  (Note
        that these building instructions assume you are using the default
        [4m/usr/local[24m as the install prefix.  You will need to substitute as
        appropriate if you are using some other prefix.)

        There is also a [4mprofile[24m 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 [4m.profile[24m file for the recommended aliases.  (This
        [4mprofile[24m assumes that users are using a Bourne shell which understands
        functions.)

        The [4m/usr/local/com/aegis/state[24m file contains pointers to "system"
        projects.  Users may add their own project pointers (to their own
        projects) by putting a search path into the [4mAEGIS_PATH[24m environment
        variable.  The system part is always automatically appended by [4mAegis[24m.
        The default, already set by the [4m/usr/local/lib/aegis/cshrc[24m file, is
        [4m$HOME/lib/aegis[24m.  Do not create this directory, [4mAegis[24m 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 [4m/usr/local/com/aegis[0m
        directory, this directory only contains pointers.  (Note that these
        building instructions assume you are using the default [4m/usr/local[24m as
        the install prefix.  You will need to substitute as appropriate if you
        are using some other prefix.)

   [1mWeb Interface[0m
        If you have a Web server, you may like to install the Aegis web
        interface.  You do this by copying the [4maeget[24m script from
        [4m/usr/local/bin/aeget[24m into your web server's [4mcgi-bin[24m directory.  There
        is a [4maeget.instal[24m helper script, if you don't know where your web
        server's [4mcgi-bin[24m directory is.

        You may prefer to use a symbolic link, as this will be more stable
        across Aegis upgrades.  However, this requires a corresponding [4mfollow-[0m
        [4msymlinks[24m setting in your web server's configuration file.  (Use the
        [4maeget.instal[24m [4m-s[24m option.)

        You may need to wrap [4maeget[24m with a script which sets the [4mAEGIS_PATH[0m
        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 [4mPATH[0m
        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 [4m/usr/local[24m as the install prefix.  You will need to substitute
        as appropriate if you are using some other prefix.)

[1mPRINTED MANUALS[0m
        This distribution contains the sources to all of the documentation for
        [4mAegis[24m, 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.

[1mTIME SYNCHRONIZATION[0m
        The [4mAegis[24m program uses time stamps to remember whether various events
        have happened and when.  If you are using [4mAegis[24m 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 [4mrdate[24m(8) via [4mcron[24m(8)
        every hour or less.

[1mGETTING HELP[0m
        If you need assistance with [4mAegis[24m, 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
                % [1maegis -version[0m
                aegis version [4m4.24.3.D001[0m
                [4m...[0m
                %
        command.  Please run this command to get the exact number, do not send
        the text of this example.

   [1mRuntime Checking[0m
        In the [4mcommon/main.h[24m file, there is a define of [4mDEBUG[24m 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 [1m-TRAce [22mcommand line option.

        When the [1m-TRAce [22mcommand 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.

   [1mProblem Reports[0m
        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 [4mcommon/patchlevel.h[24m file, or `aegis -vers` if
                you can get it to compile.

        3. The Archive Site
                When and where you obtained this version of [4mAegis[24m.  If you
                tell me nothing else, tell me this (and, hopefully, why you
                did nothing else).

        4. Unpacking
                Did you have problems unpacking [4mAegis[24m?  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 [4mAegis[24m?  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 [4mwhich[24m ones
                failed, and include the fact that [4mAegis[24m was [1mnot [22mset-uid-root
                at the time.  The -k option to [4mmake[24m can be useful if some
                tests fail but not others.

        7. Testing, Set-Uid-Root
                Did you have problems with the tests when [4mAegis[24m 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 [4mwhich[24m ones failed, and include the fact
                that [4mAegis[24m was set-uid-root at the time.

        8. Installation
                Did you have problems installing [4mAegis[24m?  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 [4mAegis[24m?  This is a whole can of
                worms.  If possible, include a shell script similar to the
                tests which accompany [4mAegis[24m, 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 [4mAegis[24m,
                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.

[1mLICENSE[0m
        The [4mAegis[24m 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 [4mAegis[24m 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 [4mLICENSE[24m file included in this distribution.

[1mAUTHOR[0m
        Peter MillerE-Mail:   millerp@canb.auug.org.au
        /\/\*                                     WWW:   http://www.canb.auug.org.au/~millerp/

[1mWINDOWS-NT[0m
        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.

   [1mCaveat[0m
        This document only describes a [1msingle user [22mport 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 [4mseteuid[24m(2) system
        call, which has no direct equivalent on Windows NT.  This makes
        porting difficult.  [1mSingle user [22mports are possible ([4me.g.[24m 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.

   [1mThe Source[0m
        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 [4mabsolutely[24m [4messential[24m to run the [4mmkpasswd[24m and [4mmkgroup[24m commands,
        otherwise Aegis will give fatal errors about unknown users and groups.
        See the Cygwin README for instructions.

   [1mMounting Things[0m
        You need to mount a directory onto /tmp, or lots of things, and
        especially [4mbash[24m(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 ([4me.g.[24m C:[4m)[24m [4mrather[24m [4mthan[24m [4mwith[24m [4ma[24m [4mdouble[24m [4mslash[24m [4m(e.g.[0m
        [4mnot[24m //C[4m)[24m [4munless[24m [4mits[24m [4mWindows-NT[24m [4mname[24m [4mstarts[24m [4mwith[24m [4m\\.[0m

        You need to follow the install instructions about [4m/bin/sh[24m, otherwise
        shell scripts that start with #!/bin/sh don't work, among other
        things.  This includes the ./configure script, and the scripts it
        writes ([4me.g.[24m 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!

   [1mToo Much Administrator[0m
        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 [4msome[24m partitions, like [4m/tmp[24m.  (This took me days to work out!)
        This confuses both Aegis [4mand[24m RCS.

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

   [1mBefore You Start[0m
        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.

        [1mDo not use WinZip [22mto unpack the tarball.  It has a nasty habit of
                turning all of the newlines into CRLFs.  This will confuse
                [4mlots[24m of utilities, especially GNU Groff.  Use the "[4mtar[24m [4mxzf[0m
                [4maegis-4.24.3.tar.gz[24m" 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
                [4mtsort[24m command, so that GNU rx's [4m./configure[24m 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 [4mmisc-utils/tsort.c[24m by hand.

        GNU rx  Once you have [4mtsort[24m 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 [4mzlib[24m; 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 [4mdiff[24m and
                a missing [4mdiff3[24m command.  The [4minstall-sh[24m 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 [4msomething[24m for a history tool.  The [4minstall-sh[0m
                script is broken, so you'll need to do the final step in the
                install by hand.

   [1mConfigure[0m
        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 [4muudecode[24m 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.
                [1mbash$ [22m./configure
                [4m...lots[24m [4mof[24m [4moutput...[0m
                [1mbash$[0m

   [1mBuild[0m
        The build step is exactly the same as for Unix, and you shouldn't
        notice any difference...
                [1mbash$ [22mmake
                [1mbash$[0m

   [1mTest[0m
        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.
                [1mbash$ [22mmake sure
                [4m...lots[24m [4mof[24m [4moutput...[0m
                [1mPassed All Tests[0m
                [1mbash$[0m

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

        +o Several tests fail because [4med[24m isn't there.

        +o Several tests fail because [4mci[24m (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 [4maedist[24m tests) fail because of the
          CRLF [4mvs[24m 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.

   [1mInstall[0m
        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 "[4m/usr/local[24m" prefix (or any
        other install prefix) you mount it right at the start.  For anything
        other than the "[4m/usr/local[24m" default prefix, you also needed to give a
        "[1m--prefix=[4m[22mblahblah"[24m [4margument[24m [4mto[24m [4mthe[24m [4mconfigure[24m [4mscript,[24m [4mright[24m [4mat[24m [4mthe[0m
        [4mstart.[0m
                [1mbash$ [4m[22mmake[24m [4minstall[0m
                [4m...lots[24m [4mof[24m [4moutput...[0m
                [1mbash$[0m



aegis(1)                                                              aegis(1)



[1mNAME[0m
        aegis - project change supervisor

[1mSYNOPSIS[0m
        [1maegis [4m[22mfunction[24m [ [4moption[24m...  ]
        [1maegis -Help[0m

[1mDESCRIPTION[0m
        The [4maegis[24m program is a transaction base software configuration
        management system.  It is used to supervise the development and
        integration of changes into projects.

[1mFUNCTIONS[0m
        The following functions are available:

        [1m-Build[0m
                The [4maegis[24m [4m-Build[24m command is used to build a project.  See
                [4maeb[24m(1) for more information.

        [1m-Change_Attributes[0m
                The [4maegis[24m [4m-Change_Attributes[24m command is used to modify the
                attributes of a change.  See [4maeca[24m(1) for more information.

        [1m-Change_Directory[0m
                The [4maegis[24m [4m-Change_Directory[24m command is used to change
                directory.  See [4maecd[24m(1) for more information.

        [1m-Change_Owner[0m
                The [4maegis[24m [4m-Change_Owner[24m command is used to facilitate
                reassignment of the developer of a change in the [4mbeing[0m
                [4mdeveloped[24m state.  See [4maechown[24m(1) for more information.

        [1m-CLone[0m
                The [4maegis[24m [4m-CLone[24m command is used to exactly replicate a
                change, usually on another branch.  See [4maeclone[24m(1) for more
                information.

        [1m-CoPy_file[0m
                The [4maegis[24m [4m-CoPy_file[24m command is used to copy a file into a
                change.  See [4maecp[24m(1) for more information.

        [1m-CoPy_file_Undo[0m
                The [4maegis[24m [4m-Copy_File_Undo[24m command is used to remove a copy of
                a file from a change.  See [4maecpu[24m(1) for more information.

        [1m-DELta_NAme[0m
                The [4maegis[24m [4m-DELta_NAme[24m command is used to add a symbolic name
                to a project delta.  See [4maedn[24m(1) for more information.

        [1m-Develop_Begin[0m
                The [4maegis[24m [4m-Develop_Begin[24m command is used to begin development
                of a change.  See [4maedb[24m(1) for more information.

        [1m-Develop_Begin_Undo[0m
                The [4maegis[24m [4m-Develop_Begin_Undo[24m command is used to cease
                development of a change.  See [4maedbu[24m(1) for more information.

        [1m-Develop_End[0m
                The [4maegis[24m [4m-Develop_End[24m command is used to complete development
                of a change.  See [4maede[24m(1) for more information.

        [1m-Develop_End_Undo[0m
                The [4maegis[24m [4m-Develop_End_Undo[24m command is used to recall a change
                for further development.  See [4maedeu[24m(1) for more information.

        [1m-DIFFerence[0m
                The [4maegis[24m [4m-DIFFerence[24m command is used to find differences
                between development directory and baseline.  See [4maed[24m(1) for
                more information.

        [1m-Help[0m
                This option may be used to obtain more information about how
                to use the [4maegis[24m program.

        [1m-Integrate_Begin[0m
                The [4maegis[24m [4m-Integrate_Begin[24m command is used to begin
                integrating a change.  See [4maeib[24m(1) for more information.

        [1m-Integrate_Begin_Undo[0m
                The [4maegis[24m [4m-Integrate_Begin_Undo[24m command is used to cease
                integrating a change.  See [4maeibu[24m(1) for more information.

        [1m-Integrate_Fail[0m
                The [4maegis[24m [4m-Integrate_Fail[24m command is used to fail a change
                integration.  See [4maeifail[24m(1) for more information.

        [1m-Integrate_Pass[0m
                The [4maegis[24m [4m-Integrate_PASS[24m command is used to pass a change
                integration.  See [4maeipass[24m(1) for more information.

        [1m-List[0m
                The [4maegis[24m [4m-List[24m command is used to list interesting things.
                See [4mael[24m(1) for more information.

        [1m-MoVe_file[0m
                The [4maegis[24m [4m-MoVe_file[24m command is used to change the name of a
                file as part of a change.  See [4maemv[24m(1) for more information.

        [1m-MoVe_file_Undo[0m
                The [4maegis[24m [4m-MoVe_file_Undo[24m command is used to undo a change to
                the name of a file as part of a change.  See [4maemvu[24m(1) for more
                information.

        [1m-New_Administrator[0m
                The [4maegis[24m [4m-New_Administrator[24m command is used to add new
                administrators to a project.  See [4maena[24m(1) for more
                information.

        [1m-New_BRanch[0m
                The [4maegis[24m [4m-New_BRanch[24m command is used to add a new branch to a
                project.  See [4maenbr[24m(1) for more information.

        [1m-New_BRanch_Undo[0m
                The [4maegis[24m [4m-New_BRanch_Undo[24m command is used to remove a new
                branch from a project.  See [4maenbru[24m(1) for more information.

        [1m-New_Change[0m
                The [4maegis[24m [4m-New_Change[24m command is used to add a new change to a
                project.  See [4maenc[24m(1) for more information.

        [1m-New_Change_Undo[0m
                The [4maegis[24m [4m-New_Change_Undo[24m command is used to remove a new
                change from a project.  See [4maencu[24m(1) for more information.

        [1m-New_Developer[0m
                The [4maegis[24m [4m-New_Developer[24m command is used to add new developers
                to a project.  See [4maend[24m(1) for more information.

        [1m-New_File[0m
                The [4maegis[24m [4m-New_File[24m command is used to add new files to a
                change.  See [4maenf[24m(1) for more information.

        [1m-New_File_Undo[0m
                The [4maegis[24m [4m-New_File_Undo[24m command is used to remove new files
                from a change.  See [4maenfu[24m(1) for more information.

        [1m-New_Integrator[0m
                The [4maegis[24m [4m-New_Integrator[24m command is used to add new
                integrators to a project.  See [4maeni[24m(1) for more information.

        [1m-New_Project[0m
                The [4maegis[24m [4m-New_Project[24m command is used to create a new project
                to be watched over by aegis.  See [4maenpr[24m(1) for more
                information.

        [1m-New_Project_Alias[0m
                The [4maegis[24m [4m-New_Project_Alias[24m command is used to create a new
                project alias.  See [4maenpa[24m(1) for more information.

        [1m-New_ReLeaSe[0m
                The [4maegis[24m [4m-New_ReLeaSe[24m command is used to create a new project
                from an existing project.  See [4maenrls[24m(1) for more information.

        [1m-New_ReViewer[0m
                The [4maegis[24m [4m-New_ReViewer[24m command is used to add new reviewers
                to a project.  See [4maenrv[24m(1) for more information.

        [1m-New_Test[0m
                The [4maegis[24m [4m-New_Test[24m command is used to add a new test to a
                change.  See [4maent[24m(1) for more information.

        [1m-New_Test_Undo[0m
                The [4maegis[24m [4m-New_Test_Undo[24m command is used to remove new tests
                from a change.  See [4maentu[24m(1) for more information.

        [1m-Project_Attributes[0m
                The [4maegis[24m [4m-Project_Attributes[24m command is used to modify the
                attributes of a project.  See [4maepa[24m(1) for more information.

        [1m-Remove_Administrator[0m
                The [4maegis[24m [4m-Remove_Administrator[24m command is used to remove
                administrators from a project.  See [4maera[24m(1) for more
                information.

        [1m-Remove_Developer[0m
                The [4maegis[24m [4m-Remove_Developer[24m command is used to remove
                developers from a project.  See [4maerd[24m(1) for more information.

        [1m-ReMove_file[0m
                The [4maegis[24m [4m-ReMove_file[24m command is used to add files to be
                deleted to a change.  See [4maerm[24m(1) for more information.

        [1m-ReMove_file_Undo[0m
                The [4maegis[24m [4m-Remove_File_Undo[24m command is used to remove files to
                be deleted from a change.  See [4maermu[24m(1) for more information.

        [1m-Remove_Integrator[0m
                The [4maegis[24m [4m-Remove_Integrator[24m command is used to remove
                integrators from a project.  See [4maeri[24m(1) for more information.

        [1m-ReMove_PRoject[0m
                The [4maegis[24m [4m-ReMove_PRoject[24m command is used to remove a project.
                See [4maermpr[24m(1) for more information.

        [1m-Remove_Project_Alias[0m
                The [4maegis[24m [4m-Remove_Project_Alias[24m command is used to remove a
                project alias.  See [4maerpa[24m(1) for more information.

        [1m-Remove_ReViewer[0m
                The [4maegis[24m [4m-Remove_ReViewer[24m command is used to remove reviewers
                from a project.  See [4maerrv[24m(1) for more information.

        [1m-RePorT[0m
                The [4maegis[24m [4m-RePorT[24m command is used to generate reports from
                aegis' database.  These reports may be written by users, or be
                distributed with aegis.

        [1m-Review_Fail[0m
                The [4maegis[24m [4m-Review_Fail[24m command is used to fail a change
                review.  See [4maerfail[24m(1) for more information.

        [1m-Review_Begin[0m
                The [4maegis[24m [4m-Review_Begin[24m command is used to begin to review a
                change.  See [4maerb[24m(1) for more information.

        [1m-Review_Begin_Undo[0m
                The [4maegis[24m [4m-Review_Begin_Undo[24m command is used to stop reviewing
                a change.  See [4maerbu[24m(1) for more information.

        [1m-Review_Pass[0m
                The [4maegis[24m [4m-Review_PASS[24m command is used to pass a change
                review.  See [4maerpass[24m(1) for more information.

        [1m-Review_Pass_Undo[0m
                The [4maegis[24m [4m-Review_Pass_Undo[24m command is used to rescind a
                change review pass.  See [4maerpu[24m(1) for more information.

        [1m-Test[0m
                The [4maegis[24m [4m-Test[24m command is used to run tests.  See [4maet[24m(1) for
                more information.

        [1m-VERSion[0m
                The [4maegis[24m [4m-VERSion[24m command is used to get copyright and
                version details.  See [4maev[24m(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.

   [1mNotification[0m
        Many [4maegis[24m 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
        [4maepconf[24m(5) and [4maepattr[24m(5) for more information.

[1mOPTIONS[0m
        The following options are available to all functions.  These options
        may appear anywhere on the command line following the function
        selectors.

        [1m-LIBrary [4m[22mabspath[0m
                This option may be used to specify a directory to be searched
                for global state files and user state files.  (See [4maegstate[24m(5)
                and [4maeustate[24m(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 [4mAEGIS_PATH[24m environment
                variable (colon separated), and finally, [4m/usr/local/lib/aegis[0m
                is always searched.  All paths specified, either on the
                command line or in the [4mAEGIS_PATH[24m environment variable, must
                be absolute.

        [1m-Verbose[0m
                This option may be used to cause aegis to produce more output.
                By default aegis only produces output on errors.  When used
                with the [1m-List [22moption this option causes column headings to be
                added.

        The following options are available to [4mmost[24m functions.  These options
        may appear anywhere on the command line following the function
        selectors.

        [1m-Project [4m[22mname[0m
                This option may be used to select the project of interest.
                When no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                environment variable is consulted.  If that does not exist,
                the user's [4m$HOME/.aegisrc[24m file is examined for a default
                project field (see [4maeuconf[24m(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.

        [1m-Change [4m[22mnumber[0m
                This option may be used to specify a particular change within
                a project.  When no [1m-Change [22moption is specified, the
                [4mAEGIS_CHANGE[24m environment variable is consulted.  If that does
                not exist, the user's [4m$HOME/.aegisrc[24m file is examined for a
                default change field (see [4maeuconf[24m(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.

        [1m-Change [4m[22mproject[24m[1m.C[4m[22mnumber[0m
                As a shortcut, it is possible to combine the [1m-Project [22mand
                [1m-Change [22moptions into a single option.

        [1m-Change [4m[22mbranch[24m[1m.C[4m[22mnumber[0m
                Several functions accept a [1m-BRanch [22moption; it is possible to
                combine the [1m-BRanch [22mand [1m-Change [22moptions in a single option.
                (This intentinally has the same form as the [4m${version}[0m
                substitution output for incomplete changes.)

        [1m-Change [4m[22mbranch[24m[1m.D[4m[22mnumber[0m
                Several functions accept both the [1m-BRanch [22mand [1m-Delta [22moptions
                (or [1m-BRanch [22mand [1m-Change-From-Delta [22moptions); it is possible to
                combine them in a single option.  (This intentinally has the
                same form as the [4m${version}[24m substitution output for completed
                changes.)

        [1m-Change [4m[22mproject[24m[1m.D[4m[22mnumber[0m
                It is possible to combine the [1m-Project [22mand [1m-Change-From-Delta[0m
                options as a single option.

        [1m-Change [4m[22mUUID[0m
                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).

[1mListings[0m
        The following options are available to all listings.  These options
        may appear anywhere on the command line following the function
        selectors.

        [1m-PAGer  [22mThe output of listings and help is piped through the pager
                command given in the PAGER environment variable (or [4mmore[24m 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 [4maeuconf[24m(5) file.

        [1m-No_PAGer[0m
                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 [4maeuconf[24m(5) file.

        [1m-Page_Length [4m[22mnumber[0m
                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 [4mLINES[24m environment variable, or set to 24
                lines.

        [1m-Page_Width [4m[22mnumber[0m
                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 [4mCOLS[24m environment variable,
                or set to 79 characters.

        [1m-TERse[0m
                This option may be used to cause listings to produce the bare
                minimum of information.  It is usually useful for shell
                scripts.

        [1m-UNFormatted[0m
                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.

        [1m-Page-Header[0m
                This option requests that page headings be present in listings
                and reports.  This is the default.

        [1m-No-Page-Header[0m
                This option requests that page headings be omitted from
                listings and reports.

[1mAbbreviations[0m
        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 [1m-Project [22moption.  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
        [4maegis[24m are long, this means ignoring the extra leading '-'.  The
        "[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.

[1mEXIT STATUS[0m
        The [4maegis[24m command will exit with a status of 1 on any error.  The
        [4maegis[24m command will only exit with a status of 0 if there are no
        errors.

[1mENVIRONMENT VARIABLES[0m
        The [4maegis[24m command understands the following environment variables:

        AEGIS_PATH
                A colon-separated list of library directories.  See the
                [1m-LIBrary [22moption for a description how this environment
                variable is used.

        AEGIS_PROJECT
                Names a default project.  See the [1m-Project [22moption for a
                description how this environment variable is used.

        AEGIS_CHANGE
                Specifies a default change.  See the [1m-Change [22moption for a
                description how this environment variable is used.

        AEGIS_FLAGS
                This environment variable is used to hold [4maeuconf[24m(5)
                information, and over-rides the settings in the users [4m.aegisrc[0m
                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.  [4mE.g.[24m 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
                [1m-Page_Width [22moption for a description how this environment
                variable is used.

        EDITOR  Specifies the program use to edit files when the [1m-Edit [22mor
                [1m-Edit_BackGround [22moptions are used.  (See also the [4mVISUAL[0m
                environment variable.)  Defaults to [4mvi[24m if not set.  See the
                [4meditor_command[24m fields in [4maeuconf[24m(1) for how to override this
                specifically for Aegis.

        LINES   Specifies the page length for listings.  See the [1m-Page_Length[0m
                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 [4mmore[24m if
                not set.

        VISUAL  Specifies the program use to edit files when the [1m-Edit [22moption
                is used.  (See also the [4mEDITOR[24m environment variable.)
                Defaults to [4mvi[24m if not set.  See the [4mvisual_command[24m fields in
                [4maeuconf[24m(1) for how to override this specifically for Aegis.

        AEGIS_DATADIR
                Overrides the datadir as specified at [4mconfigure[24m 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
        [4mproject_specific[24m 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 [4maesub[24m(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.

[1mSEE ALSO[0m
        [4maegis[24m(5)
                aegis file format syntax

        [4maecattr[24m(5)
                change attributes file format

        [4maecstate[24m(5)
                change state file format

        [4maedir[24m(5)
                directory structures

        [4maegstate[24m(5)
                aegis state file format

        [4maepattr[24m(5)
                project attributes file format

        [4maepconf[24m(5)
                project configuration file format

        [4maepstate[24m(5)
                project state file format

        [4maer[24m(5)  report script language definition

        [4maesub[24m(5)
                available command substitutions

        [4maeuconf[24m(5)
                user configuration file format

        [4maeustate[24m(5)
                user state file format

[1mCOPYRIGHT[0m
        aegis version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
        the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you
        are welcome to redistribute it under certain conditions; for details
        use the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        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)



[1mNAME[0m
        ae-cvs-ci - checkin a change set to CVS

[1mSYNOPSIS[0m
        [1mae-cvs-ci [4m[22mproject-name[24m [4mchange-number[0m

[1mDESCRIPTION[0m
        The [4mae-cvs-ci[24m command is used to check an Aegis change set into CVS.

        This script is a short wrapper around the [4mae-repo-ci[24m(1) command.

        This is usually used in the [4mintegrate[24m [4mpass[24m [4mnotify[24m [4mcommand[24m project
        attribute, as in
                integrate_pass_notify_command =
                    "$bin/ae-cvs-ci $project $change";

[1mEXIT STATUS[0m
        The [4mae-cvs-ci[24m command will exit with a status of 1 on any error.  The
        [4mae-cvs-ci[24m command will only exit with a status of 0 if there are no
        errors.

[1mENVIRONMENT VARIABLES[0m
        See [4maegis[24m(1) for a list of environment variables which may affect this
        command.  See [4maepconf[24m(5) for the project configuration file's
        [4mproject_specific[24m field for how to set environment variables for all
        commands executed by Aegis.

[1mCOPYRIGHT[0m
        ae-cvs-ci version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The ae-cvs-ci program comes with ABSOLUTELY NO WARRANTY; for details
        use the '[4mae-cvs-ci[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software
        and you are welcome to redistribute it under certain conditions; for
        details use the '[4mae-cvs-ci[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        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)



[1mNAME[0m
        ae-repo-ci - redundant repository checkin

[1mSYNOPSIS[0m
        [1mae-repo-ci -Project [4m[22mname[24m [1m-Change [4m[22mnumber[24m [1m-REPOsitory [4m[22mtype[24m [ [4moption[24m...
        ]
        [1mae-repo-ci -Help[0m
        [1mae-repo-ci -VERSion[0m

[1mDESCRIPTION[0m
        The [4mae-repo-ci[24m command is used to redundantly commit an Aegis change
        set into a parallel repository.

   [1mIntegrate Pass Notify Command[0m
        The intended use for the ae-repo-ci command is as an [4mintegrate_pass_-[0m
        [4mnotify_command[24m (see [4maepa[24m(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.

   [1mCommit Messages[0m
        You are able to control the commit message, by using the ae-repo-
        ci:commit-message attribute in the [4mproject_specific[24m 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 [4maesub[24m(5) substitutions are available.

[1mOPTIONS[0m
        The following options are understood:

        [1m-Change [4m[22mnumber[0m
                This option may be used to specify a particular change within
                a project.  See [4maegis[24m(1) for a complete description of this
                option.

        [1m-DIRectory [4m[22mpath[0m
                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.

        [1m-Help[0m
                This option may be used to obtain more information about how
                to use the [4mae-repo-ci[24m program.

        [1m-List   [22mThis option may be used to obtain a list of supported
                repository types.

        [1m-MODule [4m[22mname[0m
                This option may be used to specify which module is to be
                checked out.  If not set, it defaults to the trunk project
                name ([4mi.e.[24m the project name without any branch or version
                numbers).

        [1m-Project [4m[22mname[0m
                This option may be used to select the project of interest.
                When no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                environment variable is consulted.  If that does not exist,
                the user's [4m$HOME/.aegisrc[24m file is examined for a default
                project field (see [4maeuconf[24m(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.

        [1m-REPOsitory [4m[22mtype[0m
                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
                        [1m-module [22moption will be relative to it.

                svn
                        Subversion.  You must specify the complete URL with
                        the [1m-module [22moption.

                        The following field in the project_specific field of
                        the project configuration file (see [4maepconf[24m(5) for
                        more information) are relevant:

                        svn:username
                                If present, the --username command line option
                                will be added to [4msvn[24m(1) command lines, with
                                this value.

                        svn:password 8n
                                If present, the --username command line option
                                will be added to [4msvn[24m(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 [1m-list[0m
                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 [1m-Project [22moption.  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
        [4mae-repo-ci[24m are long, this means ignoring the extra leading '-'.  The
        "[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.

[1mEXIT STATUS[0m
        The [4mae-repo-ci[24m command will exit with a status of 1 on any error.  The
        [4mae-repo-ci[24m command will only exit with a status of 0 if there are no
        errors.

[1mENVIRONMENT VARIABLES[0m
        See [4maegis[24m(1) for a list of environment variables which may affect this
        command.  See [4maepconf[24m(5) for the project configuration file's
        [4mproject_specific[24m field for how to set environment variables for all
        commands executed by Aegis.

[1mSEE ALSO[0m
        [4maeca[24m(1) how to change project attributes

[1mCOPYRIGHT[0m
        ae-repo-ci version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The ae-repo-ci program comes with ABSOLUTELY NO WARRANTY; for details
        use the '[4mae-repo-ci[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software
        and you are welcome to redistribute it under certain conditions; for
        details use the '[4mae-repo-ci[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        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)



[1mNAME[0m
        ae-sccs-put - put sccs version

[1mSYNOPSIS[0m
        [1mae-sccs-put -y[4m[22mcomment[24m [1m-G[4m[22minput-file[24m [4mhistory-file[0m

[1mDESCRIPTION[0m
        The [4mae-sccs-put[24m 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 [4maegis.conf[24m configuration file.

        The file comments [4mmust[24m be specified on the command line.

        The source file [4mmust[24m 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 [4msccs[0m
        [4madmin[24m command) if it does not.

[1mOPTIONS[0m
        The following options are understood:

        [1m-G[4m[22msource-file[0m
                This option must be used to specify the source file to be
                checked into the history.

        [1m-y[4m[22mcomment[0m
                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.

[1mEXIT STATUS[0m
        The [4mae-sccs-put[24m command will exit with a status of 1 on any error.
        The [4mae-sccs-put[24m command will only exit with a status of 0 if there are
        no errors.

[1mENVIRONMENT VARIABLES[0m
        See [4maegis[24m(1) for a list of environment variables which may affect this
        command.  See [4maepconf[24m(5) for the project configuration file's
        [4mproject_specific[24m field for how to set environment variables for all
        commands executed by Aegis.

[1mCOPYRIGHT[0m
        ae-sccs-put version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The ae-sccs-put program comes with ABSOLUTELY NO WARRANTY; for details
        use the '[4mae-sccs-put[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software
        and you are welcome to redistribute it under certain conditions; for
        details use the '[4mae-sccs-put[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        Peter Miller   E-Mail:   millerp@canb.auug.org.au
        /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/



ae_c(1)                                                                ae_c(1)



[1mNAME[0m
        ae_c - set change number

[1mSYNOPSIS[0m
        [1mae_c [4m[22mchange-number[0m

[1mDESCRIPTION[0m
        The [4mae_c[24m 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.

[1mSEE ALSO[0m
        [4maegis[24m(1)
                For information on environment variables.

        [4mae_p[24m(1) Set project name.

[1mCOPYRIGHT[0m
        aegis version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
        the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you
        are welcome to redistribute it under certain conditions; for details
        use the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        Peter Miller   E-Mail:   millerp@canb.auug.org.au
        /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/



ae_diff2htm(1)                                                  ae_diff2htm(1)



[1mNAME[0m
        ae_diff2htm - wraps the diff2html command

[1mSYNOPSIS[0m
        [1mae_diff2htm[0m

[1mDESCRIPTION[0m
[1mDESCRIPTION[0m
        The [4mae_diff2htm[24m script wraps the diff2html command if available or
        otherwise falls back to a simple context diff.

[1mCOPYRIGHT[0m
        aegis version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
        the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you
        are welcome to redistribute it under certain conditions; for details
        use the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        Peter Miller   E-Mail:   millerp@canb.auug.org.au
        /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/



ae_p(1)                                                                ae_p(1)



[1mNAME[0m
        ae_p - set project name

[1mSYNOPSIS[0m
        [1mae_p [4m[22mproject-name[0m

[1mDESCRIPTION[0m
        The [4mae_p[24m 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.

[1mSEE ALSO[0m
        [4maegis[24m(1)
                For information on environment variables.

        [4mae_c[24m(1) Set change number.

[1mCOPYRIGHT[0m
        aegis version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
        the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you
        are welcome to redistribute it under certain conditions; for details
        use the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        Peter Miller   E-Mail:   millerp@canb.auug.org.au
        /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/



aeannotate(1)                                                    aeannotate(1)



[1mNAME[0m
        aeannotate - annotated source file listing

[1mSYNOPSIS[0m
        [1maeannotate [22m[ [4moption[24m...  ] [4mfilename[0m
        [1maeannotate -Help[0m
        [1maeannotate -List[0m
        [1maeannotate -VERSion[0m

[1mDESCRIPTION[0m
        The [4maeannotate[24m command is used to produce an annotated listing of the
        named source file.

        The columns specified by the user (see the [1m--column [22moption, 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 [4m$version[24m 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 [4maecp[24m(1) command.

        At the end of the listing, accumulated statistics are presented,
        correlated to the unique columns values see in the listing.

[1mOPTIONS[0m
        The following options are understood:

        [1m-COLumn [4m[22mformula[24m  [1m[ [4m[22mheading[24m [1m][ [4m[22mwidth[24m [1m][0m
                This option may be used to specify columns you wish to see in
                the output.  The formula is in the for of an [4maesub[24m(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.

        [1m-File_Statistics[0m
                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 [4mvice[24m [4mversa[24m.

        [1m-Help[0m
                This option may be used to obtain more information about how
                to use the [4maeannotate[24m program.

        [1m-Diff_Option [4m[22mstring[0m
                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 [1m-b [22moption, to ignore white
                space changes, because this ignores the vast majority of
                cosmetic formatting changes, showing you the content changes
                instead.  The [1m-i [22moption, to ignore case, can also be useful
                for case-insensitive languages.

        [1m-Output [4m[22mfilename[0m
                This option may be used to specify the output file.  The
                output is sent to the standard output by default.

        [1m-Project [4m[22mname[0m
                This option may be used to select the project of interest.
                When no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                environment variable is consulted.  If that does not exist,
                the user's [4m$HOME/.aegisrc[24m file is examined for a default
                project field (see [4maeuconf[24m(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 [1m-Project [22moption.  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
        [4maeannotate[24m are long, this means ignoring the extra leading '-'.  The
        "[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.

[1mEXIT STATUS[0m
        The [4maeannotate[24m command will exit with a status of 1 on any error.  The
        [4maeannotate[24m command will only exit with a status of 0 if there are no
        errors.

[1mENVIRONMENT VARIABLES[0m
        See [4maegis[24m(1) for a list of environment variables which may affect this
        command.  See [4maepconf[24m(5) for the project configuration file's
        [4mproject_specific[24m field for how to set environment variables for all
        commands executed by Aegis.

[1mEXAMPLES[0m
        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 [4maesub[24m(5) substitutions are available, however only the
        [4m${change[24m [4m...}[24m 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 [4mfilename[0m

[1mCOPYRIGHT[0m
        aeannotate version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The aeannotate program comes with ABSOLUTELY NO WARRANTY; for details
        use the '[4maeannotate[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software
        and you are welcome to redistribute it under certain conditions; for
        details use the '[4maeannotate[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        Peter Miller   E-Mail:   millerp@canb.auug.org.au
        /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/



aegis -Build(1)                                                aegis -Build(1)



[1mNAME[0m
        aegis build - build a change

[1mSYNOPSIS[0m
        [1maegis -Build [22m[ [4moption[24m...  ][ [4mfilename[24m...  ]
        [1maegis -Build -List [22m[ [4moption[24m...  ]
        [1maegis -Build -Help[0m

[1mDESCRIPTION[0m
        The [4maegis[24m [4m-Build[24m 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 [4mbuild_[24m [4mcommand[24m and [4mintegration_-[0m
        [4mbuild_command[24m fields in [4maepconf[24m(5) for more information.)  Output of
        the command is automatically logged to the [4maegis.log[24m 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 [4maegis[24m [4m-Build[24m command was
        executed.

        If the change is in the [4mbeing[24m [4mintegrated[24m 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.

   [1mNo Build Required[0m
        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.

   [1mProcess Side Effects[0m
        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.

   [1mNotification[0m
        The actions of the command are controlled by the [4mbuild_[24m [4mcommand[24m and
        [4mintegration_build_command[24m fields of the project [4mconfig[24m file.  See
        [4maepconf[24m(5) for more information.

   [1mFile Action Adjustment[0m
        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.

[1mPARTIAL BUILD[0m
        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 [4mbeing[24m [4mintegrated[24m state, but can often be useful
        in the [4mbeing[24m [4mdeveloped[24m 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.

   [1mFile Name Interpretation[0m
        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 [1m-BAse_RElative [22moption 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 [4mrelative_filename_preference[24m in the user configuration file may be
        used to modify this default behavior.  See [4maeuconf[24m(5) for more
        information.

[1mSYMBOLIC LINKS[0m
        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.

   [1mProject Configuration[0m
        The [4mdevelopment_directory_style[24m field of the project configuration
        file controls the appearance of the development directory.  See
        [4maepconf[24m(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 [4maeb[24m(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 [4maedb[24m(1) for more information) and also
        maintained by each [4maeb[24m(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
        [4maecp[24m(1) command, the symbolic link pointing into the baseline, if any,
        will be removed before the file is copied.

        [1mNote: [22mUsing this functionality in either form has implications for how
        the rules file of the dependency maintenance tool is written.  Rules
        must [4mremove[24m their targets before creating them (usually with an [4mrm[24m [4m-f[0m
        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
        [4mlink_integration_directory[24m field of the project configuration file.

   [1mUser Configuration[0m
        There is a [4msymbolic_link_preference[24m field in the user configuration
        file (see [4maeuconf[24m(5) for more information).  This controls whether
        [4maeb[24m(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 [4mdevelopment_directory__style.source_file_symlink[24m 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 [4maedb[24m(1) command [1mdoes not [22mconsult 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 [4maeb[24m(1) action is to ignore the user
        preference and the verify symbolic links.

        There are two command line options which modify [4maeb[24m(1) behavior
        further: the [1m-Verify-Symbolic-Links [22moption says to verify the symbolic
        links; and the [1m-Assume-Symbolic-Links [22moption 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 [4mdevelopment_-[0m
        [4mdirectory_style[24m, usually with helpful build side-effects.  See
        [4maepconf[24m(1) and the [4mDepenedency[24m [4mMaintenance[24m [4mTool[24m 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).

[1mTHE BASELINE LOCK[0m
        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 [4maeb[24m(1), [4maecp[24m(1) and [4maed[24m(1) commands) take a baseline [4mread[0m
        lock.  This is a non-exclusive lock, so the concurrent development of
        changes is not hindered.

        The command which modifies the baseline, [4maeipass[24m(1), takes a baseline
        [4mwrite[24m lock.  This is an exclusive lock, forcing [4maeipass[24m(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 [4maegis[24m [4m-Integrate_PASS[24m 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.

[1mMETRICS[0m
        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 [4maemetrics[24m(5).

        The name of the metrics file defaults to "[4mfilename[24m[1m,S[22m", however it may
        be varied, by setting the [4mmetrics_filename_pattern[24m field of the
        project [4mconfig[24m file.  See [4maepconf[24m(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.

[1mOPTIONS[0m
        The following options are understood:

        [4mname[24m[1m=[4m[22mvalue[0m
                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.

        [1m-BAse_RElative[0m
                This option may be used to cause relative filenames to be
                considered relative to the base of the source tree.  See
                [4maeuconf[24m(5) for the corresponding user preference.

        [1m-CUrrent_RElative[0m
                This option may be used to cause relative filenames to be
                considered relative to the current directory.  This is usually
                the default.  See [4maeuconf[24m(5) for the corresponding user
                preference.

        [1m-Change [4m[22mnumber[0m
                This option may be used to specify a particular change within
                a project.  See [4maegis[24m(1) for a complete description of this
                option.

        [1m-Help[0m
                This option may be used to obtain more information about how
                to use the [4maegis[24m program.

        [1m-List[0m
                This option may be used to obtain a list of suitable subjects
                for this command.  The list may be more general than expected.

        [1m-MINImum[0m
                This option may be used to request a source-only [4mdevelopment_-[0m
                [4mdirectory_style[24m.  This is useful if you want to simulate
                something like [4maeib[24m [4m-minimum[24m in the development directory.
                This option is only meaningful if [4mdevelopment_directory_style[0m
                is being used.  If the change is in the [4mbeing[24m [4mintegrated[0m
                state, and the developer specified [1m-MINImum [22mwhen issuing the
                [4maegis[24m [4m-Integrate_Begin[24m command, then this option is set by
                default.

        [1m-Not_Logging[0m
                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.

        [1m-Project [4m[22mname[0m
                This option may be used to select the project of interest.
                When no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                environment variable is consulted.  If that does not exist,
                the user's [4m$HOME/.aegisrc[24m file is examined for a default
                project field (see [4maeuconf[24m(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.

        [1m-TERse[0m
                This option may be used to cause listings to produce the bare
                minimum of information.  It is usually useful for shell
                scripts.

        [1m-Verbose[0m
                This option may be used to cause aegis to produce more output.
                By default aegis only produces output on errors.  When used
                with the [1m-List [22moption this option causes column headings to be
                added.

        [1m-Verify_Symbolic_Links[0m
                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 [4mdevelopment_directory_style[24m 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 [4maeuconf[24m(5).  This option is the default, if
                meaningful for your configuration.  The name is an historical
                accident, hard links and file copies are included.

        [1m-Assume_Symbolic_Links[0m
                This option may be used to request that no update of baseline
                mirror files take place.  This options is useful when you
                [4mdefinitely[24m [4mknow[24m 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 [4maeuconf[24m(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.

        [1m-Wait   [22mThis option may be used to require Aegis commands to wait for
                access locks, if they cannot be obtained immediately.
                Defaults to the user's [4mlock_wait_preference[24m if not specified,
                see [4maeuconf[24m(5) for more information.

        [1m-No_Wait[0m
                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 [4mlock_wait_preference[24m if not specified,
                see [4maeuconf[24m(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 [1m-Project [22moption.  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
        [4maegis[24m are long, this means ignoring the extra leading '-'.  The
        "[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.

[1mRECOMMENDED ALIAS[0m
        The recommended alias for this command is
        csh%    alias aeb 'aegis -b \!* -v'
        sh$     aeb(){aegis -b "$@" -v}

[1mERRORS[0m
        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 [4mbeing[24m [4mdeveloped[24m or
        [4mbeing[24m [4mintegrated[24m states.
        It is an error if a partial build is requested and the change is in
        the [4mbeing[24m [4mintegrated[24m state.

[1mEXIT STATUS[0m
        The [4maegis[24m command will exit with a status of 1 on any error.  The
        [4maegis[24m command will only exit with a status of 0 if there are no
        errors.

[1mENVIRONMENT VARIABLES[0m
        See [4maegis[24m(1) for a list of environment variables which may affect this
        command.  See [4maepconf[24m(5) for the project configuration file's
        [4mproject_specific[24m field for how to set environment variables for all
        commands executed by Aegis.

[1mSEE ALSO[0m
        [4maedb[24m(1) begin development of a change

        [4maecp[24m(1) file copy also takes a baseline read lock (non-exclusive)

        [4maeib[24m(1) begin integration of a change

        [4maeipass[24m(1)
                integrate pass takes a baseline write lock (exclusive)

        [4maet[24m(1)  run tests

        [4maemetrics[24m(5)
                metrics values file format

        [4maepconf[24m(5)
                project configuration file format

        [4maeuconf[24m(5)
                user configuration file format

[1mCOPYRIGHT[0m
        aegis version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
        the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you
        are welcome to redistribute it under certain conditions; for details
        use the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        Peter Miller   E-Mail:   millerp@canb.auug.org.au
        /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/



aebisect(1)                                                        aebisect(1)



[1mNAME[0m
        aebisect - search for a delta which changed project behaviour

[1mSYNOPSIS[0m
        [1maebisect [22m[[4moption[24m...] [-Branch [4mbranch1[24m] -DELta [4mdelta1[24m [-Branch [4mbranch2[24m]
                 -DELta [4mdelta2[24m -- [4mcommand[24m [command_args]

[1mDESCRIPTION[0m
        The [1maebisect [22mcommand 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, [1maebisect [22msets up a development
        directory, builds the project, and then runs the specified [4mcommand[24m in
        the development directory. By iteration, [1maebisect [22mfinds two
        consecutive deltas where the return code of [4mcommand[24m changed.

        Note: [1maebisect [22mcan take considerable CPU effort, since it (normally)
        does a full build from scratch for each delta tested.

[1mOPTIONS[0m
        The following options are understood:

        [1m-Help[0m
           Show usage information.

        [1m-Project [4m[22mproject-name[0m
           specify the project (otherwise done via the [1mAEGIS_PROJECT[0m
           environment variable)

        [1m-Change [4m[22mchange-number[0m
           specify the change to use for the processing (otherwise done via
           the [1mAEGIS_CHANGE [22menvironment variable). The change must be in the
           [4mawaiting_development[24m state; this ensures a correct environment for
           building and testing.

        [1m-Branch [4m[22mbranch-extension[0m
           specify the branch for one of the deltas. Defaults to the baseline
           branch of the project. Use [1m-b - [22m(single dash) to specify the trunk.
           Branch specifiers must precede the corresponding delta specifiers.

        [1m-Logfile [4m[22mlogfile[0m
           specify where normal output goes; defaults to [4m$HOME/aebisect.log[24m.

        [1m-Verbose[0m
           produce more diagnostic information (both logfile and standard
           output).

        [1m-Keep[0m
           do not delete working files, which are in a temporary directory.
           Warning: these may be voluminous!

        [1m-DIRectory [4m[22mpath[0m
           specify a development directory to use for building and testing.

        [1m-Minimum[0m
           use the [1m-minimum [22moption for the builds.

        [1m-Nobuild[0m
           skip the build steps. This option is useful if the test command
           only involves source files. (Consider using [1maeannotate[22m(1) instead.)

        [1m-Zero_only[0m
           treat all test result codes other than 0 as equivalent.

[1mDIAGNOSTICS[0m
        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.

[1mSIGNALS[0m
        [1maebisect [22mwill stop on INT, QUIT, and TERM signals, probably leaving
        the development directory in an uncertain state.

[1mEXAMPLE[0m
        Suppose a bug was introduced by development on project [4mfoo-4.5[24m,
        sometime between version 1.2.D003 and 4.5.D006, and you have written
        an Aegis test script for the bug (see [1maent[22m(1)), called
        [4m/wrk/test/00/t0007a.sh[24m, 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.

[1mBUGS[0m
        [1maebisect [22mdepends on [1maecp -delta [22mfor 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,
        [1maebisect [22mexits. 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 [1maedbu [22mwhen done.

        In some situations the problem may be cured by an additional step
        between [1maedb [22mand [1maeb[22m. A command to be interposed may be defined via
        the environment variable [1mAEBISECT_DB_HOOK[22m; this command is executed
        after [1maecp[22m, so it may be used to patch source files -- see the script
        source for details.

[1mCOPYRIGHT[0m
        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)



[1mNAME[0m
        aebuffy - watch for changes

[1mSYNOPSIS[0m
        [1maebuffy [22m[ [4mproject-name[24m ]

[1mDESCRIPTION[0m
        The [4maebuffy[24m 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 [4mproject-name[24m command line option, you need to set
        the AEGIS_PROJECT environment variable, or the default_project field
        of the [4m.aegisrc[24m 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 [4mtkaer[24m(1) command for that
        change.  This does not work for changes in the [4mawaiting[24m [4mdevelopment[0m
        and [4mcompleted[24m 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.

[1mCOPYRIGHT[0m
        aebuffy version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The aebuffy program comes with ABSOLUTELY NO WARRANTY; for details use
        the '[4maebuffy[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you
        are welcome to redistribute it under certain conditions; for details
        use the '[4maebuffy[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        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)



[1mNAME[0m
        aegis change attributes - modify the attributes of a change

[1mSYNOPSIS[0m
        [1maegis -Change_Attributes -File [4m[22mattr-file[24m [ [4moption[24m...  ]
        [1maegis -Change_Attributes -Edit [22m[ [4moption[24m...  ]
        [1maegis -Change_Attributes -Fix_ARchitecture[0m
        [1maegis -Change_Attributes [4m[22mname[24m[1m=[4m[22mvalue[0m
        [1maegis -Change_Attributes -List [22m[ [4moption[24m...  ]
        [1maegis -Change_Attributes -Help[0m
        [1maegis -Change_Attributes -UUID [4m[22mstring[24m [ [4moption[24m... ]

[1mDESCRIPTION[0m
        The [4maegis[24m [4m-Change_Attributes[24m command is used to set, edit or list the
        attributes of a change.

        The output of the [1m-List [22mvariant is suitable for use as input at a
        later time.

        See [4maecattr[24m(5) for a description of the file format.

        The [4mname[24m[1m=[4m[22mvalue[24m 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 [4mname[24m[1m+=[4m[22mvalue[24m form will
        always append the pair.

   [1mExample[0m
        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.

   [1mKnown Attribute Names[0m
        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
                [4maeget[24m(1)'s change set inventory pages, used by [4maedist[24m [4m-replay[0m
                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 [4maede-policy[24m(1) copyright validation.

        original-uuid
                This is set by [4maedist[24m [4m-receive[24m when an incoming change set is
                changed before it can end development.  There may be more than
                one.  The [4maeget[24m(1) inventory "all" page will show these
                additional UUIDs, used by the [4maedist[24m [4m-pending[24m command..

   [1mUniversal Unique Identifier[0m
        Each change set is assigned a unique universal identifier (UUID) at
        [4mintegrate[24m [4mpass[24m 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 [1m-Universal_Unique_IDentifier [22moption is used by the [4maedist[24m(1) and
        [4maepatch[24m(1) commands to set the UUID of a change set.  It should not be
        used by developers.

   [1mUsing Change Attributes in Scripts[0m
        There are several ways you can use the attributes of an Aegis change
        in a shell script:

        [4maereport[24m(1)
                The report generator is able to access change attributes.  You
                can then have the report generator print the necessary data.

        [4maesub[24m(1)
                Many change attributes can be accessed via the [4maesub[24m(5)
                command substitutions, and printed using the [4maesub[24m(1) command.

        aeca -l The list option of the [4maeca[24m(1) command may be used to print
                the values of all editable change attributes.  It can be
                groped using [4mgrep[24m(1) or [4mawk[24m(1), or similar.

        [4maexml[24m(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.

[1mOPTIONS[0m
        The following options are understood:

        [1m-Change [4m[22mnumber[0m
                This option may be used to specify a particular change within
                a project.  See [4maegis[24m(1) for a complete description of this
                option.

        [1m-Description_Only[0m
                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.

        [1m-Edit[0m
                Edit the attributes with a text editor, this is usually more
                convenient than supplying a text file.  The [4mVISUAL[24m and then
                [4mEDITOR[24m environment variables are consulted for the name of the
                editor to use; defaults to [4mvi[24m(1) if neither is set.  See the
                [4mvisual_command[24m and [4meditor_command[24m fields in [4maeuconf[24m(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 [1m-file[0m
                option.

                The [1m-edit [22moption may not be used in the background, or when
                the standard input is not a terminal.

        [1m-Edit_BackGround[0m
                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 [1mEDITOR [22menvironment
                variable is consulted for the name of the editor to use; it is
                a fatal error if it is not set.  See the [4meditor_command[24m field
                in [4maeuconf[24m(1) for how to override this specifically for Aegis.

        [1m-File [4m[22mfilename[0m
                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.

        [1m-Help[0m
                This option may be used to obtain more information about how
                to use the [4maegis[24m program.

        [1m-List[0m
                This option may be used to obtain a list of suitable subjects
                for this command.  The list may be more general than expected.

        [1m-Project [4m[22mname[0m
                This option may be used to select the project of interest.
                When no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                environment variable is consulted.  If that does not exist,
                the user's [4m$HOME/.aegisrc[24m file is examined for a default
                project field (see [4maeuconf[24m(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.

        [1m-TERse[0m
                This option may be used to cause listings to produce the bare
                minimum of information.  It is usually useful for shell
                scripts.

        [1m-Verbose[0m
                This option may be used to cause aegis to produce more output.
                By default aegis only produces output on errors.  When used
                with the [1m-List [22moption this option causes column headings to be
                added.

        [1m-Universal_Unique_IDentifier [4m[22mstring[0m
                This option may be used to set the UUID of change change.

        [1m-Wait   [22mThis option may be used to require Aegis commands to wait for
                access locks, if they cannot be obtained immediately.
                Defaults to the user's [4mlock_wait_preference[24m if not specified,
                see [4maeuconf[24m(5) for more information.

        [1m-No_Wait[0m
                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 [4mlock_wait_preference[24m if not specified,
                see [4maeuconf[24m(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 [1m-Project [22moption.  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
        [4maegis[24m are long, this means ignoring the extra leading '-'.  The
        "[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.

[1mRECOMMENDED ALIAS[0m
        The recommended alias for this command is
        csh%    alias aeca 'aegis -ca \!* -v'
        sh$     aeca(){aegis -ca "$@" -v}

[1mERRORS[0m
        It is an error if the current user is not an administrator of the
        specified project.

[1mEXIT STATUS[0m
        The [4maegis[24m command will exit with a status of 1 on any error.  The
        [4maegis[24m command will only exit with a status of 0 if there are no
        errors.

[1mENVIRONMENT VARIABLES[0m
        See [4maegis[24m(1) for a list of environment variables which may affect this
        command.  See [4maepconf[24m(5) for the project configuration file's
        [4mproject_specific[24m field for how to set environment variables for all
        commands executed by Aegis.

[1mSEE ALSO[0m
        [4mtkaeca[24m(1)
                GUI interface to the [4maeca[24m(1) command.

        [4maecattr[24m(5)
                change attributes file format

        [4maecstate[24m(5)
                change state file format

        [4maepa[24m(5) modify the attributes of a project

        [4maesub[24m(5)
                available command substitutions

        [4maeuconf[24m(5)
                user configuration file format

[1mCOPYRIGHT[0m
        aegis version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
        the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you
        are welcome to redistribute it under certain conditions; for details
        use the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        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)



[1mNAME[0m
        aegis change directory - change directory

[1mSYNOPSIS[0m
        [1maegis -Change_Directory [22m[ [4moption[24m...  ][ [4mrelative-path[24m ]
        [1maegis -Change_Directory -List [22m[ [4moption[24m...  ]
        [1maegis -Change_Directory -Help[0m

[1mDESCRIPTION[0m
        The [4maegis[24m [4m-Change_Directory[24m command is used to obtain a path to change
        directory to.  If the [4mrelative-path[24m is supplied, this will be added to
        the output.

        This command is usually used to calculate an argument for [4mcd[24m(1),
        however it can also be used to obtain an absolute path for change and
        project files.

[1mOPTIONS[0m
        The following options are understood:

        [1m-BaseLine[0m
                This option may be used to specify that the project baseline
                is the subject of the command.

        [1m-BRanch [4m[22mnumber[0m
                This option may be used to specify a different branch for the
                origin file, rather than the baseline.  (See also [1m-TRunk[0m
                option.  Please Note: the [1m-BRanch [22moption does not take a
                project name, just the branch number suffix.

        [1m-GrandParent[0m
                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.)

        [1m-Change [4m[22mnumber[0m
                This option may be used to specify a particular change within
                a project.  See [4maegis[24m(1) for a complete description of this
                option.

        [1m-Development_Directory[0m
                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 [4mbeing[24m [4mintegrated[24m state, when the
                default is the integration directory.

        [1m-Help[0m
                This option may be used to obtain more information about how
                to use the [4maegis[24m program.

        [1m-List[0m
                This option may be used to obtain a list of suitable subjects
                for this command.  The list may be more general than expected.

        [1m-Project [4m[22mname[0m
                This option may be used to select the project of interest.
                When no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                environment variable is consulted.  If that does not exist,
                the user's [4m$HOME/.aegisrc[24m file is examined for a default
                project field (see [4maeuconf[24m(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.

        [1m-TERse[0m
                This option may be used to cause listings to produce the bare
                minimum of information.  It is usually useful for shell
                scripts.

        [1m-TRunk[0m
                This option may be used to specify the project trunk for the
                origin file, rather than the baseline.  (See also [1m-BRanch[0m
                option, the -trunk option is the same as the "-branch -"
                option.)

        [1m-Verbose[0m
                This option may be used to cause aegis to produce more output.
                By default aegis only produces output on errors.  When used
                with the [1m-List [22moption 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 [1m-Project [22moption.  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
        [4maegis[24m are long, this means ignoring the extra leading '-'.  The
        "[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.

[1mRECOMMENDED ALIAS[0m
        The recommended alias for this command is
        csh%    alias aecd 'cd `aegis -cd \!* -v`'
        sh$     aecd(){cd `aegis -cd "$@" -v`}

[1mERRORS[0m
        It is an error if the specified change is not in a state where it has
        a directory to change to.

[1mEXIT STATUS[0m
        The [4maegis[24m command will exit with a status of 1 on any error.  The
        [4maegis[24m command will only exit with a status of 0 if there are no
        errors.

[1mENVIRONMENT VARIABLES[0m
        See [4maegis[24m(1) for a list of environment variables which may affect this
        command.  See [4maepconf[24m(5) for the project configuration file's
        [4mproject_specific[24m field for how to set environment variables for all
        commands executed by Aegis.

[1mSEE ALSO[0m
        [4maedb[24m(1) begin development of a change

        [4maeib[24m(1) begin integration of a change

        [4maerpass[24m(1)
                pass review of a change

        [4maerfail[24m(1)
                fail review of a change

        [4maeuconf[24m(5)
                user configuration file format

[1mCOPYRIGHT[0m
        aegis version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
        the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you
        are welcome to redistribute it under certain conditions; for details
        use the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        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)



[1mNAME[0m
        aegis change owner - set change owner

[1mSYNOPSIS[0m
        [1maegis -Change_Owner [4m[22mchange-number[24m [4muser-name[24m [ [4moption[24m...  ]
        [1maegis -Change_Owner -Help[0m
        [1maegis -Change_Owner -VERSion[0m

[1mDESCRIPTION[0m
        The [4maegis[24m [4m-Change_Owner[24m 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 [4maedb[24m(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.

   [1mNotification[0m
        This command mimics many of the actions of the [4maebdu[24m(1) and [4maedb[24m(1)
        command.  In particular, it invokes the [4mdevelop_begin_undo_command[24m and
        [4mdevelop_begin_command[24m of the project [4mconfig[24m file.  See [4maepconf[24m(5) for
        more information.

   [1mDevelopment Directory Location[0m
        [1mPlease Note: [22mAegis 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 [4mmaximum_filename_length[24m, 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 [4mmaximum_filename_length[24m 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 [4mconfig[24m 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
        [4mdos_filename_required[24m [4m=[24m [4mtrue[24m, and also changing the
        [4mdevelopment_directory_template[24m field.  Heterogeneous development with
        various Windows environments may also require this.

[1mOPTIONS[0m
        The following options are understood:

        [1m-Change [4m[22mnumber[0m
                This option may be used to specify a particular change within
                a project.  See [4maegis[24m(1) for a complete description of this
                option.

        [1m-DIRectory [4m[22mpath[0m
                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.

        [1m-Help[0m
                This option may be used to obtain more information about how
                to use the [4maegis[24m program.

        [1m-Interactive[0m
                Specify that aegis should ask the user for confirmation before
                deleting each file.  Answer the question [4myes[24m to delete the
                file, or [4mno[24m to keep the file.  You can also answer [4mall[24m to
                delete the file and all that follow, or [4mnone[24m to keep the file
                and all that follow.

                Defaults to the user's [4mdelete_file_preference[24m if not
                specified, see [4maeuconf[24m(5) for more information.

                If aegis is running in the background, the question will not
                be asked, and the files will be deleted.

        [1m-Keep[0m
                This option may be used to retain files and/or directories
                usually deleted or replaced by the command.  Defaults to the
                user's [4mdelete_file_preference[24m if not specified, see [4maeuconf[24m(5)
                for more information.

        [1m-No_Keep[0m
                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 [4mdelete_file_preference[24m if not specified, see
                [4maeuconf[24m(5) for more information.

        [1m-List[0m
                This option may be used to obtain a list of suitable subjects
                for this command.  The list may be more general than expected.

        [1m-Project [4m[22mname[0m
                This option may be used to select the project of interest.
                When no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                environment variable is consulted.  If that does not exist,
                the user's [4m$HOME/.aegisrc[24m file is examined for a default
                project field (see [4maeuconf[24m(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.

        [1m-REAson [4m[22mtext[0m
                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.

        [1m-TERse[0m
                This option may be used to cause listings to produce the bare
                minimum of information.  It is usually useful for shell
                scripts.

        [1m-User [4m[22mname[0m
                This option is used to specify the user who is to develop the
                change.

        [1m-Verbose[0m
                This option may be used to cause aegis to produce more output.
                By default aegis only produces output on errors.  When used
                with the [1m-List [22moption this option causes column headings to be
                added.

        [1m-Wait   [22mThis option may be used to require Aegis commands to wait for
                access locks, if they cannot be obtained immediately.
                Defaults to the user's [4mlock_wait_preference[24m if not specified,
                see [4maeuconf[24m(5) for more information.

        [1m-No_Wait[0m
                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 [4mlock_wait_preference[24m if not specified,
                see [4maeuconf[24m(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 [1m-Project [22moption.  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
        [4maegis[24m are long, this means ignoring the extra leading '-'.  The
        "[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.

[1mRECOMMENDED ALIAS[0m
        The recommended alias for this command is
        csh%    alias aechown 'aegis -chown \!* -v'
        sh$     aechown(){aegis -chown "$@" -v}

[1mERRORS[0m
        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 [4mbeing[24m [4mdeveloped[24m state.
        It is an error if the user given is not a developer.

[1mEXIT STATUS[0m
        The [4maegis[24m command will exit with a status of 1 on any error.  The
        [4maegis[24m command will only exit with a status of 0 if there are no
        errors.

[1mENVIRONMENT VARIABLES[0m
        See [4maegis[24m(1) for a list of environment variables which may affect this
        command.  See [4maepconf[24m(5) for the project configuration file's
        [4mproject_specific[24m field for how to set environment variables for all
        commands executed by Aegis.

[1mCOPYRIGHT[0m
        aegis version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
        the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you
        are welcome to redistribute it under certain conditions; for details
        use the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        Peter Miller   E-Mail:   millerp@canb.auug.org.au
        /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/



aegis -CLEan(1)                                                aegis -CLEan(1)



[1mNAME[0m
        aegis clEan - clean files from development directory

[1mSYNOPSIS[0m
        [1maegis -CLEan [22m[ [4moption[24m...  ]
        [1maegis -CLEan -Help[0m
        [1maegis -VERSion[0m

[1mDESCRIPTION[0m
        The [4maegis[24m [4m-CLEan[24m 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 "[4mbeing[24m [4mdeveloped[24m" 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 [4mremove_symlinks_after_build[24m [4m=[24m [4mfalse[24m in the project [4mconfig[0m
        file.  The symbolic links will be re-installed, if [4mcreate_symlinks_-[0m
        [4mbefore_build[24m [4m=[24m [4mtrue[24m.  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 [4mdevelop_begin_command[24m in the project configuration file (see
        [4maepconf[24m(5) for more information) will be run, if there is one.  The
        [4mchange_file_command[24m will be run, if there is one.  The
        [4mproject_file_command[24m 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.

[1mSYMBOLIC LINKS[0m
        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.

   [1mProject Configuration[0m
        The [4mdevelopment_directory_style[24m field of the project configuration
        file controls the appearance of the development directory.  See
        [4maepconf[24m(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 [4maeb[24m(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 [4maedb[24m(1) for more information) and also
        maintained by each [4maeb[24m(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
        [4maecp[24m(1) command, the symbolic link pointing into the baseline, if any,
        will be removed before the file is copied.

        [1mNote: [22mUsing this functionality in either form has implications for how
        the rules file of the dependency maintenance tool is written.  Rules
        must [4mremove[24m their targets before creating them (usually with an [4mrm[24m [4m-f[0m
        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
        [4mlink_integration_directory[24m field of the project configuration file.

   [1mUser Configuration[0m
        There is a [4msymbolic_link_preference[24m field in the user configuration
        file (see [4maeuconf[24m(5) for more information).  This controls whether
        [4maeb[24m(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 [4mdevelopment_directory__style.source_file_symlink[24m 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 [4maedb[24m(1) command [1mdoes not [22mconsult 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 [4maeb[24m(1) action is to ignore the user
        preference and the verify symbolic links.

        There are two command line options which modify [4maeb[24m(1) behavior
        further: the [1m-Verify-Symbolic-Links [22moption says to verify the symbolic
        links; and the [1m-Assume-Symbolic-Links [22moption 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 [4mdevelopment_-[0m
        [4mdirectory_style[24m, usually with helpful build side-effects.  See
        [4maepconf[24m(1) and the [4mDepenedency[24m [4mMaintenance[24m [4mTool[24m 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).

   [1mNotification[0m
        The notification commands that would be run by the [4maecp[24m(1), [4maedb[24m(1),
        [4maenf[24m(1), [4maent[24m(1) and [4maerm[24m(1) commands are run, as appropriate.  The
        [4mproject_file_command[24m is also run, if set.  See [4maepconf[24m(5) for more
        information.

[1mOPTIONS[0m
        The following options are understood:

        [1m-Change [4m[22mnumber[0m
                This option may be used to specify a particular change within
                a project.  See [4maegis[24m(1) for a complete description of this
                option.

        [1m-Help[0m
                This option may be used to obtain more information about how
                to use the [4maegis[24m program.

        [1m-List[0m
                This option may be used to obtain a list of suitable subjects
                for this command.  The list may be more general than expected.

        [1m-Not_Logging[0m
                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.

        [1m-TOuch  [22mThis 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.

        [1m-No_TOuch[0m
                This option may be used to request that the last-modified
                time-stamp of each source file be left unmodified.

        [1m-MINIMum[0m
                This option may be used to request a minimum set of symbolic
                links, when the [4mcreate_symlinks_to_baseline[24m functions are
                being used.  This is useful if you want to simulate something
                like [4maeib[24m [4m-minimum[24m 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 "[4maecp[24m [4m-read-[0m
                [4monly"[24m [4mcommand[24m [4mwould[24m [4mhave[24m [4mbeen[24m [4mmore[24m [4mappropriate.[0m

        [1m-Project [4m[22mname[0m
                This option may be used to select the project of interest.
                When no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                environment variable is consulted.  If that does not exist,
                the user's [4m$HOME/.aegisrc[24m file is examined for a default
                project field (see [4maeuconf[24m(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.

        [1m-Verbose[0m
                This option may be used to cause aegis to produce more output.
                By default aegis only produces output on errors.  When used
                with the [1m-List [22moption this option causes column headings to be
                added.

        [1m-Wait   [22mThis option may be used to require Aegis commands to wait for
                access locks, if they cannot be obtained immediately.
                Defaults to the user's [4mlock_wait_preference[24m if not specified,
                see [4maeuconf[24m(5) for more information.

        [1m-No_Wait[0m
                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 [4mlock_wait_preference[24m if not specified,
                see [4maeuconf[24m(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 [1m-Project [22moption.  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
        [4maegis[24m are long, this means ignoring the extra leading '-'.  The
        "[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.

[1mEXIT STATUS[0m
        The [4maegis[24m command will exit with a status of 1 on any error.  The
        [4maegis[24m command will only exit with a status of 0 if there are no
        errors.

[1mENVIRONMENT VARIABLES[0m
        See [4maegis[24m(1) for a list of environment variables which may affect this
        command.  See [4maepconf[24m(5) for the project configuration file's
        [4mproject_specific[24m field for how to set environment variables for all
        commands executed by Aegis.

[1mCOPYRIGHT[0m
        aegis version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
        the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you
        are welcome to redistribute it under certain conditions; for details
        use the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        Peter Miller   E-Mail:   millerp@canb.auug.org.au
        /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/



aegis -clone(1)                                                aegis -clone(1)



[1mNAME[0m
        aegis clone - make an exact copy of a change

[1mSYNOPSIS[0m
        [1maegis -CLone [22m[ [4moption[24m...  ] [4mchange-number[24m [ change-number ]
        [1maegis -CLone -Help[0m
        [1maegis -CLone -VERSion[0m

[1mDESCRIPTION[0m
        The [4maegis[24m [4m-CLone[24m 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 [4mmust[24m 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 [4mwill[24m [4mnot[24m 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.

   [1mDevelopment Directory Location[0m
        [1mPlease Note: [22mAegis 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 [4mmaximum_filename_length[24m, 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 [4mmaximum_filename_length[24m 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 [4mconfig[24m 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
        [4mdos_filename_required[24m [4m=[24m [4mtrue[24m, and also changing the
        [4mdevelopment_directory_template[24m field.  Heterogeneous development with
        various Windows environments may also require this.

[1mWHITEOUT[0m
        Aegis provides you with what is often called a "view path" which
        indicates to development tools (compilers, build systems, [4metc[24m) 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 [4maerm[24m(1) or [4maemv[24m(1) commands, this means "add
        information to this change which will remove the file from the
        baseline when this change is integrated".  [4mI.e.[24m while the change is in
        the [4mbeing[24m [4mdeveloped[24m 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 [4maerm[24m(1) or [4maemv[24m(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 [4mnot[24m copied/linked
        from the baseline to the integration directory, and is [4mnot[24m 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
        [4mbeing[24m [4mdeveloped[24m state.

   [1mFile Manifests[0m
        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
        [4mawk[24m(1) script processing the Aegis file lists.  For example, you can
        do this with [4mmake[24m(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
        [4mmanifest.make.inc[24m file, all in one pass.

        It is possible to do the same thing with Aegis' report generator (see
        [4maer[24m(1) for more information), but this is more involved than the
        [4mawk[24m(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 [4mproject-file_command[0m
        and [4mchange_file_command[24m fields of the project [4mconfig[24m file (see
        [4maepconf[24m(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 [4maeb[24m(1)
        command.

   [1mOptions and Preferences[0m
        There is a [1m-No-WhiteOut [22moption, which may be used to suppress whiteout
        files when you use the [4maerm[24m(1) and [4maemv[24m(1) commands.  There is a
        corresponding [1m-WhiteOut [22moption, which is usually the default.

        There is a [4mwhiteout_preference[24m field in the user preferences file (see
        [4maeuconf[24m(5) for more information) if you want to set this option more
        permanently.

   [1mWhiteout File Templates[0m
        The [4mwhiteout_template[24m field of the project [4mconfig[24m 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 [4mgcc[24m(1) is being used).

        If it is essential that [4mno[24m whiteout file be produced, say for C source
        files, you could use a whiteout template such as
                whiteout_template =
                [
                     { pattern = [ "*.c" ]; }
                ];
        because an absent [4mbody[24m 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.

   [1mNotification[0m
        The notification commands that would be run by the [4maecp[24m(1), [4maedb[24m(1),
        [4maenf[24m(1), [4maent[24m(1) and [4maerm[24m(1) commands are run, as appropriate.  The
        [4mproject_file_command[24m is also run, if set.  See [4maepconf[24m(5) for more
        information.

[1mCloning and Merging[0m
        When you use [4maeclone[24m(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 [4maem[24m(1) to bring the out-of-date files back up-to-date,
        [4mfmerge[24m(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 [4mfmerge[24m(1) command being more conservative than RCS's
        [4mmerge[24m(1) command.

        The easiest way to deal with this common situation it to run an
                aecpu -unchanged
        command [4mbefore[24m you run the [4maem[24m(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 [4mfubar[24m,B [4mfubar[0m
        if you know that all of the conflicts are logical conflicts.

[1mOPTIONS[0m
        The following options are understood:

        [1m-BRanch [4m[22mnumber[0m
                This option may be used to specify a different branch for the
                origin file, rather than the baseline.  (See also [1m-TRunk[0m
                option.  Please Note: the [1m-BRanch [22moption does not take a
                project name, just the branch number suffix.

        [1m-GrandParent[0m
                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.)

        [1m-Change [4m[22mnumber[0m
                This option may be used to specify a particular change within
                a project.  See [4maegis[24m(1) for a complete description of this
                option.

        [1m-DIRectory [4m[22mpath[0m
                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.

        [1m-Help[0m
                This option may be used to obtain more information about how
                to use the [4maegis[24m program.

        [1m-List[0m
                This option may be used to obtain a list of suitable subjects
                for this command.  The list may be more general than expected.

        [1m-WhiteOut[0m
                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.

        [1m-No_WhiteOut[0m
                This option may be used to request that no "whiteout" file be
                placed in the development directory.

        [1m-Output [4m[22mfilename[0m
                This option may be used to specify a filename which is to be
                written with the automatically determined change number.
                Useful for writing scripts.

        [1m-Project [4m[22mname[0m
                This option may be used to select the project of interest.
                When no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                environment variable is consulted.  If that does not exist,
                the user's [4m$HOME/.aegisrc[24m file is examined for a default
                project field (see [4maeuconf[24m(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.

        [1m-TRunk[0m
                This option may be used to specify the project trunk for the
                origin file, rather than the baseline.  (See also [1m-BRanch[0m
                option, the -trunk option is the same as the "-branch -"
                option.)

        [1m-Wait   [22mThis option may be used to require Aegis commands to wait for
                access locks, if they cannot be obtained immediately.
                Defaults to the user's [4mlock_wait_preference[24m if not specified,
                see [4maeuconf[24m(5) for more information.

        [1m-No_Wait[0m
                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 [4mlock_wait_preference[24m if not specified,
                see [4maeuconf[24m(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 [1m-Project [22moption.  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
        [4maegis[24m are long, this means ignoring the extra leading '-'.  The
        "[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.

[1mERRORS[0m
        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 [4maepattr[24m(5) for more information.)

[1mEXIT STATUS[0m
        The [4maegis[24m command will exit with a status of 1 on any error.  The
        [4maegis[24m command will only exit with a status of 0 if there are no
        errors.

[1mENVIRONMENT VARIABLES[0m
        See [4maegis[24m(1) for a list of environment variables which may affect this
        command.  See [4maepconf[24m(5) for the project configuration file's
        [4mproject_specific[24m field for how to set environment variables for all
        commands executed by Aegis.

[1mSEE ALSO[0m
        [4maenc[24m(1) Create a new change.

        [4maeca[24m(1) modify the attributes of a change

        [4maena[24m(1) add a new administrator to a project

        [4maepa[24m(1) modify the attributes of a project

[1mCOPYRIGHT[0m
        aegis version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
        the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you
        are welcome to redistribute it under certain conditions; for details
        use the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        Peter Miller   E-Mail:   millerp@canb.auug.org.au
        /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/



aecomp(1)                                                            aecomp(1)



[1mNAME[0m
        aecomp - compare two changes

[1mSYNOPSIS[0m
        [1maecomp [4m[22mnumber[24m [ [4mnumber[24m ]

[1mDESCRIPTION[0m
        The [4maecomp[24m script is used to compare two changes, using [4mtkdiff[24m(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 [4mbeing[0m
        [4mdeveloped[24m 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 [4mtkdiff[24m the two versions (ie the files in each change).

        It is useful after you have used [4maeclone[24m(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).

[1mAUTHOR[0m
        Scott Finneran <scottf@lucent.com>



aecomplete(1)                                                    aecomplete(1)



[1mNAME[0m
        aecomplete - command completion

[1mSYNOPSIS[0m
        [1maecomplete [4m[22mcmd-name[24m [4mincomplete-word[24m [4mprevious-word[0m

[1mDESCRIPTION[0m
        The [4maecomplete[24m command is used to perform command completion for
        shells.

        See [4mbash[24m(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.

[1mEXIT STATUS[0m
        The [4maecomplete[24m command will exit with a status of 1 on any error.  The
        [4maecomplete[24m command will only exit with a status of 0 if there are no
        errors.

[1mENVIRONMENT VARIABLES[0m
        See [4maegis[24m(1) for a list of environment variables which may affect this
        command.  See [4maepconf[24m(5) for the project configuration file's
        [4mproject_specific[24m field for how to set environment variables for all
        commands executed by Aegis.

[1mCOPYRIGHT[0m
        aecomplete version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The aecomplete program comes with ABSOLUTELY NO WARRANTY; for details
        use the '[4maecomplete[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software
        and you are welcome to redistribute it under certain conditions; for
        details use the '[4maecomplete[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        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)



[1mNAME[0m
        aegis  copy file - copy a file into a change

[1mSYNOPSIS[0m
        [1maegis -CoPy_file [22m[ [4moption[24m...  ] [4mfilename[24m...
        [1maegis -CoPy_file -INDependent [22m[ [4moption[24m...  ] [4mfilename[24m...
        [1maegis -CoPy_file -List [22m[ [4moption[24m...  ]
        [1maegis -CoPy_file -Help[0m

[1mDESCRIPTION[0m
        The [4maegis[24m [4m-CoPy_file[24m 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 [4mchmod[24m(1) command;
        the reverse to make it not executable.  If any of the file's
        executable bits are set at [4maede[24m(1) time the file is remembered as
        executable and all execute bits (minus the project's umask) will be
        set by subsequent [4maecp[24m(1) commands.

   [1mFile Name Interpretation[0m
        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 [1m-BAse_RElative [22moption 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 [4mrelative_filename_preference[24m in the user configuration file may be
        used to modify this default behavior.  See [4maeuconf[24m(5) for more
        information.

   [1mProcess Side Effects[0m
        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 ([4maegis[24m [4m-List[24m [4mChange_Files[24m [4m-TERse[24m) the
        copied files will appear in the listing.  When the project files are
        listed with an explicit change number ([4maegis[24m [4m-List[24m [4mProject_Files[0m
        [4m-TERse[24m [4m-Change[24m 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.

[1mTHE BASELINE LOCK[0m
        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 [4maeb[24m(1), [4maecp[24m(1) and [4maed[24m(1) commands) take a baseline [4mread[0m
        lock.  This is a non-exclusive lock, so the concurrent development of
        changes is not hindered.

        The command which modifies the baseline, [4maeipass[24m(1), takes a baseline
        [4mwrite[24m lock.  This is an exclusive lock, forcing [4maeipass[24m(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 [4maegis[24m [4m-Integrate_PASS[24m 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.

[1mTEST CORRELATIONS[0m
        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 [4maecp[24m(1) and [4maenf[24m(1) commands are used to associate files with a
        change.  While they do not actively perform the association, these are
        the files used by [4maeipass[24m(1) and [4maet[24m(1) to determine which source
        files are associated with which tests.

   [1mTest Correlation Accuracy[0m
        Assuming that the testing correlations are accurate and that the tests
        are evenly distributed across the function space, there will be a less
        than [4m1/number[24m chance that a relevant test has not been run by the
        "aegis -Test -SUGgest [4mnumber[24m" 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.

   [1mNotification[0m
        The [4mcopy_file_command[24m in the project [4mconfig[24m file is run, if set.  The
        [4mproject_file_command[24m is also run, if set, and if there has been an
        integration recently.  See [4maepconf[24m(5) for more information.

   [1mFile Action Adjustment[0m
        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.

[1mOPTIONS[0m
        The following options are understood:

        [1m-BAse_RElative[0m
                This option may be used to cause relative filenames to be
                considered relative to the base of the source tree.  See
                [4maeuconf[24m(5) for the corresponding user preference.

        [1m-CUrrent_RElative[0m
                This option may be used to cause relative filenames to be
                considered relative to the current directory.  This is usually
                the default.  See [4maeuconf[24m(5) for the corresponding user
                preference.

        [1m-BRanch [4m[22mnumber[0m
                This option may be used to specify a different branch for the
                origin file, rather than the baseline.  (See also [1m-TRunk[0m
                option.  Please Note: the [1m-BRanch [22moption does not take a
                project name, just the branch number suffix.

        [1m-GrandParent[0m
                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.)

        [1m-Change [4m[22mnumber[0m
                This option may be used to specify a particular change within
                a project.  See [4maegis[24m(1) for a complete description of this
                option.

        [1m-DELta [4m[22mnumber[0m
                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
                [4maedn[24m(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".

        [1m-DELta_Date [4m[22mstring[0m
                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.

        [1m-DELta_From_Change [4m[22mnumber[0m
                This option may be used to specify a particular project delta
                from its change number.

        [1m-Help[0m
                This option may be used to obtain more information about how
                to use the [4maegis[24m program.

        [1m-INDependent[0m
                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.

        [1m-Keep[0m
                This option may be used to retain files and/or directories
                usually deleted or replaced by the command.  Defaults to the
                user's [4mdelete_file_preference[24m if not specified, see [4maeuconf[24m(5)
                for more information.

        [1m-No_Keep[0m
                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 [4mdelete_file_preference[24m if not specified, see
                [4maeuconf[24m(5) for more information.

        [1m-List[0m
                This option may be used to obtain a list of suitable subjects
                for this command.  The list may be more general than expected.

        [1m-Not_Logging[0m
                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.

        [1m-Output [4m[22mfilename[0m
                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.  [4mNo[24m [4mlocks[24m are taken
                when this option is used, not even the baseline read lock.

        [1m-OverWriting[0m
                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.

        [1m-Project [4m[22mname[0m
                This option may be used to select the project of interest.
                When no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                environment variable is consulted.  If that does not exist,
                the user's [4m$HOME/.aegisrc[24m file is examined for a default
                project field (see [4maeuconf[24m(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.

        [1m-Read_Only[0m
                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.

        [1m-REScind[0m
                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.

        [1m-TERse[0m
                This option may be used to cause listings to produce the bare
                minimum of information.  It is usually useful for shell
                scripts.

        [1m-TRunk[0m
                This option may be used to specify the project trunk for the
                origin file, rather than the baseline.  (See also [1m-BRanch[0m
                option, the -trunk option is the same as the "-branch -"
                option.)

        [1m-Verbose[0m
                This option may be used to cause aegis to produce more output.
                By default aegis only produces output on errors.  When used
                with the [1m-List [22moption this option causes column headings to be
                added.

        [1m-Wait   [22mThis option may be used to require Aegis commands to wait for
                access locks, if they cannot be obtained immediately.
                Defaults to the user's [4mlock_wait_preference[24m if not specified,
                see [4maeuconf[24m(5) for more information.

        [1m-No_Wait[0m
                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 [4mlock_wait_preference[24m if not specified,
                see [4maeuconf[24m(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 [1m-Project [22moption.  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
        [4maegis[24m are long, this means ignoring the extra leading '-'.  The
        "[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.

[1mRECOMMENDED ALIAS[0m
        The recommended alias for this command is
        csh%    alias aecp 'aegis -cp \!* -v'
        sh$     aecp(){aegis -cp "$@" -v}

[1mERRORS[0m
        It is an error if the change is not in the [4mbeing[24m [4mdeveloped[24m 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 [1m-OverWrite[0m
        option is not specified.

[1mEXIT STATUS[0m
        The [4maegis[24m command will exit with a status of 1 on any error.  The
        [4maegis[24m command will only exit with a status of 0 if there are no
        errors.

[1mENVIRONMENT VARIABLES[0m
        See [4maegis[24m(1) for a list of environment variables which may affect this
        command.  See [4maepconf[24m(5) for the project configuration file's
        [4mproject_specific[24m field for how to set environment variables for all
        commands executed by Aegis.

[1mEXAMPLES[0m
        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.

   [1mCopy Whole Project[0m
        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.

   [1mPrroduce Earlier Project Version[0m
        You you wish to exactly reproduces the sources for an earlier version
        of your project, you need to know the edelta number (use [4mael[24m [4mproj-[0m
        [4mhistory[24m to find it).  Then use this command:
                aecp -delta [4mn[24m .
        where [4mn[24m is the delta number from the project history.  Again, the
        trailing dot is part of the command.  By using the [4m$version[0m
        substitution (see [4maesub[24m(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 [4mn[24m .
        where [4mn[24m is the change number of interest.  Again, the trailing dot is
        part of the command.

   [1mRescind a Change[0m
        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 [4mn[24m -rescind .
        where [4mn[24m 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 [4mn[24m `aegis -l cf -ter -c [4mn[24m`
        where [4mn[24m is the change number of interest.  This only copies the files
        which were in the offending change.

[1mSEE ALSO[0m
        [4maeb[24m(1)  build also takes a baseline read lock (non-exclusive)

        [4maecpu[24m(1)
                reverse action of aecp

        [4maedb[24m(1) begin development of a change

        [4maedn[24m(1) assign a name to a delta

        [4maeipass[24m(1)
                integrate pass takes a baseline write lock (exclusive)

        [4maemv[24m(1) rename a file as part of a change

        [4maenf[24m(1) add a new file to a change

        [4maerm[24m(1) add files to be deleted to a change

        [4maeuconf[24m(5)
                user configuration file format

[1mCOPYRIGHT[0m
        aegis version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
        the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you
        are welcome to redistribute it under certain conditions; for details
        use the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        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)



[1mNAME[0m
        aegis copy file undo - reverse action of aecp

[1mSYNOPSIS[0m
        [1maegis -CoPy_file_Undo [22m[ [4moption[24m...  ] [4mfilename[24m...
        [1maegis -CoPy_file_Undo -List [22m[ [4moption[24m...  ]
        [1maegis -CoPy_file_Undo -Help[0m

[1mDESCRIPTION[0m
        The [4maegis[24m [4m-CoPy_file_Undo[24m 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 [1m-Keep[0m
        option is specified.  The [1m-Keep [22moption should be used with great care,
        as you can confuse tools such as [4mmake[24m(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.

   [1mBranch [4m[22mvs[24m [1mChange[0m
        The [4maecpu[24m(1) command may only be applied to a change.  If you wish to
        perform the same operation on a branch, use the [4maemt[24m(1) command,
        through the agency of a change.

   [1mFile Name Interpretation[0m
        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 [1m-BAse_RElative [22moption 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 [4mrelative_filename_preference[24m in the user configuration file may be
        used to modify this default behavior.  See [4maeuconf[24m(5) for more
        information.

   [1mProcess Side Effects[0m
        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.

   [1mNotification[0m
        The [4mcopy_file_undo_command[24m in the project [4mconfig[24m file is run, if set.
        The [4mproject_file_command[24m is also run, if set, and if there has been an
        integration recently.  See [4maepconf[24m(5) for more information.

[1mOPTIONS[0m
        The following options are understood:

        [1m-BAse_RElative[0m
                This option may be used to cause relative filenames to be
                considered relative to the base of the source tree.  See
                [4maeuconf[24m(5) for the corresponding user preference.

        [1m-CUrrent_RElative[0m
                This option may be used to cause relative filenames to be
                considered relative to the current directory.  This is usually
                the default.  See [4maeuconf[24m(5) for the corresponding user
                preference.

        [1m-Change [4m[22mnumber[0m
                This option may be used to specify a particular change within
                a project.  See [4maegis[24m(1) for a complete description of this
                option.

        [1m-Help[0m
                This option may be used to obtain more information about how
                to use the [4maegis[24m program.

        [1m-Interactive[0m
                Specify that aegis should ask the user for confirmation before
                deleting each file.  Answer the question [4myes[24m to delete the
                file, or [4mno[24m to keep the file.  You can also answer [4mall[24m to
                delete the file and all that follow, or [4mnone[24m to keep the file
                and all that follow.

                Defaults to the user's [4mdelete_file_preference[24m if not
                specified, see [4maeuconf[24m(5) for more information.

                If aegis is running in the background, the question will not
                be asked, and the files will be deleted.

        [1m-Keep[0m
                This option may be used to retain files and/or directories
                usually deleted or replaced by the command.  Defaults to the
                user's [4mdelete_file_preference[24m if not specified, see [4maeuconf[24m(5)
                for more information.

        [1m-No_Keep[0m
                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 [4mdelete_file_preference[24m if not specified, see
                [4maeuconf[24m(5) for more information.

        [1m-List[0m
                This option may be used to obtain a list of suitable subjects
                for this command.  The list may be more general than expected.

        [1m-Project [4m[22mname[0m
                This option may be used to select the project of interest.
                When no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                environment variable is consulted.  If that does not exist,
                the user's [4m$HOME/.aegisrc[24m file is examined for a default
                project field (see [4maeuconf[24m(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.

        [1m-Read_Only[0m
                This option may be used to specify that only insulation files
                are to be uncopied.  If you specify [1m-UNChanged [22mas well, only
                unchanged insulation files will be uncopied.

        [1m-TERse[0m
                This option may be used to cause listings to produce the bare
                minimum of information.  It is usually useful for shell
                scripts.

        [1m-Verify_Symbolic_Links[0m
                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 [4mdevelopment_directory_style[24m 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 [4maeuconf[24m(5).  This option is the default, if
                meaningful for your configuration.  The name is an historical
                accident, hard links and file copies are included.

        [1m-Assume_Symbolic_Links[0m
                This option may be used to request that no update of baseline
                mirror files take place.  This options is useful when you
                [4mdefinitely[24m [4mknow[24m 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 [4maeuconf[24m(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.

        [1m-UNChanged[0m
                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.

        [1m-Verbose[0m
                This option may be used to cause aegis to produce more output.
                By default aegis only produces output on errors.  When used
                with the [1m-List [22moption this option causes column headings to be
                added.

        [1m-Wait   [22mThis option may be used to require Aegis commands to wait for
                access locks, if they cannot be obtained immediately.
                Defaults to the user's [4mlock_wait_preference[24m if not specified,
                see [4maeuconf[24m(5) for more information.

        [1m-No_Wait[0m
                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 [4mlock_wait_preference[24m if not specified,
                see [4maeuconf[24m(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 [1m-Project [22moption.  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
        [4maegis[24m are long, this means ignoring the extra leading '-'.  The
        "[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.

[1mRECOMMENDED ALIAS[0m
        The recommended alias for this command is
        csh%    alias aecpu 'aegis -cpu \!* -v'
        sh$     aecpu(){aegis -cpu "$@" -v}

[1mERRORS[0m
        It is an error if the change is not in the [4mbeing[24m [4mdeveloped[24m state.
        It is an error if the change is not assigned to the current user.

[1mEXIT STATUS[0m
        The [4maegis[24m command will exit with a status of 1 on any error.  The
        [4maegis[24m command will only exit with a status of 0 if there are no
        errors.

[1mENVIRONMENT VARIABLES[0m
        See [4maegis[24m(1) for a list of environment variables which may affect this
        command.  See [4maepconf[24m(5) for the project configuration file's
        [4mproject_specific[24m field for how to set environment variables for all
        commands executed by Aegis.

[1mSEE ALSO[0m
        [4maecp[24m(1) copy files into a change

        [4maemt[24m(1) make branch files transparent

        [4maeuconf[24m(5)
                user configuration file format

[1mCOPYRIGHT[0m
        aegis version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
        the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you
        are welcome to redistribute it under certain conditions; for details
        use the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        Peter Miller   E-Mail:   millerp@canb.auug.org.au
        /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/



aecvsserver(1)                                                  aecvsserver(1)



[1mNAME[0m
        aecvsserver - serve CVS client protocol against Aegis projects

[1mSYNOPSIS[0m
        [1maecvsserver server[0m
        [1maecvsserver pserver[0m
        [1maecvsserver -VERSion[0m

[1mDESCRIPTION[0m
        The [4maecvsserver[24m 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
        [4maegis[24m(1) commands are executed by the server to fulfill the requests.

        [4mThis[24m [4mcode[24m [4mis[24m [4mstill[24m [4mexperimental.[24m  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.

   [1mserver[0m
        To use the server, you will need to set the following environment
        variables:
                CVSROOT=:ext:[4mhostname[24m/aegis
                CVS_RSH=ssh
                CVS_SERVER=aecvsserver

   [1mpserver[0m
        It is also possible to use [4maecvsserver[24m as a cvs pserver, with all the
        usual caveats about how insecure this access method is, because it
        transmits the password [4malmost[24m in the clear.  The root and modules are
        as above.

[1mMODULES[0m
        The CVS concept of modules is mapped onto Aegis concept of projects
        and changes.  The special CVSROOT administrative module is simulated.

   [1mProjects as Modules[0m
        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 [4mcvs[24m [4mexport[24m command, or to
        perform a read-only [4mcvs[24m [4mcheckout[24m 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 [4maecvsserver[24m to create a change
        (via [4maenc[24m(1) and [4maedb[24m(1) commands), then add the necessary files (via
        [4maenf[24m(1) and [4maecp[24m(1) commands), then build (via the [4maeb[24m(1) command),
        then test (via the [4maet[24m(1) command), and finally to end development of
        the change (via the [4maede[24m(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
        [4mfollowed[24m by the commit request or the update request.

   [1mChanges as Modules[0m
        Each Aegis change set also appears to the CVS client as a module; it's
        name is [4mproject[24m.C[4mnumber[24m.  All [4mcvs[24m [4madd[24m commands, [4mcvs[24m [4mremove[24m commands,
        [4mcvs[24m [4mupdate[24m commands and [4mcvs[24m [4mcommit[24m 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 [4mcvs[24m [4mcommit[0m
        command, it will the be necessary to use the [4maede[24m(1) command and the
        rest of the usual Aegis process.

        Once a change is no longer in the [4mbeing[24m [4mdeveloped[24m state, it cannot be
        changed via [4maecvsserver[24m(1) and you will need to create a new Aegis
        change set, and then [4mcvs[24m [4mcheckout[24m a new client-side work area.

        Please note: if you are experimenting with the interface via [4mcvs[24m [4m-d[0m
        [4m:fork:/aegis[24m or similar, the work area you create [1mmust [22mbe outside the
        Aegis change set's development directory.

   [1mCVSROOT[0m
        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 [4maegis[24m(1) commands.

[1mEXIT STATUS[0m
        The [4maecvsserver[24m command will exit with a status of 1 on any error.
        The [4maecvsserver[24m command will only exit with a status of 0 if there are
        no errors.

[1mENVIRONMENT VARIABLES[0m
        See [4maegis[24m(1) for a list of environment variables which may affect this
        command.  See [4maepconf[24m(5) for the project configuration file's
        [4mproject_specific[24m field for how to set environment variables for all
        commands executed by Aegis.

[1mCOPYRIGHT[0m
        aecvsserver version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The aecvsserver program comes with ABSOLUTELY NO WARRANTY; for details
        use the '[4maecvsserver[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software
        and you are welcome to redistribute it under certain conditions; for
        details use the '[4maecvsserver[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        Peter Miller   E-Mail:   millerp@canb.auug.org.au
        /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/



aegis -DIFFerence(1)                                      aegis -DIFFerence(1)



[1mNAME[0m
        aegis difference - find differences between a change and the baseline

[1mSYNOPSIS[0m
        [1maegis -DIFFerence [22m[ [4mfilename[24m...  ] [ [4moption[24m...  ]
        [1maegis -DIFFerence -List [22m[ [4moption[24m...  ]
        [1maegis -DIFFerence -Help[0m

[1mDESCRIPTION[0m
        The [4maegis[24m [4m-DIFFerence[24m 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
        [4mdiff_command[24m field of the project configuration file (see [4maepconf[24m(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
        [4maediff[24m(1) command are unaffected by this setting.

        Please note that the [4mhistory_content_limitation[24m field of the project
        configuration file does [1mnot [22mapply to the [4mdiff_command[24m 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.

   [1mFile Name Interpretation[0m
        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 [1m-BAse_RElative [22moption 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 [4mrelative_filename_preference[24m in the user configuration file may be
        used to modify this default behavior.  See [4maeuconf[24m(5) for more
        information.

   [1mNotification[0m
        The actions of the command are controlled by the [4mdiff_command[24m and
        [4mmerge_command[24m fields of the project [4mconfig[24m file.  See [4maepconf[24m(5) for
        more information.

[1mTHE BASELINE LOCK[0m
        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 [4maeb[24m(1), [4maecp[24m(1) and [4maed[24m(1) commands) take a baseline [4mread[0m
        lock.  This is a non-exclusive lock, so the concurrent development of
        changes is not hindered.

        The command which modifies the baseline, [4maeipass[24m(1), takes a baseline
        [4mwrite[24m lock.  This is an exclusive lock, forcing [4maeipass[24m(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 [4maegis[24m [4m-Integrate_PASS[24m 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.

   [1mFile Action Adjustment[0m
        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.

[1mCONFLICT RESOLUTION[0m
        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 [4mmerge_command[24m field of the
        project configuration file (see [4maepconf[24m(5) for more information).

        Please note that the [4mhistory_content_limitation[24m field of the project
        configuration file does [1mnot [22mapply to the [4mmerge_command[24m 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 [4mmv[24m(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 [4m,D[24m files before the next
        difference.  See the [1m-No_Merge [22mand [1m-Only_Merge [22moptions, below, for
        exact control of when merging is performed.

[1mCloning and Merging[0m
        When you use [4maeclone[24m(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 [4maem[24m(1) to bring the out-of-date files back up-to-date,
        [4mfmerge[24m(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 [4mfmerge[24m(1) command being more conservative than RCS's
        [4mmerge[24m(1) command.

        The easiest way to deal with this common situation it to run an
                aecpu -unchanged
        command [4mbefore[24m you run the [4maem[24m(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 [4mfubar[24m,B [4mfubar[0m
        if you know that all of the conflicts are logical conflicts.

[1mINTEGRATION[0m
        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.

[1mOPTIONS[0m
        The following options are understood:

        [1m-ANticipate [4m[22mchange-number[0m
                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 [4m'being[24m [4mreviewed'[24m or [4m'awaiting[0m
                [4mintegration'[24m or [4m'being[24m [4mintegrated'[24m 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.

        [1m-BRanch [4m[22mnumber[0m
                This option may be used to specify a different branch for the
                origin file, rather than the baseline.  (See also [1m-TRunk[0m
                option.  Please Note: the [1m-BRanch [22moption does not take a
                project name, just the branch number suffix.

        [1m-GrandParent[0m
                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.)

        [1m-Change [4m[22mnumber[0m
                This option may be used to specify a particular change within
                a project.  See [4maegis[24m(1) for a complete description of this
                option.

        [1m-Help[0m
                This option may be used to obtain more information about how
                to use the [4maegis[24m program.

        [1m-List[0m
                This option may be used to obtain a list of suitable subjects
                for this command.  The list may be more general than expected.

        [1m-Not_Logging[0m
                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.

        [1m-TRunk[0m
                This option may be used to specify the project trunk for the
                origin file, rather than the baseline.  (See also [1m-BRanch[0m
                option, the -trunk option is the same as the "-branch -"
                option.)

        [1m-No_Merge[0m
                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 [4mdiff_preference[24m field of the
                [4maeuconf[24m(5) file.

        [1m-Only_Merge[0m
                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
                [4mdiff_preference[24m field of the [4maeuconf[24m(5) file.

        [1m-Automatic_Merge[0m
                This option is used to perform [4m-Only_Merge[24m if any source files
                have out-of-date versions, otherwise [4m-No_Merge[24m [4mis[24m [4mperformed.[0m
                Only merges or differences will be performed, it will never
                use a mixture.  If not set, the default is to use the
                [4mdiff_preference[24m field of the [4maeuconf[24m(5) file.

        [1m-Project [4m[22mname[0m
                This option may be used to select the project of interest.
                When no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                environment variable is consulted.  If that does not exist,
                the user's [4m$HOME/.aegisrc[24m file is examined for a default
                project field (see [4maeuconf[24m(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.

        [1m-TERse[0m
                This option may be used to cause listings to produce the bare
                minimum of information.  It is usually useful for shell
                scripts.

        [1m-Verbose[0m
                This option may be used to cause aegis to produce more output.
                By default aegis only produces output on errors.  When used
                with the [1m-List [22moption this option causes column headings to be
                added.

        [1m-Wait   [22mThis option may be used to require Aegis commands to wait for
                access locks, if they cannot be obtained immediately.
                Defaults to the user's [4mlock_wait_preference[24m if not specified,
                see [4maeuconf[24m(5) for more information.

        [1m-No_Wait[0m
                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 [4mlock_wait_preference[24m if not specified,
                see [4maeuconf[24m(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 [1m-Project [22moption.  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
        [4maegis[24m are long, this means ignoring the extra leading '-'.  The
        "[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.

[1mRECOMMENDED ALIAS[0m
        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}

[1mERRORS[0m
        It is an error if the change is not in the [4mbeing[24m [4mdeveloped[24m or [4mbeing[0m
        [4mintegrated[24m states.

[1mEXIT STATUS[0m
        The [4maegis[24m command will exit with a status of 1 on any error.  The
        [4maegis[24m command will only exit with a status of 0 if there are no
        errors.

[1mENVIRONMENT VARIABLES[0m
        See [4maegis[24m(1) for a list of environment variables which may affect this
        command.  See [4maepconf[24m(5) for the project configuration file's
        [4mproject_specific[24m field for how to set environment variables for all
        commands executed by Aegis.

[1mSEE ALSO[0m
        [4maeb[24m(1)  build also takes a baseline read lock (non-exclusive)

        [4maecp[24m(1) copy file also takes a baseline read lock (non-exclusive)

        [4maedb[24m(1) begin development of a change

        [4maeipass[24m(1)
                integrate pass takes a baseline write lock (exclusive)

        [4maepconf[24m(5)
                project configuration file format

        [4maeuconf[24m(5)
                user configuration file format

[1mCOPYRIGHT[0m
        aegis version 4.24.3.D001
        Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter
        Miller

        The aegis program comes with ABSOLUTELY NO WARRANTY; for details use
        the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you
        are welcome to redistribute it under certain conditions; for details
        use the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.

[1mAUTHOR[0m
        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)



[1mNAME[0m
        aegis develop begin - begin development of a change

[1mSYNOPSIS[0m
        [1maegis -Develop_Begin [4m[22mchange-number[24m [ [4moption[24m...  ]
        [1maegis -Develop_Begin -List [22m[ [4moption[24m...  ]
        [1maegis -Develop_Begin -Help[0m

[1mDESCRIPTION[0m
        The [4maegis[24m [4m-Develop_Begin[24m 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 [4maeuconf[24m(5), or if not set below the
        directory specified in the default_development_directory field of
        [4maepattr[24m(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 [4maecd[24m(1) command can take you there at any time.

        Successful execution of this command will move the specified change
        from the [4mawaiting[24m [4mdevelopment[24m state to the [4mbeing[24m [4mdeveloped[24m state.
[40m[0m
                                  awaiting
                                 development
                                      [40m|[0m
                           [40mdevelop    |develop[0m
                           [40mbegin      |begin[0m
                           [40mundo[0m
                                    [40mbeing[0m
                                  [40mdeveloped[0m



   [1m[40mNotification[0m
        [40mThe [4mdevelop_begin_command[24m in the project configuration file (see[0m
        [4m[40maepconf[24m(5) for more information) will be run, if specified.  This is[0m
        [40mrun after the aegis locks are released, so additional aegis commands[0m
        [40mmay be run from here, if used with care.  The symbolic links (see[0m
        [40mbelow) have [4mnot[24m yet been created.[0m

   [1m[40mDevelopment Directory Location[0m
        [1m[40mPlease Note: [22mAegis also consults the underlying file system, to[0m
        [40mdetermine its notion of maximum file size.  Where the file system's[0m
        [40mmaximum file size is less than [4mmaximum_filename_length[24m, the filesystem[0m
        [40mwins.  This can happen, for example, when you are using the Linux[0m
        [40mUMSDOS file system, or when you have an NFS mounted an ancient V7[0m
        [40mfilesystem.  Setting [4mmaximum_filename_length[24m to 255 in these cases[0m
        [40mdoes not alter the fact that the underlying file systems limits are[0m
        [40mfar smaller (12 and 14, respectively).[0m

        [40mIf your development directories (or your whole project) is on[0m
        [40mfilesystems with filename limitations, or a portion of the[0m
        [40mheterogeneous builds take place in such an environment, it helps to[0m
        [40mtell Aegis what they are (using the project [4mconfig[24m file's fields) so[0m
        [40mthat you don't run into the situation where the project builds on the[0m
        [40mmore permissive environments, but fails with mysterious errors in the[0m
        [40mmore limited environments.[0m

        [40mIf your development directories are routinely on a Linux UMSDOS[0m
        [40mfilesystem, you would probably be better off setting[0m
        [4m[40mdos_filename_required[24m [4m=[24m [4mtrue[24m, and also changing the[0m
        [4m[40mdevelopment_directory_template[24m field.  Heterogeneous development with[0m
        [40mvarious Windows environments may also require this.[0m

[1m[40mADMINISTRATOR OVERRIDE[0m
        [40mIt is possible for project administrators to use the [1m-User [22moption to[0m
        [40mforce a developer to start developing a change.  Some sites prefer to[0m
        [40mwork this way.  Note that developers still have the ability to use the[0m
        [4m[40maedbu[24m(1) command.[0m

        [40mWarning: capricious use of this command will rapidly alienate[0m
        [40mdevelopers.  The defaulting rules, particularly for the change number,[0m
        [40mdepend on aegis and the developer agreeing on what the developer is[0m
        [40mcurrently working on.[0m

        [40mThe [4mforced_develop_begin_notify_command[24m project attribute (see[0m
        [4m[40maepattr[24m(5) for more information) will be run when an administrator[0m
        [40muses the [1m-User [22moption, in an attempt to minimize the surprises for[0m
        [40mdevelopers.  A suitable command is[0m
                [40mforced_develop_begin_notify_command =[0m
                    [40m"$datadir/db_forced.sh $p $c $developer";[0m
        [40mThis command will send e-mail to the developer, informing her that the[0m
        [40mchange has been assigned to her.[0m

[1m[40mSYMBOLIC LINKS[0m
        [40mMany dependency maintenance tools, and indeed some compilers, have[0m
        [40mlittle or no support for include file search paths, and thus for the[0m
        [40mconcept of the two-level directory hierarchy employed by Aegis.  (It[0m
        [40mbecomes multi-level when Aegis' branching functionality is used.)  To[0m
        [40mallow these tools to be used, Aegis provides the ability to maintain a[0m
        [40mset of symbolic links between the development directory of a change[0m
        [40mand the baseline of a project, so it appears to these tools that all[0m
        [40mof the project's files are present in the development directory.[0m

   [1m[40mProject Configuration[0m
        [40mThe [4mdevelopment_directory_style[24m field of the project configuration[0m
        [40mfile controls the appearance of the development directory.  See[0m
        [4m[40maepconf[24m(5) for more information.[0m

        [40mBy using a setting such as[0m
                [40mdevelopment_directory_style =[0m
                [40m{[0m
                    [40msource_file_symlink = true;[0m
                    [40mduring_build_only = true;[0m
                [40m};[0m
        [40mthe user never sees the symbolic links, because they are added purely[0m
        [40mfor the benefit of the dependency maintenance tool during the[0m
        [40mexecution of the [4maeb[24m(1) command.[0m

        [40mBy using a setting such as[0m
                [40mdevelopment_directory_style =[0m
                [40m{[0m
                    [40msource_file_symlink = true;[0m
                [40m};[0m
        [40m(the other will default to false) the symbolic links will be created[0m
        [40mat develop begin time (see [4maedb[24m(1) for more information) and also[0m
        [40mmaintained by each [4maeb[24m(1) invocation.  Note that the symbolic links[0m
        [40mare only maintained at these times, so project integrations during the[0m
        [40mcourse of editing change sourec files may leave the symbolic links in[0m
        [40man inconsistent state until the next build.[0m

        [40mWhen files are copied from the baseline into a change, using the[0m
        [4m[40maecp[24m(1) command, the symbolic link pointing into the baseline, if any,[0m
        [40mwill be removed before the file is copied.[0m

        [1m[40mNote: [22mUsing this functionality in either form has implications for how[0m
        [40mthe rules file of the dependency maintenance tool is written.  Rules[0m
        [40mmust [4mremove[24m their targets before creating them (usually with an [4mrm[24m [4m-f[0m
        [40mcommand) if you use any of the link sub-fields (both hard links and[0m
        [40msymbolic links).  This is to avoid attempting to write the result on[0m
        [40mthe symbolic link, which will point at a read-only file in the project[0m
        [40mbaseline.  This is similar to the same requirement for using the[0m
        [4m[40mlink_integration_directory[24m field of the project configuration file.[0m

   [1m[40mUser Configuration[0m
        [40mThere is a [4msymbolic_link_preference[24m field in the user configuration[0m
        [40mfile (see [4maeuconf[24m(5) for more information).  This controls whether[0m
        [4m[40maeb[24m(1) will verify the symbolic links before the build (default) or[0m
        [40mwhether it will assume they are up-to-date.  (This field is only[0m
        [40mrelevant if [4mdevelopment_directory__style.source_file_symlink[24m is true.)[0m

        [40mFor medium-to-large projects, verifying the symbolic links can take as[0m
        [40mlong as the build itself.  Assuming the symbolic links are up-to-date[0m
        [40mcan be a large time-saving for these projects.  It may be advisable to[0m
        [40mreview your choice of DMT in such a situation.[0m

        [40mThe [4maedb[24m(1) command [1mdoes not [22mconsult this preference.  Thus, in most[0m
        [40msituations, the symbolic links will be up-to-date when the build is[0m
        [40mperformed.  The only Aegis function which may result in the symbolic[0m
        [40mlinks becoming out-of-date is the integration of another change, as[0m
        [40mthis may alter the presence or absence of files in the baseline.  In[0m
        [40mthis situation, the default [4maeb[24m(1) action is to ignore the user[0m
        [40mpreference and the verify symbolic links.[0m

        [40mThere are two command line options which modify [4maeb[24m(1) behavior[0m
        [40mfurther: the [1m-Verify-Symbolic-Links [22moption says to verify the symbolic[0m
        [40mlinks; and the [1m-Assume-Symbolic-Links [22moption says to assume the[0m
        [40msymbolic links are up-to-date.  In each case the option over-rides the[0m
        [40mdefault and the user preference.[0m

        [40mIt is possible to obtain behaviour similar to Tom Lord'a Arch by using[0m
        [40ma setting such as:[0m
                [40mdevelopment_directory_style =[0m
                [40m{[0m
                    [40msource_file_link = true;[0m
                    [40msource_file_symlink = true;[0m
                [40m};[0m

        [40mIt is possible to obtain behaviour similar to CVS by using a setting[0m
        [40msuch as:[0m
                [40mdevelopment_directory_style =[0m
                [40m{[0m
                    [40msource_file_copy = true;[0m
                [40m};[0m
        [40mThere are many more possible configurations of the [4mdevelopment_-[0m
        [4m[40mdirectory_style[24m, usually with helpful build side-effects.  See[0m
        [4m[40maepconf[24m(1) and the [4mDepenedency[24m [4mMaintenance[24m [4mTool[24m chapter of the User[0m
        [40mGuide for more information.[0m

        [40mThe symbolic link command line options and preferences apply equally[0m
        [40mto hard links and file copies (the names have historical origins).[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-DIRectory [4m[22mpath[0m
                [40mThis option may be used to specify which directory is to be[0m
                [40mused.  It is an error if the current user does not have[0m
                [40mappropriate permissions to create the directory path given.[0m
                [40mThis must be an absolute path.[0m

                [40mCaution: If you are using an automounter do not use `pwd` to[0m
                [40mmake an absolute path, it usually gives the wrong answer.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-REAson [4m[22mtext[0m
                [40mThis option may be used to attach a comment to the change[0m
                [40mhistory generated by this command.  You will need to use[0m
                [40mquotes to insulate the spaces from the shell.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-User [4m[22mname[0m
                [40mThis option is used to specify the user who is to develop the[0m
                [40mchange.  This option may only be used by a project[0m
                [40madministrator.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aedb 'aegis -db \!* -v'[0m
        [40msh$     aedb(){aegis -db "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change does not exist.[0m
        [40mIt is an error if the change is not in the [4mawaiting[24m [4mdevelopment[24m state.[0m
        [40mIt is an error if the current user is not a developer of the specified[0m
        [40mproject.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maeb[24m(1)  build a change[0m

        [4m[40maecd[24m(1) change directory[0m

        [4m[40maecp[24m(1) copy files into a change[0m

        [4m[40maed[24m(1)  find differences between a change and the baseline[0m

        [4m[40maedbu[24m(1)[0m
                [40mundo the effects of aedb[0m

        [4m[40maede[24m(1) complete development of a change[0m

        [4m[40maemv[24m(1) rename a file as part of a change[0m

        [4m[40maenc[24m(1) add a new change to a project[0m

        [4m[40maend[24m(1) add a new developer to a project[0m

        [4m[40maenf[24m(1) add new files to a change[0m

        [4m[40maent[24m(1) add a new test to a change[0m

        [4m[40maepa[24m(1) modify the attributes of a project[0m

        [4m[40maerm[24m(1) add files to be deleted to a change[0m

        [4m[40maet[24m(1)  run tests[0m

        [4m[40maepattr[24m(5)[0m
                [40mproject attributes file format[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Develop_Begin_Undo(1)                      aegis -Develop_Begin_Undo(1)



[40m[1mNAME[0m
        [40maegis  develop begin undo - undo the effects of aedb[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Develop_Begin_Undo [4m[22mchange-number[24m [ [4moption[24m...  ][0m
        [1m[40maegis -Develop_Begin_Undo -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Develop_Begin_Undo -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Develop_Begin_Undo[24m command is used to reverse the effects[0m
        [40mof the 'aegis -Develop_Begin' command.  The development directory is[0m
        [40mdiscarded, even if the change has files associated with it, and even[0m
        [40mif the development directory is not empty; all files in the[0m
        [40mdevelopment directory will be lost.  The change is returned to the[0m
        [4m[40mawaiting[24m [4mdevelopment[24m state.[0m
[40m[0m
                                  [40mawaiting[0m
                                 [40mdevelopment[0m
                                      [40m|[0m
                           [40mdevelop    |develop[0m
                           [40mbegin      |begin[0m
                           [40mundo[0m
                                    [40mbeing[0m
                                  [40mdeveloped[0m



   [1m[40mNotification[0m
        [40mThe [4mdevelop_begin_undo_command[24m field of the project [4mconfig[24m file is[0m
        [40mrun, if set.  See [4maepconf[24m(5) for more information.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-Interactive[0m
                [40mSpecify that aegis should ask the user for confirmation before[0m
                [40mdeleting each file.  Answer the question [4myes[24m to delete the[0m
                [40mfile, or [4mno[24m to keep the file.  You can also answer [4mall[24m to[0m
                [40mdelete the file and all that follow, or [4mnone[24m to keep the file[0m
                [40mand all that follow.[0m

                [40mDefaults to the user's [4mdelete_file_preference[24m if not[0m
                [40mspecified, see [4maeuconf[24m(5) for more information.[0m

                [40mIf aegis is running in the background, the question will not[0m
                [40mbe asked, and the files will be deleted.[0m

        [1m[40m-Keep[0m
                [40mThis option may be used to retain files and/or directories[0m
                [40musually deleted or replaced by the command.  Defaults to the[0m
                [40muser's [4mdelete_file_preference[24m if not specified, see [4maeuconf[24m(5)[0m
                [40mfor more information.[0m

        [1m[40m-No_Keep[0m
                [40mThis option may be used to ensure that the files and/or[0m
                [40mdirectories are deleted or replaced by the command.  Defaults[0m
                [40mto the user's [4mdelete_file_preference[24m if not specified, see[0m
                [4m[40maeuconf[24m(5) for more information.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-New-Change-Undo[0m
                [40mBy using this option it is possible to end developemnt of the[0m
                [40mchange, and remove the change, all in the one command.  The[0m
                [40mexecuting user must have both created the change and be the[0m
                [40mdevloper of the change, or must be a project administrator.[0m
                [40m(Order is important here, this option mast appear on the[0m
                [40mcommand line [4mafter[24m the [1m-Develop-Begin-Undo [22moption.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-REAson [4m[22mtext[0m
                [40mThis option may be used to attach a comment to the change[0m
                [40mhistory generated by this command.  You will need to use[0m
                [40mquotes to insulate the spaces from the shell.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-User [4m[22mname[0m
                [40mIgnored for backwards compatibility.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aedbu 'aegis -dbu \!* -v'[0m
        [40msh$     aedbu(){aegis -dbu "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is no assigned to the current user.[0m
        [40mIt is an error if the change is not in the [4mbeing[24m [4mdeveloped[24m state.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maedb[24m(1) begin development of a change[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



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



[40m[1mNAME[0m
        [40maede-policy - check change set is ready for aede[0m

[1m[40mSYNOPSIS[0m
        [1m[40maede-policy [22m[ [4moption[24m...  ][ [4mpolicy[24m...  ][0m
        [1m[40maede-policy -Help[0m
        [1m[40maede-policy -VERSion[0m
        [1m[40maede-policy -List[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maede-policy[24m command is used to verify that a change set is ready[0m
        [40mto end development.  This is intended to be used by the [4mdevelop_end_-[0m
        [4m[40mpolicy_command[24m field of the project configuration file.[0m
                [40mdevelop_end_policy_command =[0m
                    [40m"aede-policy -p $project -c $change all";[0m
        [40mIf any of the pilies should fail, the [4maede-policy[24m command will fail[0m
        [40mwith an exit status of 1.  This, in turn, will cause the [4maede[24m(1)[0m
        [40mcommand to leave the change in the [4mbeing[24m [4mdeveloped[24m state.[0m

        [40mNote that the [4maede[24m(1) command sets the appropriate environment[0m
        [40mvariables, so the [1m-Project [22mand [1m-Change [22moptions are rarely necessary.[0m

        [40mIf no policies appear on the command line, the [4maede-policy[24m project[0m
        [40mspecific attribute will be checked.  If it exists, it contains a list[0m
        [40mof space separated policy names.[0m

   [1m[40mPOLICIES[0m
        [40mThere are a range of policies that can be selected.[0m

        [40mall     Check all of the [4mcopyright[24m, [4mcrlf[24m, [4mdescription[24m and [4mprintable[0m
                [40mpolicies.[0m

        [40mcopyright[0m
                [40mThis policy checks that each file in the change set contains a[0m
                [40mcopyright notice of the form[0m
                        [40mCopyright (C) [1myear [4m[22msomething[0m
                [40mwhere [1myear [22mis the current year (you can have a range of years,[0m
                [40mtoo).  Binary files are ignored.  Change sets marked with a[0m
                [4m[40mforeign-copyright=true[24m attribute are ignored, as are files[0m
                [40msimilarly marked.  The [4msomething[24m part is either the project[0m
                [40mspecific [4mcopyright-owner[24m attribute, or the executing users[0m
                [40mfull name.[0m

        [40mcrlf    This policy cheks that all files are using UNIX line[0m
                [40mtermination (NL), not DOS line termination (CRLF).  Binary[0m
                [40mfiles are ignored.[0m

        [40mdescription[0m
                [40mThis policy checks that the change set [4mbrief_description[24m and[0m
                [4m[40mdescription[24m attributes have been updated to something other[0m
                [40mthan the defaults.[0m

        [40mfsf-address[0m
                [40mThis policy checks that the FSF address, if present in source[0m
                [40mfiles, is up-to-date.  This is useful for Free Software[0m
                [40mprojects.[0m

        [40mgpl-version[0m

        [40mgpl-version=[4mnn[0m
                [40mThis policy checks files that cite the GNU GPL in their file[0m
                [40mheaders, to be sure they contain the correct version of the[0m
                [40mGNU GPL.  Defaults to version 3 if no version number[0m
                [40mspecified.[0m

        [40mline-length[0m

        [40mline-length=[4mnn[0m
                [40mThis policy checks that files have this maximum line length.[0m
                [40mDefaults to 80 if no width is specified.  Can be overridden[0m
                [40mper file using the [4maede-policy-line-length[24m file attribute.[0m

        [40mmerge-fhist[0m
                [40mThis policy requires that there be no [4mfmerge[24m(1) conflict lines[0m
                [40mpresent in any source files.  The name comes from the name of[0m
                [40mthe package containing this tool: [4mfhist[24m.[0m

        [40mmerge-rcs[0m
                [40mThis policy requires that there be no [4mmerge[24m(1) conflict lines[0m
                [40mpresent in any source files.  The name comes from the name of[0m
                [40mthe package containing this tool: [4mrcs[24m.[0m

        [40mno-tabs[0m
                [40mThis policy checks that files have no tabs characters in them.[0m
                [40mThis is useful when a team of developers all use different[0m
                [40meditors and differnt tab stops.  By only using spaces, the[0m
                [40mcode is presented to all developers the same way.[0m

                [40mThis check is not applied to change sets with a Iforeign-[0m
                [40mcopyright=true attribute, because you have little control over[0m
                [40mthem (change the tabs in a later change set, if at all).[0m

                [40mThis check is not applied to files which are called Makefile[0m
                [40mor similar, and it is not applied to files carrying a [4maede-[0m
                [4m[40mpolicy-tabs-allowed=true[24m attribute.[0m

        [40mprintable[0m
                [40mThis policy checks that each file in the change set contains[0m
                [40monly printable text characters and white space.  The [4mcontent-[0m
                [4m[40mtype[24m file attribute is taken into account; if there is no[0m
                [4m[40mcontent-type[24m file attribute, or there is no charset specified[0m
                [40mby the [4mcontent-type[24m file attribute, plain 7-bit ASCII text is[0m
                [40massumed.[0m

        [40mtext    This policy checks that each file in the change set contains[0m
                [40monly text, although international character sets are[0m
                [40macceptable.  This is basically a test for NUL characters,[0m
                [40mbecause everything else could be part of a valid character[0m
                [40mencoding of some international character set.[0m

        [40mwhite-space[0m
                [40mThis policy checks that there is no white space on the ends of[0m
                [40mlines, that there are no blank lines at the ends of files.[0m

        [40mIf no policy is specified, only the [4mdescription[24m policy will be[0m
        [40mchecked.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maede-policy[24m program.[0m

        [1m[40m-List   [22mList all of the available validations.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maede-policy[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maede-policy[24m command will exit with a status of 1 on any error.[0m
        [40mThe [4maede-policy[24m command will only exit with a status of 0 if there are[0m
        [40mno errors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maede[24m(1) end development of a change[0m

        [4m[40maepconf[24m(5)[0m
                [40mproject configuration file[0m

[1m[40mCOPYRIGHT[0m
        [40maede-policy version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aede-policy program comes with ABSOLUTELY NO WARRANTY; for details[0m
        [40muse the '[4maede-policy[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software[0m
        [40mand you are welcome to redistribute it under certain conditions; for[0m
        [40mdetails use the '[4maede-policy[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Develop_End(1)                                    aegis -Develop_End(1)



[40m[1mNAME[0m
        [40maegis develop end - complete development of a change[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Develop_End [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Develop_End -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Develop_End -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Develop_End[24m command is used to notify aegis of the[0m
        [40mcompletion of the development of a change.[0m

        [40mThis command checks that you have successfully completed an 'aegis[0m
        [40m-Build' command since any change source file was edited.  See [4maeb[24m(1)[0m
        [40mfor more information.[0m

        [40mThis command checks that you have successfully completed an 'aegis[0m
        [40m-DIFFerence' command since any change source file was edited.  See[0m
        [4m[40maed[24m(1) for more information.[0m

        [40mThis command checks that you have successfully completed an 'aegis[0m
        [40m-Test' command since the last successful build, unless the change has[0m
        [40ma [4mtest_exempt[24m attribute, or the build command is "exit 0".  This[0m
        [40mcommand checks that you have successfully completed an 'aegis -Test[0m
        [40m-BaseLine' command, unless the change has a [4mtest_baseline_exempt[0m
        [40mattribute.  This command checks that you have successfully completed[0m
        [40man 'aegis -Test -REGression' command, unless the change has a[0m
        [4m[40mtest_regression_exempt[24m attribute.  See [4maet[24m(1) and [4maecattr[24m(5) for more[0m
        [40minformation.[0m

        [40mIf the change includes the project configuration file, this command[0m
        [40mchecks project file names, to make sure they conform to the[0m
        [4m[40mmaximum_filename_length[24m and [4mposix_filename_charset[24m field settings.[0m
        [40mSee [4maepconf[24m(5) for more information.[0m

        [40mSuccessful execution of the command advances the change from the [4mbeing[0m
        [4m[40mdeveloped[24m state to the [4mbeing[24m [4mreviewed[24m state, by default.  The[0m
        [4m[40mdevelop_end_action[24m project attribute controls which of the following 3[0m
        [40mpaths are taken.[0m
[40m[0m
           [4m[40mdevelop_end_actdieovne:lop_end_actidoenv:elop_end_action:[0m
          [4m[40mgoto_awaiting_regvoiteow_being_regvoiteow_eadwaiting_integration[0m

                 [40mbeing          being          being[0m
               [40mdeveloped      developed      developed[0m
                    [40m|              |              |[0m
                    [40m|develop       |              |[0m
                    [40m|end           |              |[0m
                                   [40m|              |[0m
                [40mawaiting           |develop       |[0m
                 [40mreview            |end           |[0m
                    [40m|              |              |[0m
                    [40m|review        |              |develop[0m
                    [40m|begin         |              |end[0m
                                                  [40m|[0m
                 [40mbeing          being             |[0m
                [40mreviewed       reviewed           |[0m
                    [40m|              |              |[0m
                    [40m|review        |review        |[0m
                    [40m|pass          |pass          |[0m

                [40mawaiting       awaiting       awaiting[0m
               [40mintegration   integration    integration[0m


                        [4m[40m(This[24m [4mis[24m [4mthe[24m [4mdefault.)[0m


        [1m[40mPlease Note: [22mthe third alternative, skipping reviews altogether,[0m
        [40mshould only be used for single person projects.  All self-respecting[0m
        [40mcommercial enterprise will avoid this alternative.[0m

        [40mBecause branches may extend for many months or even years, it is[0m
        [40mcommon for the user who initiated the branch to be no longer with the[0m
        [40mproject, or even the company.  For this reason, project administrators[0m
        [40mmay end the development of branches.  For normal changes in this[0m
        [40msituation, use the [4maechown[24m(1) command.[0m

        [40mIf the project configuration file has specified the presence of[0m
        [40mSigned-off-by: lines, a suitable line containing the current user's[0m
        [40memail address will be appended to the change description.[0m

        [40mThe change is no longer considered assigned to the developer.[0m

   [1m[40mBranches[0m
        [40mIf you get an error message telling you that you can't end a branch[0m
        [40mbecause a file needs to be merged, see the Branching chapter of the[0m
        [40mAegis User Guide for more information.[0m

        [40mWhile changes and branches are almost identical in the ways you[0m
        [40mmanipulate them within Aegis, actual file changes must always be done[0m
        [40min a change.  Thus, it is necessary to create a new change on the[0m
        [40mbranch and do a cross-branch grandparent merge before you will be able[0m
        [40mto develop-end a branch which is giving you this error.[0m

   [1m[40mNotification[0m
        [40mOn successful completion of the command, the [4mdevelop_end_notify_-[0m
        [4m[40mcommand[24m field of the project attributes file is run, if set.  See[0m
        [4m[40maepa[24m(1) and [4maepattr[24m(5) for more information.[0m

        [40mIf your project has configured the [4mdevelop_end_action[24m in the project[0m
        [40mconfifuration file to [4mgoto_awaiting_integration[24m then the [4mreview_pass_-[0m
        [4m[40mnotify_command[24m in the project attributes file is run instead, if set.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-REAson [4m[22mtext[0m
                [40mThis option may be used to attach a comment to the change[0m
                [40mhistory generated by this command.  You will need to use[0m
                [40mquotes to insulate the spaces from the shell.[0m

        [1m[40m-Signed_Off_By[0m
                [40mThis option may be used to have a Signed-off-by: line appended[0m
                [40mto the change set description.[0m

        [1m[40m-No_Signed_Off_By[0m
                [40mThis option may be used to prevent a Signed-off-by: line from[0m
                [40mbeing appended to the change set description.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aede 'aegis -de \!* -v'[0m
        [40msh$     aede(){aegis -de "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not assigned to the current user.[0m
        [40mIt is an error if The change is not in the [4mbeing[24m [4mdeveloped[24m state.[0m
        [40mIt is an error if there has been no successful [4m'aegis[24m [4m-Build'[24m command[0m
        [40msince a change file was last edited.[0m
        [40mIt is an error if there has been no successful [4m'aegis[24m [4m-DIFFerence'[0m
        [40mcommand since a change file was last edited.[0m
        [40mIt is an error if there has been no successful [4m'aegis[24m [4m-Test'[24m command[0m
        [40msince a change file was last edited.[0m
        [40mIt is an error if there has been no successful [4m'aegis[24m [4m-Test[24m [4m-BaseLine'[0m
        [40mcommand since a change file was last edited.[0m

        [40mIt is an error if an read-only file is still copied into the change.[0m
        [40mRead-only files are to insulate a change from the baseline during[0m
        [40mdevelopment; they must be removed before development may end.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maeb[24m(1)  build a change[0m

        [4m[40maeca[24m(1) list or modify attributes of a change[0m

        [4m[40maed[24m(1)  difference a change[0m

        [4m[40maedb[24m(1) begin development of a change[0m

        [4m[40maede-policy[24m(1)[0m
                [40mvalidate change set is ready to end[0m

        [4m[40maedeu[24m(1)[0m
                [40mrecall a change for further development[0m

        [4m[40maerfail[24m(1)[0m
                [40mfail a change review[0m

        [4m[40maerpass[24m(1)[0m
                [40mpass a change review[0m

        [4m[40maet[24m(1)  test a change[0m

        [4m[40maepconf[24m(5)[0m
                [40mproject configuration file format[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Develop_End_Undo(1)                          aegis -Develop_End_Undo(1)



[40m[1mNAME[0m
        [40maegis develop end undo - recall a change for further development[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Develop_End_Undo [4m[22mchange-number[24m [ [4moption[24m...  ][0m
        [1m[40maegis -Develop_End_Undo -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Develop_End_Undo -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Develop_End_Undo[24m command is used to recall a change for[0m
        [40mfurther development.[0m

        [40mSuccessful execution of this command returns the change to the [4mbeing[0m
        [4m[40mdeveloped[24m state.[0m
[40m[0m
                       [40mdevelop end   being[0m
                              [40mundo developed[0m
                                        [40m|[0m
                                        [40m|develop[0m
                                        [40m|end[0m

                                    [40mawaiting[0m
                                     [40mreview[0m
                                        [40m|[0m
                                        [40m|review[0m
                                        [40m|begin[0m

                                     [40mbeing[0m
                                    [40mreviewed[0m
                                        [40m|[0m
                                        [40m|review[0m
                                        [40m|pass[0m

                                    [40mawaiting[0m
                                  [40mintegration[0m



        [40mThe files are changed back to being owned by the current user, and[0m
        [40mcease to be read-only.[0m

   [1m[40mNotification[0m
        [40mOn successful completion of the command, the [4mdevelop_end_undo_notify_-[0m
        [4m[40mcommand[24m field of the project attributes file is run, if set.  See[0m
        [4m[40maepa[24m(1) and [4maepattr[24m(5) for more information.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-REAson [4m[22mtext[0m
                [40mThis option may be used to attach a comment to the change[0m
                [40mhistory generated by this command.  You will need to use[0m
                [40mquotes to insulate the spaces from the shell.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aedeu 'aegis -deu \!* -v'[0m
        [40msh$     aedeu(){aegis -deu "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in one of the [4mawaiting[24m [4mreview[24m or[0m
        [4m[40mbeing[24m [4mreviewed[24m or [4mawaiting[24m [4mintegration[24m states.[0m

        [40mIf is an error if the project has been configured to use the [4mawaiting[0m
        [4m[40mreview[24m state, and the change is currently in the [4mbeing[24m [4mreviewed[24m state.[0m
        [40mThis is because the change currently belongs to the reviewer.[0m

        [40mIt is an error if the change was not developed by the current user.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maede[24m1   complete development of a change[0m

        [4m[40maerpass[24m1[0m
                [40mpass review of a change[0m

        [4m[40maerfail[24m1[0m
                [40mfail review of a change[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aediff(1)                                                            aediff(1)



[40m[1mNAME[0m
        [40maediff - file differences between deltas[0m

[1m[40mSYNOPSIS[0m
        [1m[40maediff [22m[ [4moption[24m...  ] [4mfilename[0m
        [1m[40maediff -Help[0m
        [1m[40maediff -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maediff[24m command is used to obtain the difference between versions[0m
        [40mof the given [4mfilename[24m across different file versions, a specified by[0m
        [40mthe command lien options.[0m

        [40mIf two changes or deltas are specified, the difference between the[0m
        [40mversions of the file in each will be output.[0m

        [40mIf only one change or delta is specified, the second version defaults[0m
        [40mto the current change.[0m

        [40mIf no changes or deltas are specified, the first version defaults to[0m
        [40mthe baseline and the second version defaults to the current change.[0m

   [1m[40mExamples[0m
        [40mTo see the difference in the project configuration file, [4maegis.conf[24m,[0m
        [40mbetween deltas 1.2.D003 and 4.5.D067 the following command may be[0m
        [40mused:[0m
                [40maediff aegis.conf -c 1.2.D003 -c 4.5.D067[0m
        [40mTo see the differences in the project configuration file, between the[0m
        [40mhead of the 7.6 branch and the current change, the following command[0m
        [40mmay be used:[0m
                [40maediff -branch 7.6 -bl  aegis.conf[0m
        [40mMany, many other combinatiosn are possible.[0m

   [1m[40mUsing Graphical Tools[0m
        [40mIt is possible to use a graphical diff tool with the [4maediff[24m(1)[0m
        [40mcommand.  This is done by using the -command [4moption,[24m [4mor[24m [4msetting[24m [4mthe[0m
        [40mAE2DIFF [4menvironment[24m [4mvariable.[24m  [4mFor[24m [4mexample,[24m [4mto[24m [4muse[24m [4mthe[24m [4mtkdiff(1)[0m
        [4m[40mcommand[24m [4mto[24m [4mdisplay[24m [4mthe[24m [4mdifferences[24m [4myou[24m [4mwould[24m [4muse[24m [4ma[24m [4mcommand[24m [4msuch[24m [4mas:[0m
                [4m[40maediff[24m [4m--command=tkdiff[24m [4mfilename[0m
        [4m[40mIf[24m [4myou[24m [4muse[24m [4mthis[24m [4moption,[24m [4mmany[24m [4mof[24m [4mthe[24m [4mdiff(1)-specific[24m [4moptions[24m [4mwill[24m [4mbe[0m
        [4m[40mignored.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-BaseLine[0m
                [40mThis option may be used to specify that the project baseline[0m
                [40mis the subject of the command.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-COMmand [4m[22mstring[0m
                [40mThis option may be used to set the command used to display[0m
                [40mdifferences.  Using this option will cause [4mdiff[24m(1)-specific[0m
                [40moptions to be ignored.  If not set, defaults to the value of[0m
                [40mthe AE2DIFF environment variable, or "diff" otherwise.[0m

        [1m[40m-CONtext [22m[ [4mlines[24m ][0m
                [40mUse the context output format, showing [4mlines[24m (an integer)[0m
                [40mlines of context, or three if [4mlines[24m is not given.  For proper[0m
                [40moperation, [4mpatch[24m(1) typically needs at least two lines of[0m
                [40mcontext.[0m

        [1m[40m-DELta [4m[22mnumber[0m
                [40mThis option may be used to specify a particular delta in the[0m
                [40mproject's history to copy the file from, rather than the most[0m
                [40mcurrent version.  If the delta has been given a name (see[0m
                [4m[40maedn[24m(1) for how) you may use a delta name instead of a delta[0m
                [40mnumber.  It is an error if the delta specified does not exist.[0m
                [40mDelta numbers start from 1 and increase; delta 0 is a special[0m
                [40mcase meaning "when the branch started".[0m

        [1m[40m-DELta_Date [4m[22mstring[0m
                [40mThis option may be used to specify a particular date and time[0m
                [40min the project's history to copy the file from, rather than[0m
                [40mthe most current version.  It is an error if the string[0m
                [40mspecified cannot be interpreted as a valid date and time.[0m
                [40mQuote the string if you need to use spaces.[0m

        [1m[40m-DELta_From_Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular project delta[0m
                [40mfrom its change number.[0m

        [1m[40m-Ignore_Blank_Lines[0m
                [40mIgnore changes that just insert or delete blank lines.[0m

        [1m[40m-Ignore_All_Space[0m
                [40mIgnore white space when comparing lines.[0m

        [1m[40m-Ignore_Case[0m
                [40mIgnore changes in case; consider upper- and lower-case to be[0m
                [40mthe same.[0m

        [1m[40m-Ignore_Space_Change[0m
                [40mIgnore changes in amount of white space.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Show_C_Function[0m
                [40mShow which C function each change is in.[0m

        [1m[40m-TRunk[0m
                [40mThis option may be used to specify the project trunk for the[0m
                [40morigin file, rather than the baseline.  (See also [1m-BRanch[0m
                [40moption, the -trunk option is the same as the "-branch -"[0m
                [40moption.)[0m

        [1m[40m-unified [22m[ [4mlines[24m ][0m
                [40mUse the unified output format, showing [4mlines[24m (an integer)[0m
                [40mlines of context, or three if lines is not given.  For proper[0m
                [40moperation, [4mpatch[24m(1) typically needs at least two lines of[0m
                [40mcontext.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maediff[24m program.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maediff[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maediff[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maediff[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maediff version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aediff program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maediff[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maediff[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aedist(1)                                                            aedist(1)



[40m[1mNAME[0m
        [40maedist - remotely distribute a change[0m

[1m[40mSYNOPSIS[0m
        [1m[40maedist -Send [22m[ [4moption[24m...  ][0m
        [1m[40maedist -Receive [22m[ [4moption[24m...  ][0m
        [1m[40maedist -REPlay [22m[ [4moption[24m...  ] -f [4mURL[0m
        [1m[40maedist -MIssing [22m[ [4moption[24m...  ] -f [4mURL[0m
        [1m[40maedist -PENding [22m[ [4moption[24m...  ] -f [4mURL[0m
        [1m[40maedist -Inventory [22m[ [4moption[24m...  ][0m
        [1m[40maedist -ARChive [22m[ [4moption[24m...  ][0m
        [1m[40maedist -List [22m[ [4moption[24m...  ][0m
        [1m[40maedist -Help[0m
        [1m[40maedist -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maedist[24m command is used to send and receive change sets to[0m
        [40mfacilitate geographically distributed development.  The expected[0m
        [40mtransport mechanism is e-mail, however other mechanisms are equally[0m
        [40mpossible.[0m

        [40mThe basic function is to reproduce a change, so a command like[0m
                [40maedist -send | aedist -receive[0m
        [40mmay be used to clone a change, though less efficiently than[0m
        [4m[40maeclone[24m(1).  The file format used is designed to withstand mail[0m
        [40mservers, so activities such as[0m
                [40maedist -send | [4me-mail[24m | aedist -receive[0m
        [40m(where [4me-mail[24m represents sending, transporting and receiving your e-[0m
        [40mmail) will reproduce the change on a remote system.  With suitable[0m
        [40mtools (such as PGP) is it possible to[0m
                [40maedist -send | encrypt | [4me-mail[24m | decrypt | aedist -receive[0m
        [40mThe mechanism is also designed to allow web-based distribution such as[0m
                [40maedist -send | [4mweb-server[24m [4m->[24m [4mweb-browser[24m | aedist -receive[0m
        [40mby the use of appropriate CGI scripts and mailcap entries.[0m

        [40mIt is possible to support both a "push" model and a "pull" model using[0m
        [40mthis command.  For suggestions and ideas for various ways to do this,[0m
        [40msee the Aegis Users Guide.[0m

[1m[40mSEND[0m
        [40mThe send variant takes a specified change, or baseline, and constructs[0m
        [40ma distribution package containing all of the change attributes and[0m
        [40msource file attributes and source file contents.  The result is[0m
        [40mcompressed, and encoded into a text format which can be sent as e-mail[0m
        [40mwithout being corrupted by the mail transfer agents along the way.[0m

   [1m[40mOptions[0m
        [40mThe following options are understood by the send variant:[0m

        [1m[40m-BaseLine[0m
                [40mThis option may be used to specify the source of a project,[0m
                [40mrather than a change.  Implies the [4m-Entire_Source[24m option,[0m
                [40munless over-ridden.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-COMPATibility [4m[22mversion-number[0m
                [40mThis option may be used to specify the version of [4maedist[24m(1)[0m
                [40mwhich will be [4mreceiving[24m this change set.  This information is[0m
                [40mused to select which features to include in the data, and[0m
                [40mwhich to omit.  By default, the latest feature set will be[0m
                [40mused.[0m

        [1m[40m-compression-algorithm [4m[22mname[0m
                [40mThis option may be used to specify the compression to be used.[0m
                [40mThey are listed on order of compression effeciency.[0m

                [40mnone    Use no compression (not always meaningful for all[0m
                        [40mcommands).[0m

                [40mgzip    Use the compression used by the [4mgzip[24m(1) program.[0m

                [40mbzip2   Use the compression used by the [4mbzip2[24m(1) program.[0m

                [40mMore compression algorithms may be added in the future.[0m

        [1m[40m-COMPress[0m
                [40mThis option is deprecated in favour of the [1m-comp-alg=gzip [22mor[0m
                [1m[40m-comp-alg=bzip2 [22moptions.[0m

        [1m[40m-No_COMPress[0m
                [40mThis options is deprecated in favour of the [1m-comp-alg=none[0m
                [40moption.[0m

        [1m[40m-Content_Transfer_Encoding [4m[22mname[0m
                [40mThis option may be used to specify the content transfer[0m
                [40mencoding to be used.  It may take one of the following values:[0m

                [40mNone    No content transfer encoding is to be performed.[0m

                [40mBase64  The MIME base 64 encoding is to be used.  This is the[0m
                        [40mdefault.[0m

                [40mQuoted_Printable[0m
                        [40mThe MIME quoted printable encoding is to be used.[0m

                [40mUnix_to_Unix_encode[0m
                        [40mThe ancient unix-to-unix encoding is to be used.[0m

                [40mThese encodings may be abbreviated in the same way as comment[0m
                [40mline options.[0m

        [1m[40m-Ascii_Armor[0m
                [40mThis means the same as the "-cte=base64" option above.[0m

        [1m[40m-No_Ascii_Armor[0m
                [40mThis means the same as the "-cte=none" option above.[0m

        [1m[40m-DELta [4m[22mnumber[0m
                [40mThis option may be used to specify a particular delta in the[0m
                [40mproject's history to copy the file from, rather than the most[0m
                [40mcurrent version.  If the delta has been given a name (see[0m
                [4m[40maedn[24m(1) for how) you may use a delta name instead of a delta[0m
                [40mnumber.  It is an error if the delta specified does not exist.[0m
                [40mDelta numbers start from 1 and increase; delta 0 is a special[0m
                [40mcase meaning "when the branch started".[0m

        [1m[40m-DELta_Date [4m[22mstring[0m
                [40mThis option may be used to specify a particular date and time[0m
                [40min the project's history to copy the file from, rather than[0m
                [40mthe most current version.  It is an error if the string[0m
                [40mspecified cannot be interpreted as a valid date and time.[0m
                [40mQuote the string if you need to use spaces.[0m

        [1m[40m-DELta_From_Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular project delta[0m
                [40mfrom its change number.[0m

        [1m[40m-Description_Header[0m
                [40mThis option may be used to add an RFC 822 style header to the[0m
                [40mchange description being sent, with a From and Date line.[0m
                [40mThis is the default.[0m

        [1m[40m-No_Description_Header[0m
                [40mThis option suppresses the description header.[0m

        [1m[40m-Entire_Source[0m
                [40mThis option may be used to send the entire source of the[0m
                [40mproject, as well as the change source files.[0m

        [1m[40m-Ignore_UUID[0m
                [40mThis option may be used to ignore the UUID, if present, of the[0m
                [40moutgoing change set.[0m

        [1m[40m-No_Ignore_UUID[0m
                [40mThis option forces the [4maedist[24m command to use the outgoing[0m
                [40mchange set's UUID information.  This is the default (unless[0m
                [40mthe compatibility option will to avoid attributes).[0m

        [1m[40m-Mime_Headers[0m
                [40mThis option may be use to force the presence of mime headers[0m
                [40min the output, in circumstances they would usually be absent.[0m

        [1m[40m-No_Mime_Headers[0m
                [40mThis option may be use to force the absence of mime headers in[0m
                [40mthe output, in circumstances where they would usually be[0m
                [40mpresent.[0m

        [1m[40m-Partial_Source[0m
                [40mThis option may be used to send only source files of a change.[0m
                [40mThis is the default, except for the [4m-BaseLine[24m option.[0m

        [1m[40m-Output [4m[22mfilename[0m
                [40mThis option may be used to specify the output file.  The[0m
                [40moutput is sent to the standard output by default.[0m

        [1m[40m-PATch  [22mThis option is deprecated.  Please use the [1m-COMPATibility[0m
                [40moption instead.[0m

        [1m[40m-No_PATch[0m
                [40mThis option is deprecated.  Please use the [1m-COMPATibility=4.6[0m
                [40moption instead.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Signed_Off_By[0m
                [40mThis option may be used to have a Signed-off-by: line appended[0m
                [40mto the change set description.[0m

        [1m[40m-No_Signed_Off_By[0m
                [40mThis option may be used to prevent a Signed-off-by: line from[0m
                [40mbeing appended to the change set description.[0m

[1m[40mRECEIVE[0m
        [40mThe receive variant takes a change package created by the send variant[0m
        [40mand creates an Aegis change (see [4maenc[24m(1)) to implement the change[0m
        [40mwithin.  Files are added to the change (see [4maerm[24m(1), [4maecp[24m(1), [4maenf[24m(1)[0m
        [40mand [4maent[24m(1)) and then the file contents are unpackaged into the[0m
        [40mdevelopment directory.[0m

        [40mThe change is then built (see [4maeb[24m(1)), differenced (see [4maed[24m(1)), and[0m
        [40mtested (see [4maet[24m(1)).  If all of this is successful, development of the[0m
        [40mchange is ended (see [4maed[24m(1)).  The automatic process stops at this[0m
        [40mpoint, so that a local reviewer can confirm that the change is[0m
        [40mdesired.[0m

   [1m[40mNotification[0m
        [40mThe [4maedist[24m command invokes various other Aegis commands.  The usual[0m
        [40mnotifications that these commands would issue are issued.[0m

   [1m[40mOptions[0m
        [40mThe following options are understood by the receive variant:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to choose the change number to be[0m
                [40mused, otherwise one will be chosen automatically.[0m

        [1m[40m-DELta [4m[22mnumber[0m
                [40mThis option may be used to specify a particular delta in the[0m
                [40mproject's history to copy the file from, just as for the[0m
                [4m[40maecp[24m(1) command.  You may also use a delta name instead of a[0m
                [40mdelta number.[0m

        [1m[40m-DIRectory [4m[22mpath[0m
                [40mThis option may be used to specify which directory is to be[0m
                [40mused.  It is an error if the current user does not have[0m
                [40mappropriate permissions to create the directory path given.[0m
                [40mThis must be an absolute path.[0m

                [40mCaution: If you are using an automounter do not use `pwd` to[0m
                [40mmake an absolute path, it usually gives the wrong answer.[0m

        [1m[40m-File [4m[22mfilename[0m
                [40mRead the change set from the specified file.  The default is[0m
                [40mto read it from the standard input.  The filename `-' is[0m
                [40munderstood to mean the standard input.[0m

                [40mIf your system has [4mlibcurl[24m(3), and Aegis was configured to use[0m
                [40mit at compile time (this is the default if it is available)[0m
                [40myou will also be able to specify a Uniform Resource Locator[0m
                [40m(URL) in place of the file name.  The relevant data will be[0m
                [40mdownloaded.  (The [1m-Verbose [22moption will provide a progress[0m
                [40mbar.)[0m

        [1m[40m-PATch  [22mThis option may be used to apply patches from the input, if[0m
                [40mavailable.  This generally results in fewer merge problems,[0m
                [40mbut it requires the two repositories to be well synchronized.[0m
                [40mThis is the default.[0m

        [1m[40m-No_PATch[0m
                [40mThis option may be used to ignore patches in the input, if any[0m
                [40mare present.[0m

        [1m[40m-Ignore_UUID[0m
                [40mThis option may be used to ignore the UUID, if present, of the[0m
                [40mincoming change set.[0m

        [1m[40m-No_Ignore_UUID[0m
                [40mThis option force the [4maedist[24m command to use the change set's[0m
                [40mUUID.  This is the default.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to set the project name.  If not[0m
                [40mspecified, the project name in the input package will be used,[0m
                [40mrather than the usual project name defaulting mechanism.[0m

        [1m[40m-Trojan [22mThis option may be used to treat the change set as if it had a[0m
                [40mTrojan horse attack in it.[0m

        [1m[40m-No_Trojan[0m
                [40mThis option may be used to treat the change set as if it[0m
                [40mdefinitely does not have a Trojan horse attack in it.  [4mUse[0m
                [4m[40mwith[24m [4mextreme[24m [4mcare.[24m  You need to have authenticated the message[0m
                [40mwith something like PGP first [1mand [22mknow the the author well.[0m

   [1m[40mSecurity[0m
        [40mReceiving changes by e-mail, and automatically committing them to the[0m
        [40mbaseline without checking them, would be a recipe for disaster.  A[0m
        [40mnumber of safeguards are provided:[0m

        [40m+o The format of the package is confirmed to be correct, and the[0m
          [40mpackage verified for internal consistency, before it is unpacked and[0m
          [40macted upon.[0m

        [40m+o The automatic portion of the process stops when development ends.[0m
          [40mThis ensures that a local reviewer validates the change before it is[0m
          [40mcommitted, preventing accidental or malicious damage.[0m

        [40m+o If the change seeks to update the project [4mconfig[24m file, the automatic[0m
          [40mprocess terminates before the build or difference occurs.  This is[0m
          [40mbecause this file could contain trojans for these operations, so a[0m
          [40mhuman must examine the file before the change proceeds any further.[0m

        [40m+o There is a [4mpotential_trojan_horse[24m [4m=[24m [4m[[24m [4mstring[24m [4m];[24m field in the[0m
          [40mproject[4mconfig[24m file.  Nominate build configuration files, shell[0m
          [40mscripts, code generators, [4metc[24m here to specify files in addition to[0m
          [40mthe project configuration file which should cause the automatic[0m
          [40mprocessing to halt.[0m

        [40m+o The use of e-mail authentication and encryption systems, such as PGP[0m
          [40mand GPG, are encouraged.  However, it is expected that this[0m
          [40mprocessing will occur after [4maedist[24m [4m--send[24m has constructed the[0m
          [40mpackage and before [4maedist[24m [4m--receive[24m examines and acts on the[0m
          [40mpackage.  Verification of the sender is the surest defense against[0m
          [40mtrojan horses.[0m

        [40m+o Automatic sending and receiving of packages is supported, but not[0m
          [40mimplemented within the aedist command.  It is expected that the[0m
          [40maedist command will be used within shell scripts customized for your[0m
          [40msite and its unique security requirements.  See the Aegis User Guide[0m
          [40mfor several different ways to do this.[0m

        [40m+o The more you use Aegis' test management facilities (see [4maent[24m(1) and[0m
          [4m[40maet[24m(1)) the harder it is for an inadequate change to get into the[0m
          [40mbaseline.[0m

   [1m[40mDuplicate Storms[0m
        [40mIn a distributed development environment, it is common for change sets[0m
        [40mto eventually be propagated back to the originator.  There are[0m
        [40msituations (particularly in some star topologies) where several copies[0m
        [40mof the package will return to the originator.[0m

        [40mIf these change sets are not detected at the review stage, and are[0m
        [40mpropagated out yet again, there is the possibility of an exponential[0m
        [40mexplosion of redundant packages being distributed again and again.[0m

        [40mTo combat this, changes are checked after the files are unpacked, but[0m
        [40mbefore and build or difference or test is performed.  The "[4maecpu[0m
        [4m[40m--unchanged[24m" command is used to exclude all files that the local[0m
        [40mrepository already has in the desired form.  If no change files remain[0m
        [40mafter this, the change is dropped entirely (see [4maedbu[24m(1) and[0m
        [4m[40maencu[24m(1)).[0m

[1m[40mREPLAY[0m
        [40mIf you are tracking a remote site which makes a project available via[0m
        [40mthe [4maeget[24m(1) web interface, you can automatically synchronize with the[0m
        [40mremote site using the [4maedist[24m [4m-replay[24m command.[0m

        [40mFor example, Aegis developers can track the master project with a[0m
        [40mcommand of the form:[0m
                [40maedist -p aegis.4.24.3 --replay -f aegis.sourceforge.net[0m
        [40mThis command is internally rewritten as[0m
                [40maedist --replay -p aegis.4.24.3 -f \[0m
                  [40mhttp://aegis.sf.net/cgi-bin/aeget/aegis.4.24.3/?inventory[0m
        [40mIf your cgi-bin directory is somewhere else, you will need to use the[0m
        [40mlong form.[0m

        [40mThe change set inventory page is human readable if you want to see[0m
        [40mwhat it contains.  The links on this page provide all the information[0m
        [40mnecessary to download any of the change sets listed.[0m

        [40mThis command reads the list of change set UUIDs from the remote[0m
        [40mrepository, and compares it with the list of change set UUIDs in the[0m
        [40mlocal repository, and fetches any that are not present locally.[0m

        [40mEach of the change sets required are downloaded and unpacked by[0m
        [40missuing a command such as[0m
                [40maedist -rec -f \[0m
                  [40mhttp://aegis.sf.net/cgi-bin/aeget/aegis.4.19.C010/?aedist[0m
        [40mIf this completes successfully (and it is possible it won't, either[0m
        [40mbecause of trojan warnings, or some conflict between local changes and[0m
        [40mthe incoming remote changes), and your project has its [4mdevelop_end_-[0m
        [4m[40maction[24m set to [4mgoto_awaiting_integration[24m, the change will be integrated[0m
        [40musing a command such as:[0m
                [40maeintegratq -p aegis.4.24.3 -c 10[0m
        [40mand then starts over again for the next missing change set.[0m

        [40mThis command will attempt to use the same change number as in the[0m
        [40mremote repository, if it is available.[0m

   [1m[40mOptions[0m
        [40mThe following options are understood by this variant:[0m

        [1m[40m-EXclude_UUID [4m[22mUUID[0m
                [40mThis option may be used to exclude some change sets from being[0m
                [40mdownloaded and unpacked.  This option may be used more than[0m
                [40monce.[0m

        [1m[40m-No_EXclude_UUID [4m[22mUUID[0m
                [40mThis option may be used to explicitly list change sets to be[0m
                [40mdownloaded and unpacked, to the exclusion of all others.  This[0m
                [40moption may be used more than once.[0m

        [1m[40m-EXclude_VERsion [4m[22mpattern[0m
                [40mThis option may be used to explicitly exclude some change set[0m
                [40mfrom being downloaded and unpacked.  The [4mpattern[24m is matched[0m
                [40magainst the version as displayed in the inventory.  This[0m
                [40moption may be used more than once.[0m

        [1m[40m-INclude_VERsion [4m[22mpattern[0m
                [40mThis option may be used to explicitly list change sets to be[0m
                [40mdownloaded and unpacked, to the exclusion of all others.  The[0m
                [4m[40mpattern[24m is matched against the version as displayed in the[0m
                [40minventory.  This option may be used more than once.[0m

        [1m[40m-File [4m[22mfilename[0m
                [40mRead the change set from the specified file.  The default is[0m
                [40mto read it from the standard input.  The filename `-' is[0m
                [40munderstood to mean the standard input.[0m

                [40mIf your system has [4mlibcurl[24m(3), and Aegis was configured to use[0m
                [40mit at compile time (this is the default if it is available)[0m
                [40myou will also be able to specify a Uniform Resource Locator[0m
                [40m(URL) in place of the file name.  The relevant data will be[0m
                [40mdownloaded.  (The [1m-Verbose [22moption will provide a progress[0m
                [40mbar.)[0m

        [1m[40m-MAXimum[0m
                [40mThis option may be used to download as many changes as[0m
                [40mpossible by excluding the maximum number of local changes[0m
                [40msets, by excluding both local change sets UUIDs (the default)[0m
                [40mbut also excluding UUIDs mentioned in change "original-uuid"[0m
                [40mattributes.[0m

        [1m[40m-PErsevere[0m
                [40mThis option may be used to specify that all relevant change[0m
                [40msets should be downloaded, even if some fail.  Defaults to the[0m
                [40muser's [4mpersevere_preference[24m if not specified, see [4maeuconf[24m(5)[0m
                [40mfor more information.[0m

        [1m[40m-No_PErsevere[0m
                [40mThis option may be used to specify that the downloading of[0m
                [40mchange sets should stop after the first failure.  Defaults to[0m
                [40mthe user's [4mpersevere_preference[24m if not specified, see[0m
                [4m[40maeuconf[24m(5) for more information.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Trojan [22mThis option is passed to any [4maedist[24m(1) commands spawned by[0m
                [40mthis command.[0m

        [1m[40m-No_Trojan[0m
                [40mThis option is passed to any [4maedist[24m(1) commands spawned by[0m
                [40mthis command.[0m

        [1m[40m-Not_Compatibility[0m
                [40mThis option must be used when using [4maedist[24m [4m--replay[24m against a[0m
                [40mfile based inventory.[0m

[1m[40mMISSING[0m
        [40mIf you want to see the change sets that [4maedist[24m [4m-replay[24m may download[0m
        [40mbefore it goes ahead and does it, you can use a command such as:[0m
                [40maedist --missing -f aegis.sf.net[0m
        [40mIn particular, this allows you to select appropriate UUIDs for the[0m
        [4m[40maedist[24m [4m-replay[24m [4m-exclude[24m or [4m-no-exclude[24m options.[0m

   [1m[40mOptions[0m
        [40mThe following options are understood by this variant:[0m

        [1m[40m-EXclude_UUID [4m[22mUUID[0m
                [40mThis option may be used to exclude some change sets from being[0m
                [40mlisted.  This option may be used more than once.[0m

        [1m[40m-No_EXclude_UUID [4m[22mUUID[0m
                [40mThis option may be used to explicitly list change sets to be[0m
                [40mlisted, to the exclusion of all others.  This option may be[0m
                [40mused more than once.[0m

        [1m[40m-EXclude_VERsion [4m[22mpattern[0m
                [40mThis option may be used to explicitly exclude some change set[0m
                [40mfrom being listed.  The [4mpattern[24m is matched against the version[0m
                [40mas displayed in the inventory.  This option may be used more[0m
                [40mthan once.[0m

        [1m[40m-INclude_Version [4m[22mpattern[0m
                [40mThis option may be used to explicitly list change sets to be[0m
                [40mlisted, to the exclusion of all others.  The [4mpattern[24m is[0m
                [40mmatched against the version as displayed in the inventory.[0m
                [40mThis option may be used more than once.[0m

        [1m[40m-MAXimum[0m
                [40mThis option may be used to download as many changes as[0m
                [40mpossible by excluding the maximum number of local changes[0m
                [40msets, by excluding both local change sets UUIDs (the default)[0m
                [40mbut also excluding UUIDs mentioned in change "original-uuid"[0m
                [40mattributes.[0m

[1m[40mPENDING[0m
        [40mIf you want to see the change sets that a remote repository is missing[0m
        [40mwith respect to yours, you can use a command such as:[0m
                [40maedist --pending -f aegis.sf.net[0m

   [1m[40mOptions[0m
        [40mThe following options are understood by this variant: [1m-EXclude_UUID[0m
        [4m[40mUUID[24m This option may be used to exclude some local change sets from[0m
        [40mbeing listed.  This option may be used more than once.[0m

        [1m[40m-No_EXclude_UUID [4m[22mUUID[0m
                [40mThis option may be used to explicitly list local change sets[0m
                [40mto be listed, to the exclusion of all others.  This option may[0m
                [40mbe used more than once.[0m

        [1m[40m-EXclude_VERsion [4m[22mpattern[0m
                [40mThis option may be used to explicitly exclude some local[0m
                [40mchange set from being listed.  The [4mpattern[24m is matched against[0m
                [40mthe version as displayed in the inventory.  This option may be[0m
                [40mused more than once.[0m

        [1m[40m-INclude_VERsion [4m[22mpattern[0m
                [40mThis option may be used to explicitly list local change sets[0m
                [40mto be listed, to the exclusion of all others.  The [4mpattern[24m is[0m
                [40mmatched against the version as displayed in the inventory.[0m
                [40mThis option may be used more than once.[0m

[1m[40mINVENTORY[0m
        [40mThe inventory variant can be used as an alternative to aeget to[0m
        [40mgenerate the inventory used by the replay, missing and pending[0m
        [40mvariants.  The idea is to run the inventory variant on the development[0m
        [40mmachine and then upload its output to the public repository.  In order[0m
        [40mto generate the inventory you can use a command such as:[0m
                [40maedist --inventory -proj project > inventory.html[0m

   [1m[40mOptions[0m
        [40mThe following options are understood by this variant:[0m

        [1m[40m-AEGET  [22mThis option is used by aeget to require the original [4maeget[24m(1)[0m
                [40mbehavior.[0m

        [1m[40m-All    [22mThis option is used to require the inclusion of the UUIDs[0m
                [40mcontained in the original-UUID attribute of each change.[0m

        [1m[40m-EXclude_Version [4m[22mpattern[0m
                [40mThis option may be used to explicitly exclude some change set[0m
                [40mto be added to the inventory file.  The [4mpattern[24m is matched[0m
                [40magainst the version as displayed in the inventory.  This[0m
                [40moption may be used more than once.[0m

        [1m[40m-INclude_Version [4m[22mpattern[0m
                [40mThis option may be used to explicitly list change sets to be[0m
                [40madded to the the inventory file, to the exclusion of all[0m
                [40mothers.  The [4mpattern[24m is matched against the version as[0m
                [40mdisplayed in the inventory.  This option may be used more than[0m
                [40monce.[0m

        [1m[40m-path_prefix_add[0m
                [40mThis option is used to add a path prefix to the URLs generated[0m
                [40min the inventory.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

[1m[40mARCHIVE[0m
        [40mAs an alternative to using the [4maeget[24m(1) CGI program, the aedist[0m
        [40marchive variant is provided.  This variant can be used to populate a[0m
        [40mdirectory with the aedist archives of each change with an UUID.  The[0m
        [40marchives will have a name based on the UUID of the change with[0m
        [40mextension ".ae", the fingerprint of the archive will be stored in a[0m
        [40mfile with the same (base)name with extension ".fp".  Running the[0m
        [40marchive variant multiple times against the same target directory will[0m
        [40mupdate that directory, adding the files of changes integrated after[0m
        [40mthe last run and regenerating the files if a corruption is detected.[0m

   [1m[40mOptions[0m
        [40mThe following options are understood by the archive variant:[0m

        [1m[40m-Change-Directory [4m[22mdirectory[0m
                [40mThis option is used to designate the directory to be populated[0m
                [40mwith the [4maedist[24m(1) generated files.  If this option is not[0m
                [40mused then the current directory is used as the target of the[0m
                [40mcommand.  The directory must exists and be accessible by the[0m
                [40muser running the command.[0m

        [1m[40m-EXclude_Version [4m[22mpattern[0m
                [40mThis option may be used to explicitly exclude some change set[0m
                [40mto be added to the target directory.  The [4mpattern[24m is matched[0m
                [40magainst the version as displayed in the inventory.  This[0m
                [40moption may be used more than once.[0m

        [1m[40m-INclude_Version [4m[22mpattern[0m
                [40mThis option may be used to explicitly list change sets to be[0m
                [40madded to the target directory, to the exclusion of all others.[0m
                [40mThe [4mpattern[24m is matched against the version as displayed in the[0m
                [40minventory.  This option may be used more than once.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

[1m[40mLIST[0m
        [40mThe list variant can be used to list the contents of a package without[0m
        [40mactually unpacking it first.  The output is reminiscent of the [4maegis[0m
        [4m[40m-list[24m [4mchange-details[24m output.[0m

   [1m[40mOptions[0m
        [40mThe following options are understood by the list variant:[0m

        [1m[40m-File [4m[22mfilename[0m
                [40mRead the change set from the specified file.  The default is[0m
                [40mto read it from the standard input.  The filename `-' is[0m
                [40munderstood to mean the standard input.[0m

                [40mIf your system has [4mlibcurl[24m(3), and Aegis was configured to use[0m
                [40mit at compile time (this is the default if it is available)[0m
                [40myou will also be able to specify a Uniform Resource Locator[0m
                [40m(URL) in place of the file name.  The relevant data will be[0m
                [40mdownloaded.  (The [1m-Verbose [22moption will provide a progress[0m
                [40mbar.)[0m

        [1m[40m-Output [4m[22mfilename[0m
                [40mThis option may be used to specify the output file.  The[0m
                [40moutput is sent to the standard output by default.  Only useful[0m
                [40mwith the -List option.[0m

[1m[40mOPTIONS[0m
        [40mThe following options to this command haven't been mentioned yet:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maedist[24m program.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maedist[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mFILE FORMAT[0m
        [40mThe file format re-uses existing formats, rather than introduce[0m
        [40manything new.  This means it is possible to extract the contents of a[0m
        [40mpackage even when aedist is unavailable.[0m

        [40m+o The source files and other information is stored as a [4mcpio[24m(1)[0m
          [40marchive.[0m

        [40m+o The archive is compressed using the [4mbzip2[24m(1) format.  Typically[0m
          [40mprimary source files are ASCII text, resulting in significant[0m
          [40mcompression.[0m

        [40m+o The compressed result is encoded using the MIME base64 encoding.[0m
          [40mThis makes the result approximately 33% larger than the compressed[0m
          [40mbinary would be, but still smaller than the primary sources.[0m

        [40mThe [4mcpio[24m archive is used to store[0m

        [40metc/project-name[0m
                [40mThis contains the project name to apply the package to, unless[0m
                [40mover-ridden by the --project command line option.[0m

        [40metc/change-number[0m
                [40mThis contains the change number of the original change, this[0m
                [40mmay be preserved if available on the target repository unless[0m
                [40mover-ridden by the --change command line option.[0m

        [40metc/change-set[0m
                [40mThis contains the change attributes and the list of source[0m
                [40mfiles and usages, in [4maecstate[24m(5) format.[0m

        [40mpatch/[4mfilename[0m
                [40mEach modified or renamed file in the package (named in[0m
                [4m[40metc/change-set[24m) appears under the [4mpatch[24m directory.  The file[0m
                [40mmay be empty unless some edits was done on the source[0m
                [40mrepository.[0m

        [40msrc/[4mfilename[0m
                [40mEach source file in the package (named in [4metc/change-set[24m)[0m
                [40mappears under the [4msrc/[24m directory.[0m

        [40mExtra files, or files out of order, are a fatal error.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maedist[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maedist[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maedist version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aedist program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maedist[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maedist[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m

[1m[40mCREDITS[0m
        [40mThis program evolved through discussion with a number of people.  If I[0m
        [40mhave forgotten anyone, it wasn't intentional.[0m

        [40mRalf Fassel       <ralf@akutech.de>              Catching trojan horses.[0m
        [40mWalter Franzini   <walter.franzini@sys-net.it>   coding -replay download[0m
        [40mFlorian Xhumari   <Florian.Xhumari@inria.fr>     On the need for pull interfaces.[0m
        [40mGraham Wheeler    <gram@cdsec.com>               HTTP pull interfacing.[0m



aegis -DELta_NAme(1)                                      aegis -DELta_NAme(1)



[40m[1mNAME[0m
        [40maegis delta name - assign a symbolic name to a project delta[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -DELta_NAme [22m[ [4moption[24m...  ] [4mname[0m
        [1m[40maegis -Help[0m
        [1m[40maegis -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-DELta_NAme[24m command is used to add a symbolic name to a[0m
        [40mproject delta.  This is so that this name may be used, rather than the[0m
        [40mnumber, when extracting previous versions of the file using the[0m
        [4m[40maecp[24m(1) command.[0m

        [40mThe [1m-DELta [4m[22mnumber[24m option on the command line specifies a delta number[0m
        [40mof the project.  That is, it is the delta number assigned to an[0m
        [40mintegration.  Delta names may only be applied to project baselines.[0m
        [40mIf no delta number is given on the command line, the current baseline[0m
        [40mis the default.[0m

        [40mA name must be given on the command line.  This is the name which will[0m
        [40mbe assigned to the delta.  If the name has already been used, you will[0m
        [40mbe given a fatal error message.  If you also specify the [1m-OverWriting[0m
        [40moption the name will be removed from its previous delta and assigned[0m
        [40mto the requested delta.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-DELta [4m[22mnumber[0m
                [40mThis option may be used to specify a particular delta in the[0m
                [40mproject's history to name.[0m

        [1m[40m-DELta_DAte [4m[22mstring[0m
                [40mThis option may be used to specify a particular date and time[0m
                [40min the project's history.[0m

        [1m[40m-Delta_From_Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular delta in the[0m
                [40mproject's history, based on when the given change was[0m
                [40msuccessfully integrated.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-OverWriting[0m
                [40mThis option may be used to force overwriting of files.  The[0m
                [40mdefault action is to give an error if an existing file would[0m
                [40mbe overwritten.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maecp[24m(1) copy a file into a change, particularly the [1m-DELta [22moption[0m

        [4m[40maeib[24m(1) start the integration of a change[0m

        [4m[40mael[24m(1)  list interesting this, particularly the [4mproject_history[0m
                [40mlisting[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aeedit(1)                                                            aeedit(1)



[40m[1mNAME[0m
        [40maeedit - edit a change's files[0m

[1m[40mSYNOPSIS[0m
        [1m[40maeedit [22m[ [1m-p [4m[22mproject-name[24m ] [ [1m-c [4m[22mchange-number[24m ][0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maeedit[24m command is used to edit all of the files in a change.  For[0m
        [40meditors with one buffer per file, this can be very useful except for[0m
        [40mchanges with huge numbers of files.[0m

        [40mThe editor's current directory is changed to the top of the change's[0m
        [40mdevelopment directory tree.[0m

        [40mIf you have PlasticFS installed, the editor's environment will be[0m
        [40mconfigured to present the development directory as the complete search[0m
        [40mpath.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-p [4m[22mproject-name[0m
                [40mThis option may be used to set the project name.[0m

        [1m[40m-c [4m[22mchange-number[0m
                [40mThis option may be used to set the change number.[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m

[1m[40mCOPYRIGHT[0m
        [40maeedit version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Scott[0m
        [40mFinneran[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m



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



[40m[1mNAME[0m
        [40maegis file attributes - modify the attributes of a file[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -File_ATtributes -File [4m[22mattr-file[24m [ [4moption[24m...  ] [4mfilename[0m
        [1m[40maegis -File_ATtributes -Edit [22m[ [4moption[24m...  ] [4mfilename[0m
        [1m[40maegis -File_ATtributes [22m[ [4moption[24m...  ] [4mname[24m[1m=[4m[22mvalue[24m [4mfilename[0m
        [1m[40maegis -File_ATtributes -UUID [4m[22mnumber[24m [1m-File [4m[22mfilename[0m
        [1m[40maegis -File_ATtributes -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-File_ATtributes[24m command is used to set, edit or list the[0m
        [40mattributes of a file.[0m

        [40mThe output of the [1m-List [22mvariant is suitable for use as input at a[0m
        [40mlater time.[0m

        [40mSee [4maefattr[24m(5) for a description of the file format.[0m

        [40mAttribute names are not case sensitive.  File attributes with a name[0m
        [40mstarting with an upper case letter will appear in [4mael[24m(1) and [4maeget[24m(1)[0m
        [40mlistings, while those starting with a lower case letter will not.[0m

   [1m[40mShorthand[0m
        [40mIf you are only setting the values of unique attributes, it is[0m
        [40mpossible to do this from the command line, using the [4mname[24m[1m=[4m[22mvalue[24m form.[0m

        [40mNote that this usage will replace the first attribute with the given[0m
        [40mname.  If there is more than one attribute of that name, the second[0m
        [40mand subsequent attributes are unchanged.  If there is no attribute of[0m
        [40mthe given name, it will be appended.[0m

        [40mYou may set more than one attribute at a time, provided that their[0m
        [40mnames are unique.  Attribute names are not case sensitive.[0m

   [1m[40mKnown Attribute Names[0m
        [40mWhile many of the anticipated uses of file attributes are to allow[0m
        [40mprojects to attach their own specialized data to individual files,[0m
        [40mAegis also uses some attributes for its own purposes (and arguably,[0m
        [40mshould always have done so to maximize forwards compatibility across[0m
        [40mAegis upgrades).[0m

        [40mcontent-type[0m
                [40mThis is taken directly from the MIME definition of Content-[0m
                [40mType.  It remembers what sort of file this is.  It is[0m
                [40manticipated that a [4mdiff[24m tool, for example, could make use of[0m
                [40mthis attribute to provide format-specific file difference[0m
                [40mlistings.  Some change set interchange formats are capable of[0m
                [40mcarrying this information.[0m

        [40mentire-source-hide[0m
                [40mboolean.  If true, this file is not included by the [4maedist[0m
                [4m[40m-entire-source[24m flag.  The [4maetar[24m and [4maerevml[24m commands work[0m
                [40msimilarly.  Think of it as a "local only" flag.[0m

        [40mforeign-copyright[0m
                [40mboolean.  If true, this file will not be checked by the [4maede-[0m
                [4m[40mpolicy[24m(1) copyright validation.[0m

        [40maede-policy-tabs-allowed[0m
                [40mboolean.  If true, the [4mno-tabs[24m policy of the [4maede-policy[24m(1)[0m
                [40mcommand does not apply.[0m

        [40maede-policy-line-length[0m
                [40minteger.  The maximum allowed line length in the [4mline-length[0m
                [40mpolicy of the [4maede-policy[24m(1) command; infinity if 0.[0m

        [40mlocal-source-hide[0m
                [40mboolean.  If true, this file is not included by [4maedist[24m change[0m
                [40msets.  The [4maetar[24m and [4maerevml[24m commands work similarly.  Change[0m
                [40msets which contain [4monly[24m thee files will be omitted from the[0m
                [4m[40maedist[24m [4m-inventory[24m output.  Think of it as a "local only" flag.[0m

        [40maeipass-options:assign-file-uuid[0m
                [40mboolean.  If false, [4maeipass[24m will not assign a fresh UUID to[0m
                [40mthis file.  This flag is set by [4maedist[24m -rec if the action[0m
                [40massociated with the file is a create and the file is missing[0m
                [40mthe UUID.  This behaviour is needed to prevent the effect of[0m
                [40mhaving different UUIDs assigned to the same file in different[0m
                [40mrepositories.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-BAse_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the base of the source tree.  See[0m
                [4m[40maeuconf[24m(5) for the corresponding user preference.[0m

        [1m[40m-CUrrent_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the current directory.  This is usually[0m
                [40mthe default.  See [4maeuconf[24m(5) for the corresponding user[0m
                [40mpreference.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.  [1m-Universal_Unique_IDentifier [4m[22mnumber[24m This option may[0m
                [40mbe used to set the UUID of a file.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aefa 'aegis -fat \!* -v'[0m
        [40msh$     aefa(){aegis -fat "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the current user is not an administrator of the[0m
        [40mspecified project.[0m
        [40mIt is an error if the current user is not the developer of the[0m
        [40mspecified change.[0m
        [40mIt is an error if the file is not included in the specified change.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maeca[24m(5) modify the attributes of a change[0m

        [4m[40maefattr[24m(5)[0m
                [40mfile attributes file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aefind(1)                                                            aefind(1)



[40m[1mNAME[0m
        [40maefind - search for files in directory hierarchy[0m

[1m[40mSYNOPSIS[0m
        [1m[40maefind [22m[ [4moption[24m...  ] [4mpath[24m...  [4mexpression[0m
        [1m[40maefind -Help[0m
        [1m[40maefind -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maefind[24m command is used to search the combined directory tree of a[0m
        [40mchange and its project.  It is intentionally similar to [4mfind[24m [4m(1),[0m
        [40mhowever it unifies the directory stack of a change and its branch[0m
        [40mbaseline, and the branch's ancestors' baselines if any.[0m

        [40mFor each file found in the directory tree, the given expression is[0m
        [40mevaluated from left to right, according to the rules of precedence[0m
        [40m(see the section on OPERATORS, below), only until the outcome is[0m
        [40mknown, at which point aefind moves on to the next file name.[0m

        [40mIf no directory is named on the command line, the current directory is[0m
        [40massumed.[0m

        [40mFiles which have been removed from the project, even if they somehow[0m
        [40mremain in the directory tree, will not be reported.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-BaseLine[0m
                [40mThis option may be used to specify that the project baseline[0m
                [40mis the subject of the command.[0m

        [1m[40m-BAse_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the base of the source tree.  See[0m
                [4m[40maeuconf[24m(5) for the corresponding user preference.[0m

        [1m[40m-CUrrent_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the current directory.  This is usually[0m
                [40mthe default.  See [4maeuconf[24m(5) for the corresponding user[0m
                [40mpreference.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maefind[24m program.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Resolve[0m
                [40mThis option may be used to request that filenames be absolute[0m
                [40mpaths, referring to the fully resolved file name.  This is the[0m
                [40mdefault.[0m

        [1m[40m-No_Resolve[0m
                [40mThis option may be used to request that filenames be base[0m
                [40mrelative names, relative to the root of the "stacked"[0m
                [40mdirectory tree.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to request that the expression be[0m
                [40mprinted again on the standard output.  This is the expression[0m
                [40mas understood by [4maefind[24m, to assist you in ensuring that you[0m
                [40mand the command agree.  The expression is fully parenthesized,[0m
                [40mand all implicit operators made explicit.  Where possible,[0m
                [40mconstant expressions will have been folded.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maefind[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXPRESSIONS[0m
        [40mThe expression is made up of basic elements, tests (which return a[0m
        [40mtrue or false value), and actions (which have side effects and return[0m
        [40ma true or false value), all separated by operators.[0m

   [1m[40mBASIC ELEMENTS[0m
        [1m[40m{}      [22mThe value of this expression is the file name of the file[0m
                [40mcurrently being considered.  The value is affected the the[0m
                [1m[40m-Resolve [22moption.[0m

        [1m[40m{-}     [22mThe value of this expression is the file name of the file[0m
                [40mcurrently being considered, relative to the base of the[0m
                [40mdirectory stack.[0m

        [1m[40m{+}     [22mThe value of this expression is the absolute path of the file[0m
                [40mcurrently being considered.[0m

        [4m[40mnumber[24m  Numbers may be specified directly, for use with other tests[0m
                [40mand operators.  In the style of C, they may be hexadecimal[0m
                [40mwith a "0x" prefix, octal with a "0" prefix, or decimal[0m
                [40motherwise.[0m

        [4m[40mstring[24m  Strings may be specified directly, for use with other tests[0m
                [40mand operators.  If the string contains shell meta-characters,[0m
                [40myou may need to quote it.[0m

        [1m[40m-FAlse  [22mThe value of this expression is always false.[0m

        [1m[40m-NOW    [22mThe value of this expression is the current time, at the start[0m
                [40mof execution.[0m

        [1m[40m-TRue   [22mThe value of this expression is always true.[0m

   [1m[40mOPERATORS[0m
        [40mThe [1m-and [22moperator is assumed where the operator is omitted.  You will[0m
        [40mneed to quote many of the operators, to protect them from[0m
        [40minterpretation by the shell.  Each operator must be a separate command[0m
        [40mline argument.[0m

        [1m[40m( [4m[22mexpr[24m [1m)[0m
                [40mForce precedence.[0m

        [1m[40m+ [4m[22mexpr[24m  Unary plus.  Is is an error if the argument cannot be coerced[0m
                [40mto a number.[0m

        [1m[40m- [4m[22mexpr[24m  Unary minus.  Result is the numeric negative of the argument.[0m
                [40mIs is an error if the argument cannot be coerced to a number.[0m

        [1m[40m! [4m[22mexpr[24m  Logical negation of the sense of the expression.  Is is an[0m
                [40merror if the argument cannot be coerced to a boolean.[0m
                [40mSynonym: [1m-Not[0m

        [1m[40m~ [4m[22mexpr[24m  Bitwise not of the argument.  Is is an error if the argument[0m
                [40mcannot be coerced to an integer.[0m

        [4m[40mexpr1[24m [1m* [4m[22mexpr2[0m
                [40mThis operation multiplies the two values.  Is is an error if[0m
                [40mthe arguments cannot be coerced to numbers.[0m

        [4m[40mexpr1[24m [1m/ [4m[22mexpr2[0m
                [40mThis operation divides the argument value by the second.  Is[0m
                [40mis an error if the arguments cannot be coerced to numbers.  Is[0m
                [40mis an error if the second argument is zero.[0m

        [4m[40mexpr1[24m [1m% [4m[22mexpr2[0m
                [40mThis operation produces the remainder of the division of the[0m
                [40mfirst argument by the argument.  Is is an error if the[0m
                [40marguments cannot be coerced to numbers.  Is is an error if the[0m
                [40msecond argument is zero.[0m

        [4m[40mexpr1[24m [1m~ [4m[22mexpr2[0m
                [40mIs is an error if the arguments cannot be coerced to strings.[0m
                [40mIs is an error if the first argument is not a valid pattern.[0m
                [40mThe first argument is the pattern, and the second is the[0m
                [40mstring The result is true if the pattern matches, and false if[0m
                [40mit does not.  This operation performs a shell file pattern[0m
                [40mcomparison.  to be compared.[0m

        [4m[40mexpr1[24m [1m+ [4m[22mexpr2[0m
                [40mThis operation adds the two values.  Is is an error if the[0m
                [40mvalues cannot be coerced to numbers.[0m

        [4m[40mexpr1[24m [1m- [4m[22mexpr2[0m
                [40mThis operation subtracts the second values from the first.  Is[0m
                [40mis an error if the values cannot be coerced to numbers.[0m

        [4m[40mexpr1[24m [1m## [4m[22mexpr2[0m
                [40mThis operation concatenates the arguments.  Is is an error if[0m
                [40mthe arguments cannot be coerced to strings.  (Note: this is[0m
                [4m[40mnot[24m the same as the [1m: [22moperator of the [4mexpr[24m(1) command.)[0m

        [4m[40mexpr1[24m [1m<< [4m[22mexpr2[0m
                [40mShift the first argument left by the number of bits specified[0m
                [40mby the second argument.  The left argument is treated as an[0m
                [4m[40munsigned[24m number.  Is is an error if the values cannot be[0m
                [40mcoerced to numbers.[0m

        [4m[40mexpr1[24m [1m>> [4m[22mexpr2[0m
                [40mShift the first argument right by the number of bits specified[0m
                [40mby the second argument.  The left argument is treated as an[0m
                [4m[40munsigned[24m number.  Is is an error if the values cannot be[0m
                [40mcoerced to numbers.[0m

        [4m[40mexpr1[24m [1m< [4m[22mexpr2[0m
                [40mCompare the values and produce true if the first value is less[0m
                [40mthan the second value, false otherwise.  If both values can be[0m
                [40mcoerced to numbers, the comparison is numeric; if both values[0m
                [40mcan be coerced to strings, the comparison is lexicographic;[0m
                [40motherwise is it an error.[0m

        [4m[40mexpr1[24m [1m<= [4m[22mexpr2[0m
                [40mCompare the values and produce true if the first value is less[0m
                [40mthan or equal to the second value, false otherwise.  If both[0m
                [40mvalues can be coerced to numbers, the comparison is numeric;[0m
                [40mif both values can be coerced to strings, the comparison is[0m
                [40mlexicographic; otherwise is it an error.[0m

        [4m[40mexpr1[24m [1m> [4m[22mexpr2[0m
                [40mCompare the values and produce true if the first value is[0m
                [40mgreater than the second value, false otherwise.  If both[0m
                [40mvalues can be coerced to numbers, the comparison is numeric;[0m
                [40mif both values can be coerced to strings, the comparison is[0m
                [40mlexicographic; otherwise is it an error.[0m

        [4m[40mexpr1[24m [1m>= [4m[22mexpr2[0m
                [40mCompare the values and produce true if the first value is[0m
                [40mgreater than or equal to the second value, false otherwise.[0m
                [40mIf both values can be coerced to numbers, the comparison is[0m
                [40mnumeric; if both values can be coerced to strings, the[0m
                [40mcomparison is lexicographic; otherwise is it an error.[0m

        [4m[40mexpr1[24m [1m== [4m[22mexpr2[0m
                [40mCompare the values and produce true if the first value is[0m
                [40mequal to the second value, false otherwise.  If both values[0m
                [40mcan be coerced to numbers, the comparison is numeric; if both[0m
                [40mvalues can be coerced to strings, the comparison is[0m
                [40mlexicographic; otherwise is it an error.[0m

        [4m[40mexpr1[24m [1m!= [4m[22mexpr2[0m
                [40mCompare the values and produce true if the first value is not[0m
                [40mequal to the second value, false otherwise.  If both values[0m
                [40mcan be coerced to numbers, the comparison is numeric; if both[0m
                [40mvalues can be coerced to strings, the comparison is[0m
                [40mlexicographic; otherwise is it an error.[0m

        [4m[40mexpr1[24m [1m& [4m[22mexpr2[0m
                [40mThis operation produces the bitwise-and of the two values.  Is[0m
                [40mis an error if the values cannot be coerced to numbers.[0m

        [4m[40mexpr1[24m [1m| [4m[22mexpr2[0m
                [40mThis operation produces the bitwise-or of the two values.  Is[0m
                [40mis an error if the values cannot be coerced to numbers.[0m

        [4m[40mexpr1[24m [1m&& [4m[22mexpr2[0m
                [40mResult is true if both expressions are true.  Short circuit[0m
                [40mevaluation is used, and so [4mexpr2[24m is not evaluated if [4mexpr1[24m is[0m
                [40mfalse.  Is is an error if the arguments cannot be coerced to[0m
                [40mbooleans.[0m
                [40mSynonym: [1m-And[0m

        [4m[40mexpr1[24m [4mexpr2[0m
                [40mLogical and (implied).  Result is true if both expressions are[0m
                [40mtrue.  Short circuit evaluation is used, and so [4mexpr2[24m is not[0m
                [40mevaluated if [4mexpr1[24m is false.  Please note that implicit[0m
                [40moperator plays merry hell with operator precedence, because[0m
                [40mthere is no operator.  If you are getting odd results, use[0m
                [40mexplicit operators.[0m

        [4m[40mexpr1[24m [1m|| [4m[22mexpr2[0m
                [40mResult is true if either expression is true.  Short circuit[0m
                [40mevaluation is used, and so [4mexpr2[24m is not evaluated if [4mexpr1[24m is[0m
                [40mtrue.  Is is an error if the arguments cannot be coerced to[0m
                [40mbooleans.[0m
                [40mSynonym: [1m-Or[0m

        [4m[40mexpr1[24m [1m? [4m[22mexpr2[24m [1m: [4m[22mexpr3[0m
                [40mThe value of this expression is [4mexpr2[24m if [4mexpr1[24m is true, and[0m
                [4m[40mexpr3[24m otherwise.  The [4mexpr1[24m is always evaluated, but only one[0m
                [40mof [4mexpr2[24m or [4mexpr3[24m will be evaluated.  It is an error if the[0m
                [40mvalue of [4mexpr1[24m cannot be coerced to boolean.[0m

        [4m[40mexpr1[24m [1m, [4m[22mexpr2[0m
                [40mBoth [4mexpr1[24m and [4mexpr2[24m are always evaluated.  The value of [4mexpr1[0m
                [40mis discarded; the value of the expression is the value of[0m
                [4m[40mexpr2[24m.[0m

        [40mOperators have precedence as described by the following table, highest[0m
        [40mto lowest:[0m

                            [40m+----------------------------+[0m
                            [40m|   Operator       Direction |[0m
                            [40m+----------------------------+[0m
                            [40m|[4m(unary)[24m + - ~ !      <-     |[0m
                            [40m|* / % ~              ->     |[0m
                            [40m|+ - :                ->     |[0m
                            [40m|<< >>                ->     |[0m
                            [40m|< <= > >=            ->     |[0m
                            [40m|== !=                ->     |[0m
                            [40m|&                    ->     |[0m
                            [40m|^                    ->     |[0m
                            [40m||                    ->     |[0m
                            [40m|&&                   ->     |[0m
                            [40m|||                   ->     |[0m
                            [40m|? :                  ->     |[0m
                            [40m|,                    ->     |[0m
                            [40m+----------------------------+[0m
   [1m[40mFUNCTIONS[0m
        [40mThere are a number of built-in functions which may be used in the[0m
        [40mexpression.  Functions may be invoked using a syntax similar to C[0m
        [40mfunctions.[0m

                                  [4m[40mname[24m [1m( [4m[22marguments[24m [1m)[0m
        [40mYou need to leave spaces around the parentheses so that they are[0m
        [40mseparate command line arguments.[0m

        [40matime   This function may be used to determine the last-accessed-time[0m
                [40mof a file.  It takes one argument.[0m

        [40mbasename[0m
                [40mThis function returns the basename of the string argument[0m
                [40mpassed to it.  It takes one argument.[0m

        [40mctime   This function may be used to determine the last-change-time of[0m
                [40man inode.  It takes one argument.[0m

        [40mexecute This function may be used to execute a command.  The arguments[0m
                [40mare assembled into the command to be executed.  Use the[0m
                [40mspecial "{}" argument to insert the name of the current file.[0m
                [40mThe function returns true of the command's exist status is[0m
                [40mzero.  All following arguments to find are taken to  be[0m
                [40marguments  to  the command until an argument consisting of `;'[0m
                [40mis encountered.  The command  is  executed in the starting[0m
                [40mdirectory.[0m

        [40mgid     This function may be used to determine the gid of a file.  It[0m
                [40mtakes one argument.[0m

        [40minode   This function may be used to determine the inode number of a[0m
                [40mfile.  It takes one argument.[0m

        [40mmode    This function may be used to determine the access mode[0m
                [40m(permissions) of a file.  It takes one argument.[0m

        [40mmtime   This function may be used to determine the last-modified-time[0m
                [40mof a file.  It takes one argument.[0m

        [40mprint   This function may be used to print a value.  It takes one[0m
                [40margument.  Always returns true.[0m

        [40msize    This function may be used to determine the size in bytes of a[0m
                [40mfile.  It takes one argument.[0m

        [40mtype    This function may be used to determine the type of a file.  It[0m
                [40mtakes one argument.  It returns a string: "block_special",[0m
                [40m"character_special", "directory", "file", "named_pipe",[0m
                [40m"socket" or "symbolic_link".[0m

        [40muid     This function may be used to determine the uid of a file.  It[0m
                [40mtakes one argument.[0m

   [1m[40mTESTS[0m
        [40mMost tests exist to provide compatibility with [4mfind[24m(1).[0m

        [1m[40m-Access_Minutes [22m[ [4mrelative-operator[24m ] [4mnumber[0m
                [40mTrue if the current file was accessed exactly [4mnumber[24m minutes[0m
                [40mago, false otherwise.  If a relative operator is given (<, <=,[0m
                [40m==, !=, > or >=) a relative comparison will be made, rather[0m
                [40mthan the implicit equality test.  This is [4mnot[24m identical to the[0m
                [40msimilar [4mfind[24m(1) test.  This is shorthand for the "( now -[0m
                [40matime ( {+} )) / 60 [4mrelative-operator[24m [4mnumber[24m" expression.[0m

        [1m[40m-Access_Time [22m[ [4mrelative-operator[24m ] [4mnumber[0m
                [40mTrue if the current file was accessed exactly [4mnumber[24m days ago,[0m
                [40mfalse otherwise.  If a relative operator is given (<, <=, ==,[0m
                [40m!=, > or >=) a relative comparison will be made, rather than[0m
                [40mthe implicit equality test.  This is [4mnot[24m identical to the[0m
                [40msimilar [4mfind[24m(1) test.  This is shorthand for the "( now -[0m
                [40matime ( {+} )) / 86400 [4mrelative-operator[24m [4mnumber[24m" expression.[0m

        [1m[40m-Change_Minutes [4m[22mnumber[0m
                [40mTrue if the current file's inode was changed exactly [4mnumber[0m
                [40mminutes ago, false otherwise.  If a relative operator is given[0m
                [40m(<, <=, ==, !=, > or >=) a relative comparison will be made,[0m
                [40mrather than the implicit equality test.  This is [4mnot[24m identical[0m
                [40mto the similar [4mfind[24m(1) test.  This is shorthand for the "( now[0m
                [40m- ctime ( {+} )) / 60 [4mrelative-operator[24m [4mnumber[24m" expression.[0m

        [1m[40m-Change_Time [4m[22mnumber[0m
                [40mTrue if the current file's inode was changed exactly [4mnumber[0m
                [40mdays ago, false otherwise.  If a relative operator is given[0m
                [40m(<, <=, ==, !=, > or >=) a relative comparison will be made,[0m
                [40mrather than the implicit equality test.  This is [4mnot[24m identical[0m
                [40mto the similar [4mfind[24m(1) test.  This is shorthand for the "( now[0m
                [40m- ctime ( {+} )) / 86400 [4mrelative-operator[24m [4mnumber[24m" expression.[0m

        [1m[40m-Modify_Minutes [4m[22mnumber[0m
                [40mTrue if the current file was modified exactly [4mnumber[24m minutes[0m
                [40mago, false otherwise.  If a relative operator is given (<, <=,[0m
                [40m==, !=, > or >=) a relative comparison will be made, rather[0m
                [40mthan the implicit equality test.  This is [4mnot[24m identical to the[0m
                [40msimilar [4mfind[24m(1) test.  This is shorthand for the "( now -[0m
                [40mmtime ( {+} )) / 60 [4mrelative-operator[24m [4mnumber[24m" expression.[0m

        [1m[40m-Modify_Time [4m[22mnumber[0m
                [40mTrue if the current file was modified exactly [4mnumber[24m days ago,[0m
                [40mfalse otherwise.  If a relative operator is given (<, <=, ==,[0m
                [40m!=, > or >=) a relative comparison will be made, rather than[0m
                [40mthe implicit equality test.  This is [4mnot[24m identical to the[0m
                [40msimilar [4mfind[24m(1) test.  This is shorthand for the "( now -[0m
                [40mmtime ( {+} )) / 86400 [4mrelative-operator[24m [4mnumber[24m" expression.[0m

        [1m[40m-Newer [4m[22mfilename[0m
                [40mTrue if the current file was modified after the given file.[0m
                [40mThis is shorthand for the "mtime ( {+} ) > mtime ( [4mfilename[24m )"[0m
                [40mexpression.[0m

        [1m[40m-Name [4m[22mpattern[0m
                [40mBase of file name (the path with the leading directories[0m
                [40mremoved) matches shell pattern [4mpattern[24m.  This is short-hand[0m
                [40mfor the "[4mpattern[24m ~ basename ( {} )" expression.[0m

        [1m[40m-PAth [4m[22mpattern[0m
                [40mFile name matches shell pattern [4mpattern[24m.  Note that the file[0m
                [40mname if affected by the [1m-resolve [22moption.  This is short-hand[0m
                [40mfor the "[4mpattern[24m ~ {}" expression.[0m

        [1m[40m-Type [4m[22mstring[0m
                [40mThe file type matches the type given.  This is shorthand for[0m
                [40mthe "type ( {} ) == [4mstring[24m" expression.  Type names are[0m
                [40mmatched similar to options:[0m

                      [40mBlock       The file is a block special file.[0m
                      [40mCharacter   The file is a character special file.[0m
                      [40mDirectory   The file is a directory.[0m
                      [40mFile        The file is a normal file.[0m
                      [40mLink        The file is a symbolic link.[0m
                      [40mPipe        The file is FIFO (a named pipe).[0m
                      [40mSocket      The file is a UNIX domain socket.[0m

   [1m[40mACTIONS[0m
        [1m[40m-print  [22mThis will print the full file name on the standard output,[0m
                [40mfollowed by a newline.  The [1m-Resolve [22moption will affect what[0m
                [40mis printed.  This is short-hand for the "print ( {} )"[0m
                [40mexpression.[0m

        [1m[40m-execute [4m[22mstring[24m... [1m;[0m
                [40mThe may be used to execute a command.  This is short-hand for[0m
                [40mthe "execute ( [4mstring[24m [1m: [22m...  )" expression.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maefind[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maefind[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maefind version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aefind program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maefind[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maefind[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aefinish(1)                                                        aefinish(1)



[40m[1mNAME[0m
        [40maefinish - finish a change[0m

[1m[40mSYNOPSIS[0m
        [1m[40maefinish [22m[ [4moption[24m...  ][0m
        [1m[40maefinish -Help[0m
        [1m[40maefinish -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maefinish[24m command is used to finish development or integration of a[0m
        [40mchange set.  It examines the state of the change set, and executes the[0m
        [40mnecessary Aegis commands to advance the change set to the next state.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maefinish[24m program.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maefinish[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maefinish[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maefinish[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maefinish version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aefinish program comes with ABSOLUTELY NO WARRANTY; for details[0m
        [40muse the '[4maefinish[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software[0m
        [40mand you are welcome to redistribute it under certain conditions; for[0m
        [40mdetails use the '[4maefinish[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aefp(1)                                                                aefp(1)



[40m[1mNAME[0m
        [40maefp - calculate file fingerprint[0m

[1m[40mSYNOPSIS[0m
        [1m[40maefp [22m[ [4moption[24m...  ][ [4mfilename[24m...  ][0m
        [1m[40maefp -Help[0m
        [1m[40maefp -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maefp[24m program is used to calculate the fingerprints of files.  A[0m
        [40mfingerprint is a hash of the contents of a file.  The default[0m
        [40mfingerprint is cryptographically strong, so the probability of two[0m
        [40mdifferent files having the same fingerprint is less than 1 in 2**200.[0m

        [40mThe fingerprint is based on Dan Berstien <djb@silverton.berkeley.edu>[0m
        [40mpublic domain fingerprint 0.50 beta package 930809, posted to the[0m
        [40malt.sources newsgroup.  This program produces identical results; the[0m
        [40mexpected test results were generated using Dan's package.[0m

        [40mThe fingerprint is a base-64-sanely-encoded fingerprint of the input.[0m
        [40mImagine this fingerprint as something universal and permanent.  A[0m
        [40mfingerprint is 76 characters long, containing the following:[0m

        [40m1.  A Snefru-8 (version 2.5, 8 passes, 512->256) hash.  (Derived from[0m
            [40mthe Xerox Secure Hash Function.)[0m

        [40m2.  An MD5 hash, as per RFC 1321.  (Derived from the RSADSI MD5[0m
            [40mMessage-Digest Algorithm.)[0m

        [40m3.  A CRC checksum, as in the new cksum utility.[0m

        [40m4.  Length modulo 2^40.[0m

        [40mThe output format is not expected to be compatible with anything.[0m
        [40mHowever, options are available to produce the purported output of[0m
        [40mMerkle's snefru program, the purported output of RSADSI's mddriver -x,[0m
        [40mor the purported output of the POSIX cksum program.[0m

        [40mIf no files are named as input, the standard input will be used.  The[0m
        [40mspecial file name "-" is understood to mean the standard input.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Checksum[0m
                [40mPrint the CRC32 checksum and length of the named file(s).[0m

        [1m[40m-Identifier[0m
                [40mPrint a condensed form of the fingerprint (obtained by[0m
                [40mperforming a CRC32 checksum on the full fingerprint described[0m
                [40mabove - a definite overkill).  This is an 8-digit hexadecimal[0m
                [40mnumber, useful for generating unique short identifiers out of[0m
                [40mlong names.  The first character is forced to be a letter (g-[0m
                [40mp), so there is no problem in using the output as a variable[0m
                [40mname.[0m

        [1m[40m-Help[0m
                [40mProvide some help with using the [4maefp[24m program.[0m

        [1m[40m-Message_Digest[0m
                [40mPrint the RSA Data Security, Inc. MD5 Message-Digest Algorithm[0m
                [40mhash of the named file(s).[0m

        [1m[40m-Snefru [22mPrint the Snefru hash of the named file(s), derived from the[0m
                [40mXerox Secure Hash Function.[0m

        [1m[40m-VERSion[0m
                [40mPrint the version of the [4maefp[24m program being executed.[0m

        [40mAll other options will produce a diagnostic error.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maefp[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maefp[24m command will exit with a status of 1 on any error.  The [4maefp[0m
        [40mcommand will only exit with a status of 0 if there are no errors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maefp version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aefp program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maefp[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maefp[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m

        [40mPortions of this program are derived from sources from other people,[0m
        [40msometimes with liberal copyrights, and sometimes in the public domain.[0m
        [40mThese include:[0m

        [40mDan Bernstien[0m
                [40mSee [4mcommon/fp/README[24m for details.[0m

        [40mGary S Brown.[0m
                [40mSee [4mcommon/fp/crc32.c[24m for details.[0m

        [40mRSA Data Security, Inc.[0m
                [40mSee [4mcommon/fp/md5.c[24m for details.[0m

        [40mXerox Corporation[0m
                [40mSee [4mcommon/fp/snefru.c[24m for details.[0m

        [40mIn addition to the above copyright holders, there have been numerous[0m
        [40mauthors and contributors, see the named files for details.  Files[0m
        [40mnames are relative to the root of the [4maegis[24m distribution.[0m



aeget(1)                                                              aeget(1)



[40m[1mNAME[0m
        [40maeget - Aegis CGI file access[0m

[1m[40mSYNOPSIS[0m
        [1m[40maeget[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maeget[24m command is used with Apache (or CGI conforming any other web[0m
        [40mserver) to access the files of an Aegis project.  The files are[0m
        [40msearched for along the appropriate search path, including all ancestor[0m
        [40mbaslines, not just the baseline of the branch.[0m

        [40mThis is useful when developing web sites using Aegis.[0m

   [1m[40mInstall[0m
        [40mIn order to use [4maeget[24m(1), you need to copy it into your [4mcgi-bin[0m
        [40mdirectory.[0m

        [40mYou may prefer to use a symbolic link, as this will be more stable[0m
        [40macross Aegis upgrades.  However, this requires a corresponding [4mfollow-[0m
        [4m[40msymlinks[24m setting in your web server's configuration file.[0m

   [1m[40mUsage[0m
        [40mOnce [4maeget[24m(1) is installed, files may be accessed via[0m
                [40mhttp://localhost/cgi-bin/aeget/[4mproject-name[24m/[0m
        [40mIf no project name is given, a list of projects will be generated.[0m
        [40mThis will lead you through a series of menus, giving access to manu[0m
        [40museful pages of information about your projects.[0m

   [1m[40mCascading Style Sheets[0m
        [40mThe web interface uses Cascading Style Sheets.  You can give the web[0m
        [40minterface a personalised look and feel, by creating stylesheets in the[0m
        [40mweb server's Document Root directory.  The interface will use it's[0m
        [40mdefault styles, then styles from a global style sheet called[0m
        [40maedefault.css, and then styles from a project stylesheet called[0m
        [4m[40mprojectname[24m.css (replace [4mprojectname[24m with the name of the project).[0m

        [40mThere is an example style sheet in /aedefault.css which demonstrates[0m
        [40mthe style elements used.  This particular stylesheet is not designed[0m
        [40mto be aesthetically pleasing, but to exercise all of the elements.[0m
        [40mUsing this stylesheet unmodified will give psychedelic results.  Use[0m
        [40mit as a template.[0m

[1m[40mPROJECT ATTRIBUTES[0m
        [40mYou can set your own project specific page headers and footers by[0m
        [40musing the "html:meta", "html:body-begin" and "html:body-end" project[0m
        [40mspecific attributes.[0m
                [40mproject_specific =[0m
                [40m[[0m
                  [40m{[0m
                    [40mname = "html:body-begin";[0m
                    [40mvalue = "<i>This text goes immediately after the[0m
                    [40m&lt;BODY&gt; and before any text generated by[0m
                    [40m<i>aeget</i>(1).</i>";[0m
                  [40m},[0m
                  [40m{[0m
                    [40mname = "html:body-end";[0m
                    [40mvalue = "<i>This text goes immediately before the[0m
                    [40m&lt;/BODY&gt; and after all text generated by[0m
                    [40m<i>aeget</i>(1).</i>";[0m
                  [40m},[0m
                [40m];[0m
        [40mThese fields may be used to customize your web pages for your project-[0m
        [40mspecific or company-specific needs.  Each project is configured[0m
        [40mindependently.[0m

[1m[40mCHANGE ATTRIBUTES[0m
        [40mIf you wish to prevent a change set appearing in the change set[0m
        [40minventory used by [4maedist[24m [4m-replay[24m to determine what needs to be[0m
        [40mdownloaded, set the following change set attribute:[0m
                [40mattribute =[0m
                [40m[[0m
                  [40m{[0m
                    [40mname = "aeget:inventory:hide";[0m
                    [40mvalue = "true";[0m
                  [40m},[0m
                [40m];[0m
        [40mYou must use the [4maeca[24m(1) command for this, the [4mtkaeca[24m(1) command can[0m
        [40mnot edit change set attributes.[0m

[1m[40mDEBUGGING and TESTING[0m
        [40mYou can run the [4maeget[24m(1) program from the command line if you set the[0m
        [40mappropriate environment variables.  This is how you debug or test[0m
        [4m[40maeget[24m(1) command.[0m

        [40mREQUEST_METHOD[0m
                [40mThis is how the script is being invoked.  For [4maeget[24m(1)[0m
                [40mcommand, this is always "GET".[0m

        [40mSCRIPT_NAME[0m
                [40mThis is the path of the script name, from the HTTP client's[0m
                [40mpoint of view.  Typically this is "/cgi-bin/aeget".[0m

        [40mPATH_INFO[0m
                [40mThis is the portion of the URL between the script name and the[0m
                [40mquestion mark.  For [4maeget[24m(1) this is usually the project name[0m
                [40mor the project name and the change number.  No project name[0m
                [40mwill get you the project list page.[0m

        [40mQUERY_STRING[0m
                [40mThis the portion of the URL after the question mark.[0m

        [40mThe above will not means much if you are not familiar with CGI[0m
        [40mscripts.  For the URL http://localhost/cgi-[0m
        [40mbin/aeget/aegis.4.1.C10?menu would have Apache set the following[0m
        [40menvironment variables[0m
                [40mREQUEST_METHOD=GET \[0m
                [40mSCRIPT_NAME=/cgi-bin/aeget \[0m
                [40mPATH_INFO=/aegis.4.1.C10 \[0m
                [40mQUERY_STRING='menu' \[0m
                [40maeget[0m
        [40mOutput is written to stdout.  Tests scripts can easily capture this[0m
        [40mand compare it with expected results.  Make sure you avoid false[0m
        [40mnegatives because of the date tacked onto the end of most pages.[0m

   [1m[40mApache[0m
        [40mIf you see "serious server error" pages when accessing [4maeget[24m(1) via a[0m
        [40mweb server, the stderr text is usually available in the server's error[0m
        [40mlog.[0m

[1m[40mCOPYRIGHT[0m
        [40maeget version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aeget program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maeget[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maeget[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis.cgi(1)                                                      aegis.cgi(1)



[40m[1mNAME[0m
        [40maegis.cgi - Aegis web interface script[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis.cgi[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis.cgi[24m command is used to interface between a web server and[0m
        [40mAegis.[0m

   [1m[40mDeprecated[0m
        [40mThis scripts is DEPRECATED since a long time and has been removed from[0m
        [40mthe aegis distribution as of aegis-4.24.1.  The preferred way to[0m
        [40mpublish an aegis aegis repository on the Web is using [4maeget[24m(1).[0m

   [1m[40mInstallation[0m
        [40mIf you have a Web server, you may like to install the Aegis web[0m
        [40minterface.  You do this by copying the [4maegis.cgi[24m script from[0m
        [4m[40m/usr/local/bin/aegis.cgi[24m into your web server's [4mcgi-bin[24m directory.[0m
        [40mThere is an [4maegis.cgi.i[24m helper script, if you don't know where your[0m
        [40mweb server's [4mcgi-bin[24m directory is.[0m

        [40mYou may prefer to use a symbolic link, as this will be more stable[0m
        [40macross Aegis upgrades.  However, this requires a corresponding [4mfollow-[0m
        [4m[40msymlinks[24m setting in your web server's configuration file.  (Use the[0m
        [4m[40maegis.cgi.i[24m [4m-s[24m option.)[0m

        [40mWithin the aegis.cgi script, you may set the [4mAEGIS_PATH[24m environment[0m
        [40mvariable, if you want it to be able to see more projects than just the[0m
        [40mglobal projects.  You do this by creating a [4m/usr/local/lib/-[0m
        [4m[40maegis.cgi.conf[24m file (there isn't one, by default) and setting the[0m
        [4m[40mAEGIS_PATH[24m environment variable in it.  This is a fragment of Bourne[0m
        [40mshell script, not just the name.[0m

   [1m[40mUsage[0m
        [40mOnce installed, it should be possible to see the project list by[0m
        [40mfollowing this URL:[0m
                [40mhttp://localhost/cgi-bin/aegis.cgi?[0m
        [40mYou may need to replace [4mlocalhost[24m with the machine's exact name.[0m

   [1m[40mCascading Style Sheets[0m
        [40mThe web interface uses Cascading Style Sheets.  You can give the web[0m
        [40minterface a personalised look and feel, by creating stylesheets in the[0m
        [40mweb server's Document Root directory.  The interface will use it's[0m
        [40mdefault styles, then styles from a global style sheet called[0m
        [40maedefault.css, and then styles from a project stylesheet called[0m
        [4m[40mprojectname[24m.css (replace [4mprojectname[24m with the name of the project).[0m

        [40mThere is an example style sheet in /usr/local/bin/aedefault.css which[0m
        [40mdemonstrates the style elements used.  This particular stylesheet is[0m
        [40mnot designed to be aesthetically pleasing, but to exercise all of the[0m
        [40melements.  Using this stylesheet unmodified will give psychedelic[0m
        [40mresults.  Use it as a template.[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Integrate_Begin(1)                            aegis -Integrate_Begin(1)



[40m[1mNAME[0m
        [40maegis integrate begin - begin integrating a change[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Integrate_Begin [4m[22mchange-number[24m [ [4moption[24m...  ][0m
        [1m[40maegis -Integrate_Begin -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Integrate_Begin -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Integrate_Begin[24m command is used to begin the integration of[0m
        [40ma change into the baseline of a project.[0m

        [40mThe change will advance from the [4mawaiting[24m [4mintegration[24m state to the[0m
        [4m[40mbeing[24m [4mintegrated[24m state.[0m
[40m[0m
                                 [40mawaiting[0m
                               [40mintegration[0m
                                     [40m|[0m
                            [40mintegrate|integrate[0m
                            [40mbegin    |begin[0m
                            [40mundo[0m
                                  [40mbeing[0m
                                [40mintegrated[0m



        [40mA (logical) copy of the baseline is created in an [4mintegration[0m
        [4m[40mdirectory[24m and the the files of the change are added to the integration[0m
        [40mdirectory.  The time stamps of files copied from the baseline are[0m
        [40mpreserved, time stamps on the files copied from the development[0m
        [40mdirectory are all set to the time of the beginning of the integration.[0m
        [40mThe [4m'aegis[24m [4m-Change_Directory'[24m command may be used to locate the[0m
        [40mintegration directory.  The change will be assigned to the current[0m
        [40muser.[0m

        [40mPlease note that only regular files and symbolic links are copied[0m
        [40m(linked) from the baseline to the integration directory.  This has[0m
        [40msome implications:[0m

        [40m+o Special files (devices, named pipes, [4metc[24m) will not be reproduced in[0m
          [40mthe integration directory; you will need to create these as part of[0m
          [40mthe build.[0m

        [40m+o If the case of the [1m-minimum [22moption (see below), only primary source[0m
          [40mfiles are copied (linked) across.  Derived files (including symbolic[0m
          [40mlinks) are expected to be created as part of the build.[0m

        [40m+o If the case of the [1m-minimum [22moption, directories are only created[0m
          [40mwhen required to hold a file which satisfies the above criteria.  If[0m
          [40myou need special empty directories, or directories which contain[0m
          [40monly special files, or only contain derived files, you need to[0m
          [40mcreate them as part of the build.[0m

        [40mThe [4mlink_integration_directory[24m field of the project configuration file[0m
        [40m(see [4maepconf[24m(5) for more information) controls whether the copy of the[0m
        [40mbaseline is done by copying the files or by creating hard links to the[0m
        [40mfiles.  The hard links are just one of the constraints on the location[0m
        [40mof the integration directory.  The integrate begin will abort with an[0m
        [40merror if this copy operation fails, e.g. by running out of disk space.[0m
        [40mIf this should happen, the change will remain in the [4mawaiting[0m
        [4m[40mintegration[24m state, and the integration directory will be removed.[0m

        [40mThe change will be assigned a delta number.  Delta numbers are[0m
        [40mincremented once for each [4maegis[24m [4m-Integrate_Begin[24m command for the[0m
        [40mproject.  If an integration is subsequently aborted with either the[0m
        [4m[40maegis[24m [4m-Integrate_Begin_Undo[24m or [4maegis[24m [4m-Integrate_FAIL[24m command, the[0m
        [40mdelta number will not be re-used.[0m

        [40mIt is not possible to choose the integration directory, as there are[0m
        [40mmany constraints upon it, including the fact that it must be on the[0m
        [40msame device as the baseline directory, and that many UNIX[0m
        [40mimplementations don't allow renaming directories up and down the[0m
        [40mtrees.  The integration directory will be in the project directory,[0m
        [40mand named for the delta number.[0m

   [1m[40mNotification[0m
        [40mOn successful completion of this command, the [4mintegration_begin_-[0m
        [4m[40mcommand[24m field of the project [4mconfig[24m file is run, if set.  See[0m
        [4m[40maepconf[24m(5) for more information.[0m

[1m[40mMinimum Integrations[0m
        [40mAegis provides a [1mminimum [22mintegration capability which may be used for[0m
        [40mvarious reasons.  The term [1mminimum [22mmay be a bit counter intuitive.[0m
        [40mOne might think it means to the [1mminimum [22mamount of work, however it[0m
        [40mactually means use a [1mminimum [22mof files from the baseline in populating[0m
        [40mthe [4mdelta[24m directory.  This normally leads to actually building[0m
        [40meverything in the project from sources and, as such, might be[0m
        [40mconsidered the most robust of builds.[0m

        [40mNote that any change which removes a file, whether by [4maerm[24m, [4maemv[24m or[0m
        [4m[40maemt[24m, results in an implicit [1mminimum [22mintegration.  This is intended to[0m
        [40mensure nothing in the project references the removed file.[0m

        [40mA project may adopt a policy that a product release should be based on[0m
        [40ma minimum integration.  Such a policy may be a reflection of local[0m
        [40mconfidence, or lack thereof, in the project's DMT (Dependency[0m
        [40mMaintenance Tool) or build system.  Or it may be based on a validation[0m
        [40mprocess wishing to make a simple statement on how the released package[0m
        [40mwas produced.[0m

        [40mAnother, more transient, reason a to require a minimum integration[0m
        [40mmight be when upgrading a third party library, compiler or maybe even[0m
        [40mOS level.  Any of these events would signal the need for a minimum[0m
        [40mintegration to ensure everything is rebuilt using the new resources.[0m

        [40mThe cost of a [1mminimum [22mintegration varies according to type and size of[0m
        [40mthe project.  For very large projects, especially those building large[0m
        [40mnumbers of binaries, the cost can be large.  However large projects[0m
        [40malso require significant time to fully populate the delta directory.[0m
        [40mA minimum integration only copies those files under Aegis control,[0m
        [40mskipping all "produced" files.  In the case where a file upon which[0m
        [40meverything depends is changed, everything will be built anyway so the[0m
        [40mcopy of the already built files is a waste of time.  This means that[0m
        [40msometimes a minimum can be as cheap as a normal integration.[0m

   [1m[40mChange Set Attributes[0m
        [40mThe follwoing user-defined change set attributes are understood:[0m

        [40mintegrate-begin-hint[0m
                [40mIf this is set to "minimum" or "maximum", it is as if these[0m
                [40moptions appeared on the command line.  Only consulted if[0m
                [40mneither -minimum nor -maximum appear on the command line.[0m

        [40mAll other user defined change set attributes are ignored.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-MAXimum[0m
                [40mThis option may be used to cause all files to be copied into[0m
                [40mthe integration directory.  This is the default, unless the[0m
                [40mchange requires the deletion of a file.[0m

        [1m[40m-MINImum[0m
                [40mThis option may be used to cause only the source files to be[0m
                [40mcopied into the integration directory.  The default is to copy[0m
                [40mall files, unless the change requires the deletion of a file.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-REAson [4m[22mtext[0m
                [40mThis option may be used to attach a comment to the change[0m
                [40mhistory generated by this command.  You will need to use[0m
                [40mquotes to insulate the spaces from the shell.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aeib 'aegis -ib \!* -v'[0m
        [40msh$     aeib(){aegis -ib "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mawaiting[24m [4mintegration[24m state.[0m
        [40mIt is an error if the current user is not an integrator of the[0m
        [40mproject.[0m
        [40mIt is an error if there is an integration in progress for the project.[0m
        [40mIt is an error if the current user developed the change and the[0m
        [40mproject is configured to disallow developers to integrate their own[0m
        [40mchanges (default).[0m
        [40mIt is an error if the current user reviewed the change and the project[0m
        [40mis configured to disallow reviewers to integrate their such changes[0m
        [40m(default).[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maeb[24m(1)  build a change[0m

        [4m[40maecd[24m(1) change directory[0m

        [4m[40maeibu[24m(1)[0m
                [40mreverse the aeib command[0m

        [4m[40maeifail[24m(1)[0m
                [40mfail integration of a change[0m

        [4m[40maeintegratq[24m(1)[0m
                [40mAutomate the integration queue.[0m

        [4m[40maeipass[24m(1)[0m
                [40mpass integration of a change[0m

        [4m[40maeni[24m(1) add new integrators to a project[0m

        [4m[40maerpass[24m(1)[0m
                [40mpass review of a change[0m

        [4m[40maet[24m(1)  run tests[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Integrate_Begin_Undo(1)                  aegis -Integrate_Begin_Undo(1)



[40m[1mNAME[0m
        [40maegis integrate begin undo - reverse the aeib command[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Integrate_Begin_Undo [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Integrate_Begin_Undo -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Integrate_Begin_Undo -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Integrate_Begin_Undo[24m command is used to reverse the actions[0m
        [40mof the [4m'aegis[24m [4m-Integrate_Begin'[24m command.[0m

        [40mSuccessful execution of this command will move the change from the[0m
        [4m[40mbeing[24m [4mintegrated[24m state to the [4mawaiting[24m [4mintegration[24m state.  The[0m
        [40mintegration directory will be deleted.  The change will cease to be[0m
        [40massigned to the current user.[0m
[40m[0m
                                 [40mawaiting[0m
                               [40mintegration[0m
                                     [40m|[0m
                            [40mintegrate|integrate[0m
                            [40mbegin    |begin[0m
                            [40mundo[0m
                                  [40mbeing[0m
                                [40mintegrated[0m



        [40mIn the unlikely event that an integrator has wandered away and left an[0m
        [40mintegration incomplete (say, went on holidays and won't be back for[0m
        [40mtwo weeks), project administrators are also able to use this command.[0m

   [1m[40mNotification[0m
        [40mOn successful completion of this command, the [4mintegration_begin_undo_-[0m
        [4m[40mcommand[24m field of the project [4mconfig[24m file is run, if set.  See[0m
        [4m[40maepconf[24m(5) for more information.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-Keep[0m
                [40mThis option may be used to retain files and/or directories[0m
                [40musually deleted or replaced by the command.  Defaults to the[0m
                [40muser's [4mdelete_file_preference[24m if not specified, see [4maeuconf[24m(5)[0m
                [40mfor more information.[0m

        [1m[40m-No_Keep[0m
                [40mThis option may be used to ensure that the files and/or[0m
                [40mdirectories are deleted or replaced by the command.  Defaults[0m
                [40mto the user's [4mdelete_file_preference[24m if not specified, see[0m
                [4m[40maeuconf[24m(5) for more information.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-REAson [4m[22mtext[0m
                [40mThis option may be used to attach a comment to the change[0m
                [40mhistory generated by this command.  You will need to use[0m
                [40mquotes to insulate the spaces from the shell.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aeibu 'aegis -ibu \!* -v'[0m
        [40msh$     aeibu(){aegis -ibu "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mbeing_integrated[24m state.[0m
        [40mIt is an error if the change is not assigned to the current user and[0m
        [40mthe current user is not a project administrator.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maeib[24m(1) begin integration of a change[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Integrate_Fail(1)                              aegis -Integrate_Fail(1)



[40m[1mNAME[0m
        [40maegis integrate fail - fail a change integration[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Integrate_Fail -File [4m[22mreason-file[24m [ [4moption[24m...  ][0m
        [1m[40maegis -Integrate_Fail -REASon [4m[22m'reason-text'[24m [ [4moption[24m...  ][0m
        [1m[40maegis -Integrate_Fail -Edit [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Integrate_Fail -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Integrate_Fail -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Integrate_Fail[24m command is used to inform aegis that a[0m
        [40mchange has failed integration.[0m

        [40mThe change will be returned from the [4mbeing[24m [4mintegrated[24m state to the[0m
        [4m[40mbeing[24m [4mdeveloped[24m state.  The change will cease to be assigned to the[0m
        [40mcurrent user, and will be reassigned to the originating developer.[0m
        [40mThe integration directory will be deleted.[0m
[40m[0m
                             [40mbeing[0m
                           [40mdeveloped[0m
                                [40m|[0m
                                [40m|develop[0m
                                [40m|end[0m

                            [40mawaiting[0m
                             [40mreview[0m
                                [40m|[0m
                                [40m|review[0m
                                [40m|begin[0m

                             [40mbeinigntegrate[0m
                            [40mreviewed fail[0m
                                [40m|[0m
                                [40m|review[0m
                                [40m|pass[0m

                            [40mawaiting[0m
                           [40mintegration[0m
                                [40m|[0m
                                [40m|integrate[0m
                                [40m|begin[0m

                             [40mbeing[0m
                           [40mintegrated[0m



        [40mThe reviewer and the developer will be notified by mail.  See the[0m
        [40mintegrate_fail_notify_command in [4maepconf[24m(5) for more information.[0m

        [40mThe [4mreason-file[24m will contain a description of why the change was[0m
        [40mfailed.  The file is in plain text.  It is recommended that you only[0m
        [40muse newline to terminate paragraphs, (rather than to terminate lines)[0m
        [40mas with will result in better formatting in the various listings.[0m

   [1m[40mNotification[0m
        [40mOn successful completion of this command, the [4mintegrate_fail_notify_-[0m
        [4m[40mcommand[24m field of the project attributes is run, if set.  See[0m
        [4m[40maepattr[24m(5) and [4maepa[24m(1) for more information.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Edit[0m
                [40mEdit the attributes with a text editor, this is usually more[0m
                [40mconvenient than supplying a text file.  The [4mVISUAL[24m and then[0m
                [4m[40mEDITOR[24m environment variables are consulted for the name of the[0m
                [40meditor to use; defaults to [4mvi[24m(1) if neither is set.  See the[0m
                [4m[40mvisual_command[24m and [4meditor_command[24m fields in [4maeuconf[24m(1) for how[0m
                [40mto override this specifically for Aegis.[0m

                [40mWarning: Aegis tries to be well behaved when faced with[0m
                [40merrors, so the temporary file is left in your home directory[0m
                [40mwhere you can edit it further and re-use it with a [1m-file[0m
                [40moption.[0m

                [40mThe [1m-edit [22moption may not be used in the background, or when[0m
                [40mthe standard input is not a terminal.[0m

        [1m[40m-Edit_BackGround[0m
                [40mEdit the attributes with a dumb text editor, this is most[0m
                [40moften desired when edit commands are being piped into the[0m
                [40meditor via the standard input.  Only the [1mEDITOR [22menvironment[0m
                [40mvariable is consulted for the name of the editor to use; it is[0m
                [40ma fatal error if it is not set.  See the [4meditor_command[24m field[0m
                [40min [4maeuconf[24m(1) for how to override this specifically for Aegis.[0m

        [1m[40m-File [4m[22mfilename[0m
                [40mTake the attributes from the specified file.  The filename `-'[0m
                [40mis understood to mean the standard input.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-Keep[0m
                [40mThis option may be used to retain files and/or directories[0m
                [40musually deleted or replaced by the command.  Defaults to the[0m
                [40muser's [4mdelete_file_preference[24m if not specified, see [4maeuconf[24m(5)[0m
                [40mfor more information.[0m

        [1m[40m-No_Keep[0m
                [40mThis option may be used to ensure that the files and/or[0m
                [40mdirectories are deleted or replaced by the command.  Defaults[0m
                [40mto the user's [4mdelete_file_preference[24m if not specified, see[0m
                [4m[40maeuconf[24m(5) for more information.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-REAson [4m[22mtext[0m
                [40mThis option may be used to provide the failure reason on the[0m
                [40mcommand line, rather than in a file.  You will need to use[0m
                [40mquotes to insulate the spaces from the shell.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aeifail 'aegis -ifail \!* -v'[0m
        [40msh$     aeifail(){aegis -ifail "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mbeing[24m [4mintegrated[24m state.[0m
        [40mIt is an error if the change is not assigned to the current user.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maeib[24m(1) begin integration of a change[0m

        [4m[40maeipass[24m(1)[0m
                [40mpass integration of a change[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aeimport(1)                                                        aeimport(1)



[40m[1mNAME[0m
        [40maeimport - import foreign repository into Aegis[0m

[1m[40mSYNOPSIS[0m
        [1m[40maeimport [22m[ [4moption[24m...  ] [4mdirname[0m
        [1m[40maeimport -Help[0m
        [1m[40maeimport -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maeimport[24m command is used to create a new project, and populate it[0m
        [40mby importing a foreign repository (such as RCS or CVS) without loss of[0m
        [40mproject history.[0m

        [40mPlease note: unless you specify a version (see the [1m-version [22moption,[0m
        [40mbelow) this command will default to creating branches to support[0m
        [40mversion 1.0.  If you discovered this too late, all is not lost: you[0m
        [40mcan use the [4maenbru[24m(1) command to get rid of the branches you didn't[0m
        [40mwant.[0m

   [1m[40mDirectory[0m
        [40mThe project directory, under which the project baseline and history[0m
        [40mand state and change data are kept, will be created at this time.  If[0m
        [40mthe [1m-DIRectory [22moption is not given, the project directory will be[0m
        [40mcreated in the directory specified by the default_project_directory[0m
        [40mfield of [4maeuconf[24m(5), or if not set in current user's home directory;[0m
        [40min either case with the same name as the project.[0m

   [1m[40mStaff[0m
        [40mThe project is created with the current user and group as the owning[0m
        [40muser and group.  The current user is an administrator for the project.[0m
        [40mThe project has no other administrators (use [4maena[24m(1) to add more).[0m

        [40mThe project will have all user names found in the history files (see[0m
        [40mblow) installed as developers, reviewers and integrators.  This is[0m
        [40mprobably too broad, but fairly accurately reproduces the wide-open[0m
        [40mpermissions found in most repositories, and you will want to use[0m
        [4m[40maerd[24m(1), [4maerrv[24m(1) and [4maeri[24m(1) as appropriate to winnow this list.[0m

        [40mIf only one name is found, the project will be set to[0m
        [40m"developers_may_review = true;" otherwise it will be false (see[0m
        [4m[40maepattr[24m(5) for more information).  Use [4maepa[24m(1) to change this if you[0m
        [40mwant a different setting.[0m

        [40mThe project's umask is derived from the current user's umask, but[0m
        [40mmodified to guarantee that group members will have access and that[0m
        [40monly the project owner will have write access.  In general, it's best[0m
        [40mof the project is [4mnot[24m owned by an account with any other role, as this[0m
        [40mprevents a whole class of "oops, I thought I was somewhere else"[0m
        [40merrors.[0m

        [40mThe project's history commands (see [4maepconf[24m(5) for more information)[0m
        [40mare set to those suitable for RCS.  The build command is set to "exit[0m
        [40m0"; you need to set it to something suitable.  The symbolic link farm[0m
        [40mis turned on.[0m

   [1m[40mPointer[0m
        [40mThe project pointer will be added to the first element of the search[0m
        [40mpath, or [4m/usr/local/com/aegis[24m if no path is set.  If this is[0m
        [40minappropriate, use the [1m-LIBrary [22moption to explicitly set the desired[0m
        [40mlocation.  See the [1m-LIBrary [22moption for more information.[0m

        [40mAlternatively, unset the AEGIS_PATH environment variable to add the[0m
        [40mproject to the global project list.[0m

   [1m[40mVersion[0m
        [40mYou may specify the project version in two ways:[0m

        [40m1. The version number may be implicit in the project name, in which[0m
           [40mcase the version numbers will be stripped off.  For example,[0m
           [40m"aeimport -p example.1.2" will create a project called "example"[0m
           [40mwith branch number 1 created, and sub-branch 2 of branch 1 created.[0m

        [40m2. The version number may be stated explicitly, in which case it will[0m
           [40mbe subdivided for branch numbers.  For example, "aeimport -p[0m
           [40mexample -version 1.2" will create a project called "example" with[0m
           [40mbranch number 1 created, and sub-branch 2 of branch 1 created.[0m

        [40mIn each case, these branches may be named wherever a project name may[0m
        [40mbe given, such as "-p example.1" and "-p example-1.2".  The actual[0m
        [40mpunctuation character is unimportant.[0m

        [40mYou may have any depth of version numbers you like.  Both methods of[0m
        [40mspecifying version numbers may be used, and they will be combined.  If[0m
        [40myou want no version numbers at all, use [1m-version [22mwith a single dash as[0m
        [40mthe argument, as in "-version -"[0m

        [40mIf no version number is given, either explicitly or implicitly,[0m
        [40mversion 1.0 is used.[0m

   [1m[40mProject Directory Location[0m
        [1m[40mPlease Note: [22mAegis also consults the underlying file system, to[0m
        [40mdetermine its notion of maximum file size.  Where the file system's[0m
        [40mmaximum file size is less than [4mmaximum_filename_length[24m, the filesystem[0m
        [40mwins.  This can happen, for example, when you are using the Linux[0m
        [40mUMSDOS file system, or when you have an NFS mounted an ancient V7[0m
        [40mfilesystem.  Setting [4mmaximum_filename_length[24m to 255 in these cases[0m
        [40mdoes not alter the fact that the underlying file systems limits are[0m
        [40mfar smaller (12 and 14, respectively).[0m

        [40mIf your development directories (or your whole project) is on[0m
        [40mfilesystems with filename limitations, or a portion of the[0m
        [40mheterogeneous builds take place in such an environment, it helps to[0m
        [40mtell Aegis what they are (using the project [4mconfig[24m file's fields) so[0m
        [40mthat you don't run into the situation where the project builds on the[0m
        [40mmore permissive environments, but fails with mysterious errors in the[0m
        [40mmore limited environments.[0m

        [40mIf your development directories are routinely on a Linux UMSDOS[0m
        [40mfilesystem, you would probably be better off setting[0m
        [4m[40mdos_filename_required[24m [4m=[24m [4mtrue[24m, and also changing the[0m
        [4m[40mdevelopment_directory_template[24m field.  Heterogeneous development with[0m
        [40mvarious Windows environments may also require this.[0m

[1m[40mTHE PROCESS[0m
        [40mMost file version systems do not operate using change sets.  In order[0m
        [40mto import such repositories into Aegis it is necessary to "discover"[0m
        [40mthese change sets.  The following steps are taken:[0m

        [40m1.[0m
          [40mThe directory ([4mdirpath[24m) given on the command line, and all[0m
          [40mdirectories below it, are scanned for appropriate files (for[0m
          [40mexample, RCS and CVS use files with a ",v" suffix).  These files are[0m
          [40mread to obtain the file's history.[0m
          [40mIf you have been using a non-standard file suffix, aeimport won't be[0m
          [40mable to find the files.[0m
          [40mIf you have more than one module in your CVS repository, aeimport[0m
          [40mdoesn't (yet) understand the CVSROOT/modules file.  Pointing[0m
          [40maeimport at your whole CVSROOT may produce an unexpectedly large[0m
          [40mresult.[0m

        [40m2.[0m
          [40mThe history files discovered in the previous step are copied into[0m
          [40mthe location used by Aegis.  Unlike some other tools, Aegis has a[0m
          [40mrepository per project, rather than all projects sharing the same[0m
          [40mrepository.[0m
          [40mThis also means that Aegis will not modify the original history[0m
          [40mfiles.  In particular, if the import produces unexpected results,[0m
          [40msimply remove the project (see [4maermpr[24m(1) for more information) and[0m
          [40mstart again.[0m
          [40mIt is not possible to leave all your history files under, say,[0m
          [40m$CVSROOT and have Aegis point to them.[0m

        [40m3.[0m
          [40mFor each user mentioned in the various file histories, the time[0m
          [40mstamps are examined to find groups of files which were committed at[0m
          [40maround the same time.  Files changed within 1 minute of each other[0m
          [40mare considered a group.[0m
          [40mFiles change within one minute, but by different users, are [4mnot[0m
          [40mconsidered a group.  This does not usually present a problem as[0m
          [40mdevelopers mostly work alone.  In rare cases where developers work[0m
          [40mtogether, only one of them does the commit.[0m
          [40mIn some cases the time window may be too large, and several very[0m
          [40msmall changes may be seen as one larger change set.  In practice,[0m
          [40mthis isn't very common.[0m

        [40m4.[0m
          [40mGroups of files are stored into the Aegis database as completed[0m
          [40mchanges (i.e. as if [4maeipass[24m(1) has already run).  The description of[0m
          [40mthe change is the concatenation of all the unique comments found[0m
          [40mattached to the relevant file versions.  The time stamp used for the[0m
          [40mchange is the latest time stamp of any file in the group.[0m
          [40mThere are times when small typographical errors between file[0m
          [40mcomments result in longer-than-expected change descriptions.  This[0m
          [40mcan be corrected with [4maeca[24m(1) or [4mtkaeca[24m(1) if desired.  There are[0m
          [40malso times when the reverse is true: some files have no comments at[0m
          [40mall, and the resulting description is less than useful.[0m

        [40m5.[0m
          [40mTags are turned into delta names by transferring delta names from[0m
          [40mthe files they are attached to, to the change sets they are attached[0m
          [40mto.  When a tag would appear to be attached to more than one change,[0m
          [40mit is attached only to the latest change.[0m
          [40mIn common usage, the tags serve a similar purpose as Aegis' delta[0m
          [40mnumbers.  They are all (typically) applied in a single CVS command,[0m
          [40min order that a particular release may be recreated later.  However,[0m
          [40mbecause each file will be at a different version, and each will have[0m
          [40mhad its latest version included in various random change sets.[0m
          [40mTags are used for other things too.  The method given here is simply[0m
          [40ma guess, but it's one which works reasonably well.[0m

        [40mOnce aeimport has completed importing a project, you will be able to[0m
        [40mexamine the results using the [4mael[24m [4mproject_history[24m and [4mael[0m
        [4m[40mchange_details[24m commands.  (See [4mael[24m(1) for more information.)[0m

   [1m[40mLimitations[0m
        [40mThe aeimport program is far from perfect.  There are a number of known[0m
        [40mlimitations.[0m

        [40m+o At this time, there is no support for branching.  (As soon as I[0m
          [40mfigure out how to discern the root of a branch across loosely[0m
          [40mcoupled files, I'll implement it.  Ideas and/or code contributions[0m
          [40mwelcome.)[0m

        [40m+o Only RCS and SCCS formats are understood at present.  It should be[0m
          [40mstraight forward to add support for additional formats in the[0m
          [40mfuture.  Only step 1 of the above process requires attention, the[0m
          [40mrest is file format neutral.[0m

        [40m+o There is no support for CVS modules, and there needs to be.[0m

        [40m+o You can't specify the time window size used to determine change[0m
          [40msets.  Time will tell whether this is necessary, but it begs the[0m
          [40mquestion: how will you know what window size you need in order to[0m
          [40muse the option at all.[0m

        [40m+o You can't import a CVS repository into an existing project.  You may[0m
          [40monly create a new project from a CVS repository.[0m

        [40m+o You can't import a remote CVS repository.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-DIRectory [4m[22mpath[0m
                [40mThis option may be used to specify which directory is to be[0m
                [40mused.  It is an error if the current user does not have[0m
                [40mappropriate permissions to create the directory path given.[0m
                [40mThis must be an absolute path.[0m

                [40mCaution: If you are using an automounter do not use `pwd` to[0m
                [40mmake an absolute path, it usually gives the wrong answer.[0m

        [1m[40m-FORmat [4m[22mname[0m
                [40mThis option may be use to specify which history format is[0m
                [40mbeing imported.  The following formats are understood:[0m

                [40mRCS     Release Control System format has been around for[0m
                        [40mquite a while.  It is the format underlying CVS[0m
                        [40m(Concurrent Version System).  This is the default if[0m
                        [40mno format name is specified.[0m
                        [1m[40mNote: [22myou [4mmust[24m have RCS installed before you run[0m
                        [4m[40maeimport[24m if you use this format, because RCS commands[0m
                        [40mwill be run during the import process.  The import[0m
                        [40mwill fail if RCS is not installed.  You can find a[0m
                        [40mfreeware implementation at ftp.gnu.org, or a local[0m
                        [40mmirror.[0m

                [40mSCCS    Source Code Control System is one of the earliest Unix[0m
                        [40mversion systems.  (I'm told this is the format[0m
                        [40munderlying BitKeeper.)[0m
                        [1m[40mNote: [22myou [4mmust[24m have SCCS installed before you run[0m
                        [4m[40maeimport[24m if you use this format, because SCCS commands[0m
                        [40mwill be run during the import process.  The import[0m
                        [40mwill fail if SCCS is not installed.  The GNU[0m
                        [40mCompatibly Stupid Source Control (CSSC) is a freeware[0m
                        [40mimplementation of SCCS, and it may be found at[0m
                        [40mftp://alpha.gnu.org/gnu/CSSC/[0m

        [1m[40m-LIBrary [4m[22mabspath[0m
                [40mThis option may be used to specify a directory to be searched[0m
                [40mfor global state files and user state files.  (See [4maegstate[24m(5)[0m
                [40mand [4maeustate[24m(5) for more information.)  Several library[0m
                [40moptions may be present on the command line, and are search in[0m
                [40mthe order given.  Appended to this explicit search path are[0m
                [40mthe directories specified by the [4mAEGIS_PATH[24m environment[0m
                [40mvariable (colon separated), and finally, [4m/usr/local/lib/aegis[0m
                [40mis always searched.  All paths specified, either on the[0m
                [40mcommand line or in the [4mAEGIS_PATH[24m environment variable, must[0m
                [40mbe absolute.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maeimport[24m program.[0m

        [1m[40m-VERSion [4m[22mnumber[0m
                [40mThis option may be used to specify the version number for the[0m
                [40mproject.  Version numbers are implemented as branches.  Use a[0m
                [40msingle dash ("-") as the argument if you want no version[0m
                [40mbranches created.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maeimport[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maeimport[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maeimport[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maeimport version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aeimport program comes with ABSOLUTELY NO WARRANTY; for details[0m
        [40muse the '[4maeimport[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software[0m
        [40mand you are welcome to redistribute it under certain conditions; for[0m
        [40mdetails use the '[4maeimport[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aeintegratq(1)                                                  aeintegratq(1)



[40m[1mNAME[0m
        [40maeintegratq - integrate changes into projects[0m

[1m[40mSYNOPSIS[0m
        [1m[40maeintegratq [22m[ [4moption[24m...  ] [4mproject-name[24m...[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maeintegratq[24m command is used to manage the integrations of one or[0m
        [40mmore changes in one or more projects.  Normally run via [4mcron[24m(1) or[0m
        [4m[40mat[24m(1) with the name of a single project, aeintegratq will manage all[0m
        [40moperations for integration even when [1m-Build [22mand [1m-Test [22mare required on[0m
        [40mmultiple architectures. If a change review is revoked after the queue[0m
        [40mis running aeintegratq will notice the bad state and silently move on.[0m
        [40mIf one or more changes are ended or passed after the queue is running,[0m
        [40mand -loop has been given, aeintegratq will notice the new change[s][0m
        [40mand integrate them. Additional options allow the integrator full[0m
        [40mcontrol over most aspects of queue management such as the order of[0m
        [40mintegration of multiple changes.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

   [1m[40mOption Summary[0m
        [1m[40m-h      [22mHelp, show usage information.[0m

        [1m[40m-H      [22mHelp, show usage plus all helpful comment information.[0m

        [1m[40m-a      [22mrun on Any machine (normally only IntegrationHost)[0m

        [1m[40m-s      [22mrun remote operations via ssh (default rsh)[0m

        [1m[40m-n      [22mNo action, just tell what would be done.[0m

        [1m[40m-ib [4m[22ms[24m   Specify (remote) server for ibegin.[0m

        [1m[40m-ip [4m[22ms[24m   Specify (remote) server for ipass.[0m

        [1m[40m-k      [22mKeep the scripts and report files.[0m

        [1m[40m-K      [22mKeep the temp file even if integration passes.[0m

        [1m[40m-loop   [22mLoop to process more changes if they become available before[0m
                [40maeintegratq completes.  It will stop when there is nothing[0m
                [40mmore to be done.[0m

        [1m[40m-M [4m[22mlist[24m Minimum, run given changes [4m-minimum[0m

        [1m[40m-P [4m[22mlist[24m Precious, do not [1mIFail [22mchanges in [4mlist[24m, just stop.[0m

        [1m[40m-R [4m[22mlist[24m Ready, specify order and subset, [4me.g.[24m -R 29,45[0m

        [1m[40m-S [4m[22mstage[0m
                [40mPick up at given stage (diff|build|test|integrate)[0m

        [1m[40m-c [4m[22mchange-number[0m
                [40mspecify Change to integrate at Stage[0m

        [1m[40m-p [4m[22mproject-name[0m
                [40mspecify single Project name[0m

        [40mNOTE: if custom options such as -P -R -S -c -p are given only a single[0m
        [40mproject may be integrated since the options would be meaningless to[0m
        [40mthe next project given.[0m

        [40mSome options are present only for testing and investigation.  Note[0m
        [40mthat options are rarely required for normal operations.[0m

   [1m[40mControl Options[0m
        [40mThe following options are available for special needs.  They control[0m
        [40mthe order and disposition of each change [1mawaiting_integration [22min a[0m
        [40mgiven project.[0m

        [1m[40m-R[22m[eady] [4mnumber1,number2...[0m
                [40mThis option is used to specify order or subset to integrate.[0m
                [40mOnly those changes listed will be attempted, and in exactly[0m
                [40mthe order given. This applies to queue looping if [1m-loop [22mis[0m
                [40mgiven. In particular note unless the list includes future[0m
                [40mchanges, future loops will not integrate them.[0m

                [40mUseful if a particular change must go in before another for[0m
                [40msome reason.  Or if only integrating one or two changes when[0m
                [40mseveral are [1mawaiting_integration [22min the given project.  A[0m
                [40msingle change may also be specified with the [1m-c[hange] [4m[22mnumber[0m
                [40moption, which is common for other aegis commands.  However the[0m
                [1m[40m-R [22moption allows a list and if given will override any [1m-c[0m
                [40mgiven.[0m

        [1m[40m-P[22m[recious] [4mnumber1,number2...[0m

        [1m[40m-P[22m[recious] [1mall[0m
                [40mThis option is used to specify that a particular change or[0m
                [40msubset of changes should be considered [1mprecious[22m.  It neither[0m
                [40mimplies order nor limits the queue run to that subset; it only[0m
                [40mmeans that the changes should be considered [1mprecious[22m.  Note[0m
                [40mthat at least one number (or the keyword [4mall[24m) must be given.[0m

                [40mThe concept of [1mprecious [22mmeans that if the given change were to[0m
                [40mfail anywhere in the integration process, then the process[0m
                [40msimply stops and leaves the problem change in the delta[0m
                [40mdirectory.  The [1m-IFail [22mwould not actually be executed.  This[0m
                [40mis sometimes useful to diagnose a problem which only occurs[0m
                [40mduring integrations.  It is also useful if the failure is due[0m
                [40mto a transient problem such as unreliable machines on the[0m
                [40mnetwork.  In such a case the integration can be resumed after[0m
                [40mfixing the problem.  See the [4mstage[24m options below.[0m

                [40mIf, on the other hand, a [1mprecious [22mchange makes it through the[0m
                [40mintegration process successfully, the option has no effect.[0m

        [1m[40m-M[22m[inimum] [4mnumber1,number2...[24m or [4mall[0m
                [40mIntegrate the given change[s] with the [1m-minimum [22moption.  Such[0m
                [40mchanges will be put on the end of the queue so that the last[0m
                [40mintegrations of a run will be a minimum.  This feature allows[0m
                [40mpractical use of minimum integrations without requiring[0m
                [1m[40m-minimum [22mon each and every integration.  See the section below[0m
                [40mon [4mMinimum[24m [4mintegrations[24m for more information.  If [1m-loop [22mis[0m
                [40mgiven any change[s] specified as minimum will run at the end[0m
                [40mof the loop in which they are ready, they will not be pushed[0m
                [40mto the final loop.[0m

        [1m[40m-ib[22m[server] [4mserver-name[24m or ""[0m

        [1m[40m-ip[22m[server] [4mserver-name[24m or ""[0m
                [40mTo specify a remote server on which to run [1m-ibegin [22mor [1m0[0m
                [1m[40mrespecively. These options are rarely needed, but may be[0m
                [1m[40museful if a project is hosted on a different file server and[0m
                [1m[40mhas a large baseline. By having the -ibegin run on that server[0m
                [1m[40mthe network traffic would be greatly reduced and for large[0m
                [1m[40mprojects and/or slow networks can greatly reduce the time[0m
                [1m[40mrequired for -ibegin.  The option form of giving an empty name[0m
                [1m[40mdepends on the output of df -k giving a parseable host name.[0m
                [1m[40mIf that is not true on your integration host architecture, you[0m
                [1m[40mwill have to specify the server name.[0m

        [1m[40m-display [4m[22mdisplay-value[24m [1mor ""[0m
                [40mTo specify a valid X display for use during integration[0m
                [40moperations.[0m

   [1m[40mStage Options[0m
        [40mThe following options allow [re]starting an integration which has[0m
        [40malready progressed through some stages.  This is useful to deal with[0m
        [40mfailed ([4mprecious[24m) integrations, or to finish automatically an[0m
        [40mintegration begun by hand.[0m

        [1m[40m-S[22m[tage] [1mdiff[0m

        [1m[40m-S[22m[tage] [1mbuild[0m

        [1m[40m-S[22m[tage] [1mtest[0m

        [1m[40m-S[22m[tage] [1mintegrate[0m
                [40mPick up the integration at the given [1mstage[22m.  Requires[0m
                [1m[40m-c[22m[hange] [4mnumber[24m option to specify the change number.[0m

[1m[40mAdvanced Controls[0m
        [40mThe integrator may provide for special situations such as operations[0m
        [40mrequired after [1m-Build [22mand before [1m-Test[22m, or at the end of a queue run.[0m
        [40mSuch capabilities are provided by [1mhooks [22mand [1mstrategies [22mdescribed[0m
        [40mbelow.[0m

   [1m[40mHooks[0m
        [40mThere are a set of [4mhooks[24m available which are run, if present, before[0m
        [40mand after each stage of the integration.  They can be used to help[0m
        [40mensure that the integrator actually gets some sleep while managing[0m
        [40mlarge projects.[0m

        [40mThese hooks are searched for in the directory [1m$HOME/integration_hooks[22m.[0m
        [40mNone need exist; aeintegratq will only pay attention to any that do[0m
        [40mexist.  Hooks may be any form of executable (script, etc) and are[0m
        [40mcalled with 2 arguments: [1mproject-name change-number[22m.  They run as the[0m
        [40mintegrator on the machine from which aeintegratq was started.  They[0m
        [40mare named using the project name along with a suffix according to what[0m
        [40mplace in the integration process you want them to run.[0m

        [40mNote that if a hook for project [1mfoo [22mexists it is also used for any[0m
        [40mbranches under that project.  For example, if you have provided[0m
        [1m[40mfoo.pre_ip[22m, it will be run for foo.1 and foo.1.0 as well.  If for some[0m
        [40mreason you want different (or no) action for project [1mfoo.1.0[22m, then you[0m
        [40mwould provide [1mfoo.1.0.pre_ip [22mwhich does what you wish, including[0m
        [40mnothing, effectively overriding [1mfoo.pre_ip[22m.[0m

        [40mHere is how to map particular places in the integration process to[0m
        [40mhook suffixes.[0m

                 [40m+--------------------------------------------------+[0m
                 [40m|run at time                          extension    |[0m
                 [40m+--------------------------------------------------+[0m
                 [40m|before attempting -Integrate_Begin   .pre_ib      |[0m
                 [40m|after -Integrate_Begin completes     .ib          |[0m
                 [40m|before attempting -Diff              .pre_d       |[0m
                 [40m|after -Diff completes                .d           |[0m
                 [40m|before attempting -Build             .pre_b       |[0m
                 [40m|after -Build completes               .b           |[0m
                 [40m|before attempting -Build on <arch>   .pre_<arch>b |[0m
                 [40m|after -Build on <arch> completes     .<arch>b     |[0m
                 [40m|before attempting -Test              .pre_t       |[0m
                 [40m|after -Test completes                .t           |[0m
                 [40m|before attempting -IPass             .pre_ip      |[0m
                 [40m|after -IPass completes               .ip          |[0m
                 [40m|before attempting -IFail             .pre_if      |[0m
                 [40m|after -IFail completes               .if          |[0m
                 [40m+--------------------------------------------------+[0m
        [40mThe hook program should exit with 0 if successful or 1 if not.  A non-[0m
        [40mzero exit causes the change being integrated to fail immediately[0m
        [40munless it was marked precious.[0m

        [40mNote that in most cases anything done via an [1m.ip [22mhook should probably[0m
        [40mbe done instead by the [4mipass_notify[24m command in the project attributes[0m
        [40mfile (see [4maepattr[24m(5) for more information), or the [4mbuild_time_adjust_-[0m
        [4m[40mnotify_command[24m in the project configuration file (see [4maepconf[24m(5) for[0m
        [40mmore information), but the hook can provide a temporary way to keep[0m
        [40mgoing until the permanent solution can be implemented.[0m

        [40mIn addition two special hooks, [1maeintegratq.end [22mand [1maeintegratq.fail[22m,[0m
        [40mare recognized.  They are called when [1maeintegratq [22mfinishes a queue[0m
        [40mrun.  They are called with 2 arguments like any other hook ([1mproject-[0m
        [1m[40mname change-number[22m) although both the project-name and change-number[0m
        [40mgiven are of the last change integrated and may be less than useful.[0m

        [40mThe [1m.end [22mhook is called if/when the queue run is finished and was[0m
        [40msuccessful.  Note that this does not mean that no changes failed, only[0m
        [40mthat no queue errors occurred.  This hook might be used to invoke[0m
        [40manother queue run on a different project/branch, or possibly even on[0m
        [40mthe same project, if other changes may have been ended and/or reviewed[0m
        [40mwhile the first run was in progress, see also the [1m-loop [22moption.  These[0m
        [40mconditions arise quite often with flex time engineers.  Another use of[0m
        [40mthe [1m.end [22mhook is to automatically build a new package using the newly[0m
        [40mintegrated project as source.[0m

        [40mIf queue errors were encountered, or a change failed that was marked[0m
        [4m[40mprecious[24m, then the [1m.fail [22mhook is called.  An obvious use of that hook[0m
        [40mwould be an e-mailed page to the integrator.[0m

   [1m[40mStrategy or Oops-retry[0m
        [40mSometimes a persistent build problem will plague integrations.  This[0m
        [40mcan be very annoying if it ruins an overnight run, especially if the[0m
        [40mcure is simple when it happens.  Examples of this can be timeouts due[0m
        [40mto a busy data server or other transient errors.  Note that this[0m
        [40mapplies only to [1m-Build [22mrelated problems.[0m

        [40mTo deal with such problems the integrator may provide a [4mstrategy[0m
        [40mscript specific to a project.  An executable program should be found[0m
        [40min [1m$HOME/strategy.<project_name>.  The program will be run as the[0m
        [1m[40mintegrator with the [4m[22mdelta[24m [1mdirectory as current directory.  The program[0m
        [1m[40mmay do any commands necessary to clean up and/or diagnose the error.[0m
        [1m[40mIf the script finds the problem to be transient and fix-able, it exits[0m
        [1m[40msuccessfully (with 0 status) and aeintegratq will re-launch the -Build[0m
        [1m[40mand log the re-try.  Otherwise the script should exit with a 1 and the[0m
        [1m[40mchange will fail.[0m

[1m[40mMulti-Architecture integrations[0m
        [40mFor projects which build and test on multiple architectures,[0m
        [40maeintegratq requires [4march_hosts[24m be installed and have available at[0m
        [40mleast one machine of each architecture required.  This is also true if[0m
        [40mthe host from which aeintegratq is run is of a different architecture[0m
        [40mfrom the target architecture of the project being integrated.[0m

        [40mIf you wish to take advantage of multiple architecture automatic[0m
        [40mintegrations, you can install [4march_hosts[24m or provide a more simple[0m
        [40mscript which will return a machine name according to architecture and[0m
        [40mjob type.[0m

[1m[40mMinimum integrations[0m
         [40mprovides a [1mminimum [22mintegration capability which may be used for[0m
        [40mvarious reasons.  The term [1mminimum [22mmay be a bit counter intuitive.[0m
        [40mOne might think it means to do the [1mminimum [22mamount of work, however it[0m
        [40mactually means use a [1mminimum [22mof files from the baseline in populating[0m
        [40mthe [4mdelta[24m directory.  Since no constructed files are put in the [4mdelta[0m
        [40mdirectory, this normally leads to actually building everything in the[0m
        [40mproject from sources and, as such, might be considered the most robust[0m
        [40mof builds.[0m

        [40mNote that any change which removes a file, whether by [4maerm[24m or [4maemv[24m,[0m
        [40mresults in an implicit [1mminimum [22mintegration.  This is intended to[0m
        [40mensure nothing in the project references the removed file.[0m

        [40mA project may adopt a policy that a product release should be based on[0m
        [40ma minimum integration.  Such a policy may be a reflection of local[0m
        [40mconfidence, or lack thereof, in the project's DMT (Dependency[0m
        [40mMaintenance Tool) or build system.  Or it may be based on a validation[0m
        [40mprocess wishing to make a simple statement on how the released package[0m
        [40mwas produced.[0m

        [40mAnother, more transient, reason a to require a minimum integration[0m
        [40mmight be when upgrading a third party library, compiler or maybe even[0m
        [40mOS level.  Any of these events would signal the need for a minimum[0m
        [40mintegration to ensure everything is rebuilt using the new resources.[0m
        [40mThis can be done with minimum overhead using the [1m-M [22moption as[0m
        [40mdescribed above.[0m

        [40mThe cost of a [1mminimum [22mintegration varies according to type and size of[0m
        [40mthe project.  For very large projects, especially those building large[0m
        [40mnumbers of binaries, the cost can be large.  However large projects[0m
        [40malso require significant time to fully populate the delta directory.[0m
        [40mA minimum integration only copies those files under aegis control,[0m
        [40mskipping all "produced" files.  In the case where a file upon which[0m
        [40meverything depends is changed, everything will be built anyway so the[0m
        [40mcopy of the already built files is a waste of time.  This means that[0m
        [40msometimes a minimum can be as cheap as a normal integration.[0m

[1m[40mManual Tests[0m
         [40mallows tests to be defined as [4mmanual[24m which may be necessary if the[0m
        [40mtest requires human interaction or some transient resource. Such tests[0m
        [40mcan be problematic for automatic integrations and generally must have[0m
        [40msome means to pass without running during integrations. For this, and[0m
        [40mother, reasons most sites seek to avoid [4mmanual[24m tests. There are a[0m
        [40mnumber of ways to code a test such that it will pass automatically[0m
        [40mduring integrations. Just one example for shell script tests might be:[0m


        [40mCSTATE=`aesub -p $AEGIS_PROJECT -c $AEGIS_CHANGE '${state}'`[0m
        [40mif [ "$CSTATE" = "being_integrated" ][0m
        [40mthen[0m
            [40mecho "`basename $0` passes during integration"[0m
            [40mexit 0[0m
        [40mfi[0m


[1m[40mOptional Support Programs[0m
        [40mThere are some programs which aeintegratq will use if they are[0m
        [40minstalled.[0m

        [40m+o [4march_hosts[24m was mentioned previously.  It is optional only if your[0m
        [40mprojects and your  file server are of a single architecture.[0m

        [40m+o [4maelogres[24m may enhance the information provided in [4m-IFail[24m entries.[0m
        [40mNormally all you get is the last 10 lines of the log file, which is[0m
        [40mnot bad if tests fail, but can be terrible for failed builds.  If you[0m
        [40mprovide a program named [4maelogres[24m which knows how to extract a better[0m
        [40msuccinct report of problems, the output of that program will be used[0m
        [40minstead of the simple tail.  It is called with a [4m-i[24m option.[0m

        [40m+o [1msound_all_machines[22m, if available, will be called when integrations[0m
        [40meither pass or fail.  It can be helpful to announce the fact that an[0m
        [40mintegration has finished.  If it passed, developers will probably want[0m
        [40mto do an [1maed [22mto bring their changes up to date.  The audio[0m
        [40mannouncement provides another timely hint.[0m

        [40mThe sound files are searched for in the /usr/local/com/aegis/sounds[0m
        [40mdirectory.  They will have endings of [4m_pass[24m and [4m_fail[24m according to the[0m
        [40mresults of a given attempt.  Two sound files are required:[0m
        [4m[40mintegration_pass[24m and [4mintegration_fail[24m.  Others will be used if[0m
        [40mprovided to customize the sounds so that each developer may have one[0m
        [40mor more personal sounds.  If a file named [4m<developer>_pass[24m is located,[0m
        [40mit will be used.  If a set of files exist named [4m<developer_pass.[0-9][0m
        [40mthey will be used in random sequence.  The same search rule applies to[0m
        [4m[40m_fail[24m sets.  The [4msound_all_machines[24m program may use a host list and[0m
        [40mplay the sound file on each machine or, assuming that other audio[0m
        [40mcapabilities exist, might do any form of announcement desired.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maeintegratq[24m command will exit with a status of 1 on any error.[0m
        [40mThe [4maeintegratq[24m command will only exit with a status of 0 if there are[0m
        [40mno errors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mFILES[0m
        [40mControl files are searched for in the [4m$HOME[24m directory.  They are named[0m
        [40mstrategy.<project>, They need not exist if no special action is[0m
        [40mnecessary.[0m

        [40mThe hook scripts are searched for in the [4m$HOME/integration_hooks[0m
        [40mdirectory.  They are named <project>.<stage>.  Also [4maeintegratq.end[0m
        [40mand [4maeintegratq.fail[24m.  These hooks also need not exist if no special[0m
        [40maction is desired.[0m

[1m[40mCOPYRIGHT[0m
        [40maeintegratq version 4.24.3.D001[0m
        [40mCopyright (C) 1998-2005 Endocardial Solutions, Inc.[0m

        [40mThe aeintegratq program comes with ABSOLUTELY NO WARRANTY; This is[0m
        [40mfree software and you are welcome to redistribute it under certain[0m
        [40mconditions;[0m

[1m[40mAUTHOR[0m
        [40m'[0m



        aegis -Integrate_Pass(1)                              aegis -Integrate_Pass(1)



[40m        [1mNAME[0m
                [40maegis integrate pass - pass a change integration[0m
        [1m[40mSYNOPSIS[0m
        [4m[40moption[24m..[1ma[22m.[1megis -Integrate_Pass [22m[[0m
        [40m][0m
        [1m[40maegis[0m
        [1m[40m-Integrate_Pass[0m
        [1m[40m-List[0m
        [40m[[0m
        [4m[40moption[24m...[0m
        [40m][0m
        [1m[40maegis[0m
        [1m[40m-Integrate_Pass[0m
        [1m[40m-Help[0m

        [1m[40mDESCRIPTION[0m
        [4m[40maegis[24m   The[0m
        [4m[40m-Integrate_Pass[0m
        [40mcommand is used to[0m
        [40mnotify aegis that a change has passed integration.[0m
        [40mThe change is advanced[0m
        [40mfrom the[0m
        [4m[40mbeing[24m [4mintegrated[0m
        [40mstate to the[0m
        [4m[40mcompleted[0m
        [40mstate.[0m



          [40mbeing[0m
[40m        [0m
[40m        integrated[0m






             [40m|[0m
             [40m|[0m
             [40m|integrate[0m

              [40mpass[0m




        [40mcompleted[0m












                [40mThis command updates the file histories, so that future[0m
        [4m[40maecp[24m(1)[0m
        [40mcommands may extract previous file versions from history,[0m
        [40mand so that future[0m
        [4m[40maed[24m(1)[0m
        [40mcommands may merge out-of-date files.[0m
        [40mThe history is updated using the[0m
        [4m[40mhistory_create_command[0m
        [40mand[0m
        [4m[40mhistory_put_command[0m
        [40mfields of the project[0m
        [40mconfiguration[0m
        [40mfile (see[0m
        [4m[40maepconf[24m(5)[0m
        [40mfor more information).  The integrate pass will abort with an error if[0m
        [40mone of these history commands should fail, [4me.g.[24m by running out of disk[0m
        [40mspace.  If this should happen, the change will remain in the[0m
        [4m[40mbeing[24m [4mintegrated[0m
        [40mstate, and the integration directory is unaltered.[0m

                [40mOnce the history has been updated, the integration directory is renamed[0m
        [40mas the baseline directory, and the old baseline directory is deleted.[0m

                [40mOnce integrate pass is complete[0m
        [40mthe change is no longer assigned to the current user.[0m

           [1m[40mHistory Tools Modify Files[0m
        [40mthe fileMawnhyenhiisttoirsyctoomomlistt(e[4me[24md[4m.[24m.[4mg.[24mTRhCiSs aunsduaSlClCyS)recqaunirmeosditfhye tuhsee coofntsepnetcsifoifc[0m
        [40m"keyword" strings, and there are usually options to turn this behavior[0m
        [40moff, but users familiar with version control tools (as opposed to[0m
        [40mconfiguration management systems) will often use these features.[0m
        [40mThe problem is that if the commit changes the file, the source file in[0m
        [40mthe repository now no longer matches the object file in the repository.[0m
        [4m[40mI.e.[0m
        [40mthe history tool has compromised the referential integrity of the[0m
        [40mrepository.  By default, a fatal error is emitted if the file is changed[0m
        [40mby the check-in, however this can be modified to a be warning or even[0m
        [40mignored completely                                                                                                                                               see the[0m
        [4m[40mhistory_put_trashes_file[0m
        [40mfield of[0m
        [4m[40maepconf[24m(5)[0m
        [40mfor more information.[0m

           [1m[40mFile Modification Times[0m
        [40mintegratTihoen m(osdeiefication times of all files modified since the beginning of[0m
        [4m[40maeib[24m(1)[0m
        [40mfor more information) are updated to be since the beginning of integrate[0m
        [40mpass.  The order of modification times will be preserved, however the[0m
        [40mtime range will be compressed to the greatest extent possible.  This[0m
        [40mensures that subsequent development builds will notice that baseline[0m
        [40mfiles have changed.[0m

                [40mNote that if there are many new files with all different timestamps in[0m
        [40mthe integration directory, and if the number of files with different[0m
        [40mtimestamps exceeds the number of seconds since the start of the[0m
        [40mintegrate-pass command, Aegis may have to set file modification times[0m
        [40minto the future.[0m

                [40mThe [4mbuild_time_adjust[24m field of the project [4mconfig[24m file[0m
        [40mcontrols Aegis' behavior in this case.[0m
        [40m(See [4maepconf[24m(5) for more information.)[0m
        [40mThere are three settings:[0m

                [40madjust_and_sleep[0m
        [40mThis setting, which is the default, causes Aegis to sleep until the file[0m
        [40mmodification times would no longer be in the future.[0m
        [40mThis avoids both development build problems and integration build problems,[0m
        [40mboth of which which can arise as a result "interesting" file modification times.[0m

                [40madjust_only[0m
        [40mAegis will issue a warning that the file modification times extend[0m
        [40minto the future, but will not sleep.  This may cause integration[0m
        [40mbuild problems, particularly if you are using [4maeintegratq[24m(1).[0m
        [40mDevelopment builds may perform redundant builds, however [4maet[24m [4m-reg[0m
        [40mshould not produce false negatives.[0m

                [40mdont_adjust[0m
        [40mThis is highly inadvisable.[0m
        [40mIt is provided solely for some very rare circumstances.[0m
        [40mThis setting causes Aegis not to adjust the file modification times at all.[0m
        [40mThis can have very unhappy side-effects, especially of the integration[0m
        [40mbuild was [4mbefore[24m one or more development builds                                                                                                            the commonest[0m
        [40msymptom being that development builds do not always cause a relink of[0m
        [40mthe necessary executables, and [4maet[24m [4m-reg[24m may give false negatives.[0m
        [40mIt is [1mstrongly [22mrecommended that you do not use this setting.[0m

                [40mIf you use [4mcook[24m(1), see the [4mtime-adjust-back[24m flag for how[0m
        [40mto compress the time range even further.  This usually makes the sleep (or the[0m
        [40mwarning period) significantly shorter.[0m

           [1m[40mNotification[0m
        [40mhas ocurOrnedsuacncdesasfftuelr ctohmepldeattiaobnasoefhtahsisbeceonmmuapndda,teadf,tetrhethe directory rename[0m
        [4m[40mintegration_pass_notify_command[24m field of the project[0m
        [40mattributes is run, if set.  See [4maepattr[24m(5) and [4maepa[24m(1)[0m
        [40mfor more information.[0m
        [40mThis command is run as the project owner.[0m

                [40mSome compilers bury absolute path names into object files and executables.[0m
        [40mThe renaming of the integration directory to become the new baseline[0m
        [40mbreaks these paths.  The above command is passed an environment variable[0m
        [40mcalled AEGIS_INTEGRATION_DIRECTORY so that the appropriate symlink[0m
        [40mmay be placed, if desired.[0m

                [40mOther commands run by this command include the[0m
        [4m[40mhistory_create_command[24m, [4mhistory_put_command[24m and[0m
        [4m[40mhistory_query_command[24m fields of the project [4mconfig[24m file.[0m
        [40mSee [4maepconf[24m(5) for more information.[0m

        [1m[40mTHE BASELINE LOCK[0m
        [40mconsisteTnhtesbtaasteelifnoer ltohcekdiusrautsieodn toof ecnosmumraendtshawthitchhenbeaesdeltionereraedmatihnes in a[0m
        [40mcontents of files in the baseline.[0m

                [40mThe commands which require the baseline to be consistent[0m
        [40m(these include the[0m
        [4m[40maeb[24m(1),[0m
        [4m[40maecp[24m(1)[0m
        [40mand[0m
        [4m[40maed[24m(1)[0m
        [40mcommands)[0m
        [40mtake a baseline[0m
        [4m[40mread[0m
        [40mlock.[0m
        [40mThis is a non-exclusive lock,[0m
        [40mso the concurrent development of changes is not hindered.[0m

                [40mThe command which modifies the baseline,[0m
        [4m[40maeipass[24m(1),[0m
        [40mtakes a baseline[0m
        [4m[40mwrite[0m
        [40mlock.[0m
        [40mThis is an exclusive lock,[0m
        [40mforcing[0m
        [4m[40maeipass[24m(1)[0m
        [40mto block until there are no active baseline read locks.[0m

                [40mIt is possible that[0m
        [40mone of the above development commands[0m
        [40mwill block until an in-progress[0m
        [4m[40maegis[24m [4m-Integrate_PASS[0m
        [40mcompletes.[0m

        [40mThis is usually of short duration while the project history is updated.[0m
        [40mThe delay is essential so that these commands receive a consistent view[0m
        [40mof the baseline.[0m
        [40mNo other integration command will cause the above development commands[0m
        [40mto block.[0m

                [40mWhen aegis' branch functionality is in use,[0m
        [40ma read (non-exclusive) lock is taken on the branch baseline and also[0m
        [40meach of the "parent" baselines.[0m
        [40mHowever,[0m
        [40ma baseline write (exclusive) lock is only taken on the branch baseline[0m
        [40mthe "parent" baselines are only read (non-exclusive) locked.[0m

           [1m[40mThe History Lock[0m
        [40mpossibleWhfeorreiandperpoejnedcetnthaisntaegnruamtbeerpaosfs bcroamnmcahnedss afcotrivdeifsfiemruelnttanberoaunsclhye,s it is[0m
        [40mto be issued very close together.[0m
        [40mThe is an exclusive[0m
        [4m[40mhistory[24m [4mlock[0m
        [40mtaken by integrate pass to ensure that only one branch is[0m
        [40mupdating the file history at a time,[0m
        [40mthus preventing history file corruption.[0m

        [1m[40mTEST CORRELATIONS[0m
        [40msuggest Tshueit"aabelgeisre-gTreesstsi-oSnUGtgeesstts"fcoormmyaonudr mcahyanbgee,usbeadsetdoohnavteheaesgoiusrce[0m
        [40mfiles in your change.  This automatically focuses testing effort[0m
        [40mto relevant tests, reducing the number of regression tests[0m
        [40mnecessary to be confident that you have not introduced a bug.[0m

                [40mThe test correlations are generated by the "aegis[0m
        [40m-Integrate_Pass" command, which associates each test in the[0m
        [40mchange with each source file in the change.  Thus, each source[0m
        [40mfile accumulates a list of tests which have been associated with[0m
        [40mit in the past.  This is not as exact as code coverage analysis,[0m
        [40mbut is a reasonable approximation in practice.[0m

                [40mThe[0m
        [4m[40maecp[24m(1)[0m
        [40mand[0m
        [4m[40maenf[24m(1)[0m
        [40mcommands are used to associate files with a change.  While they[0m
        [40mdo not actively perform the association, these are the files[0m
        [40mused by[0m
        [4m[40maeipass[24m(1)[0m
        [40mand[0m
        [4m[40maet[24m(1)[0m
        [40mto determine which source files are associated with which tests.[0m

           [1m[40mTest Correlation Accuracy[0m
        [40mtests arAesseuvmeinnlgy tdhiasttrtihbeutteedstaicnrgoscsortrheelaftuinocntsioanrespaaccceu,rattheeraend that the[0m
        [40mwill be a less than [4m1/number[24m chance that a relevant test[0m
        [40mhas not been run by the "aegis -Test -SUGgest [4mnumber[24m"[0m
        [40mcommand.  A small amount of noise is added to the test[0m
        [40mweighting, so that unexpected things are sometimes tested, and[0m
        [40mthe same tests are not run every time.[0m

                [40mTest correlation accuracy can be improved by ensuring that:[0m

        [40mEach cha+onge should be strongly focused, with no gratuitous file[0m
        [40minclusions.  This avoids spurious correlations.[0m

        [40mEach ite+om of new functionality should be added in an individual change,[0m
        [40mrather than several together.  This strongly correlates tests with[0m
        [40mfunctionality.[0m

        [40mEach bug+oshould be fixed in an individual change, rather than several[0m
        [40mtogether.  This strongly correlates tests with functionality.[0m

        [40mTest cor+orelations will be lost if files are moved.  This is because[0m
        [40mcorrelations are by name.[0m

                [40mThe best way for tests to correlate accurately with source files is when[0m
        [40ma change contains a test and exactly those files relating to the[0m
        [40mfunctionality under test.  Too many spurious files will weaken the[0m
        [40musefulness of the testing correlations.[0m

        [1m[40mMETRICS[0m
                [40mAegis is capable of recording metrics as part of the file attributes[0m
        [40ma changeo.f This allows various properties of files to be recorded for[0m
        [40mlater trend analysis, or other uses.[0m

                [40mThe specific metrics are not dictated by Aegis.  It is expected that[0m
        [40mthe integration build will create a metrics file for each of the source[0m
        [40mfiles the change.  These metrics files must be in the format specified[0m
        [40mby [4maemetrics[24m(5).[0m

                [40mThe name of the metrics file defaults to "[4mfilename[24m[1m,S[22m",[0m
        [40mhowever it may be varied, by setting the [4mmetrics_filename_pattern[0m
        [40mfield of the project [4mconfig[24m file.  See [4maepconf[24m(5) for more[0m
        [40minformation.[0m

                [40mIf such a metrics file exists, for each source file in a change, it will[0m
        [40mbe read and remembered at integrate pass time.  If it does not exist,[0m
        [40mAegis assumes there are no relevant metrics for that file, and proceeds[0m
        [40msilently                                                                                                                                             it is not an error.[0m

        [1m[40mOPTIONS[0m
                [40mThe following options are understood:[0m
                [1m[40m-Change [4m[22mnumber[0m
        [40mThis option may be used to specify a particular change within a project.[0m
        [40mSee [4maegis[24m(1) for a complete description of this option.[0m

                [1m[40m-Help[0m
                        [40mThis option may be used to obtain more information about how to use the[0m
        [4m[40maegis[0m
        [40mprogram.[0m

                [1m[40m-List[0m
                        [40mThis option may be used to obtain a list of suitable subjects for this[0m
        [40mcommand.[0m
        [40mThe list may be more general than expected.[0m

                [1m[40m-Not_Logging[0m
                        [40mThis option may be used to disable the automatic logging of[0m
        [40moutput and errors to a file.[0m
        [40mThis is often useful when several aegis commands are combined[0m
        [40min a shell script.[0m

                [1m[40m-Project [4m[22mname[0m
        [40mThis option may be used to select the project of interest.[0m
        [40mWhen no[0m
        [1m[40m-Project[0m
        [40moption is specified,[0m
        [40mthe[0m
        [4m[40mAEGIS_PROJECT[0m
        [40menvironment variable is consulted.[0m
        [40mIf that does not exist,[0m
        [40mthe user's[0m
        [4m[40m$HOME/.aegisrc[0m
        [40mfile is examined for a default project field (see[0m
        [4m[40maeuconf[24m(5)[0m
        [40mfor more information).[0m
        [40mIf that does not exist,[0m
        [40mwhen the user is only working on changes within a single project,[0m
        [40mthe project name defaults to that project.[0m
        [40mOtherwise,[0m
        [40mit is an error.[0m

                [1m[40m-REAson [4m[22mtext[0m
        [40mThis option may be used to attach a comment to the change history[0m
        [40mgenerated by this command.  You will need to use quotes to insulate the[0m
        [40mspaces from the shell.[0m

                [1m[40m-TERse[0m
                        [40mThis option may be used to cause listings to[0m
        [40mproduce the bare minimum of information.[0m
        [40mIt is usually useful for shell scripts.[0m

                [1m[40m-Verbose[0m
                        [40mThis option may be used to cause aegis to produce more output.[0m
        [40mBy default aegis only produces output on errors.[0m
        [40mWhen used with the[0m


        [1m[40m-List[0m
        [40moption[0m
        [40mthis option causes column headings to be added.[0m

                [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for access[0m
        [40mlocks, if they cannot be obtained immediately.[0m
        [40mDefaults to the user's[0m
        [4m[40mlock_wait_preference[0m
        [40mif not specified, see[0m
        [4m[40maeuconf[24m(5)[0m
        [40mfor more information.[0m

                [1m[40m-No_Wait[0m
                        [40mThis option may be used to require Aegis commands to emit a fatal error[0m
        [40mif access locks cannot be obtained immediately.[0m
        [40mDefaults to the user's[0m
        [4m[40mlock_wait_preference[0m
        [40mif not specified, see[0m
        [4m[40maeuconf[24m(5)[0m
        [40mfor more information.[0m

                [40mAll options may be abbreviated[0m
        [40mthe abbreviation is documented as the upper case letters,[0m
        [40mall lower case letters and underscores (_) are optional.[0m
        [40mYou must use consecutive sequences of optional letters.[0m

                [40mAll options are case insensitive,[0m
        [40myou may type them in upper case or lower case or a combination of both,[0m
        [40mcase is not important.[0m

                [40mFor example:[0m
        [40mthe arguments "-project, "-PROJ" and "-p" are[0m
        [40mall interpreted to mean the [1m-Project [22moption.[0m
        [40mThe argument "-prj" will not be understood,[0m
        [40mbecause consecutive optional characters were not supplied.[0m

                [40mOptions and other command line arguments may be[0m
        [40mmixed arbitrarily on the command line,[0m
        [40mafter the function selectors.[0m

                [40mThe GNU long option names are understood.[0m
        [40mSince all option names for[0m
        [4m[40maegis[0m
        [40mare long,[0m
        [40mthis means ignoring the extra leading '-'.[0m
        [40mThe "[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

        [1m[40mRECOMMENDED ALIAS[0m
        [40mcsh%    The recommended alias for this command is                                                                                                alias aeipass 'aegis -ipass \!* -v'[0m
        [40msh$                                                                                                                                              aeipass(){aegis -ipass "$@" -v}[0m

        [1m[40mERRORS[0m
        [40mthe chanIgte iiss annoterarsosriginfed to the current user.[0m
        [40mIt is an error if[0m
        [40mThe change is not in the[0m
        [4m[40mbeing[24m [4mintegrated[0m
        [40mstate.[0m
        [40mIt is an error if[0m
        [40mthere has been no successful[0m
        [4m[40m'aegis[24m [4m-Build'[0m
        [40mcommand for the integration.[0m
        [40mIt is an error if[0m
        [40mthere has been no successful[0m
        [4m[40m'aegis[24m [4m-Test'[0m
        [40mcommand for the integration.[0m
        [40mIt is an error if[0m
        [40mthere has been no successful[0m
        [4m[40m'aegis[24m [4m-Test[24m [4m-BaseLine'[0m
        [40mcommand for the integration.[0m

        [1m[40mEXIT STATUS[0m
        [4m[40maegis[24m   The[0m
        [40mcommand will exit with a status of 1 on any error.[0m
        [40mThe[0m
        [4m[40maegis[0m
        [40mcommand will only exit with a status of 0 if there are no errors.[0m

        [1m[40mENVIRONMENT VARIABLES[0m
        [40mthis comSmeaend[4ma[24m.[4megis[24m(1) for a list of environment variables which may affect[0m
        [40mSee [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for[0m
        [40mall commands executed by Aegis.[0m

        [1m[40mSEE ALSO[0m
                [4m[40maeib[24m(1) begin integration of a change[0m
                [4m[40maeifail[24m(1)[0m
                        [40mfail integration of a change[0m

                [4m[40maemeasure[24m(1)[0m
                        [40msimple file metrics[0m

                [4m[40maemetrics[24m(5)[0m
                        [40mmetrics values file format[0m

                [4m[40maeuconf[24m(5)[0m
                        [40muser configuration file format[0m

        [1m[40mCOPYRIGHT[0m
        [40mCopyrighateg(iCs) v1e9r9s1i,on1949.22,4.139.9D30,011994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter Miller[0m

                [40mThe aegis program comes with ABSOLUTELY NO WARRANTY[0m
        [40mfor details use the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m
        [40mThis is free software[0m
        [40mand you are welcome to redistribute it under certain conditions[0m
        [40mfor details use the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

        [1m[40mAUTHOR[0m
                [40mtab([0m
        [40ml r l.  )[0m
        [40mPeter Miller                                                                                                                                                     E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*                                                                                                                                                               WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -List(1)                                                  aegis -List(1)



[40m[1mNAME[0m
        [40maegis list - list (possibly) interesting things[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -List [22m[ [4moption[24m...  ] [4mlist-name[0m
        [1m[40maegis -List -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -List -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-List[24m command is used to list information.  There are a[0m
        [40mnumber of possible [4mlist-name[24ms, as follows (abbreviations as for[0m
        [40mcommand line options):[0m

        [40mAdministrators[0m
                [40mList the administrators of a project.[0m

        [40mBranch_Details[0m
                [40mList full information about all the changes in the branch in[0m
                [40mlarge format.  This listing will recurse down the full branch[0m
                [40mtree.[0m

        [40mChange_Details[0m
                [40mList full information about a change in large format.[0m

        [40mChange_Files[0m
                [40mList all files in a change.  The verbose version includes[0m
                [40mdetails such as the action being taken, the edit number of the[0m
                [40mfile, and whether it's being moved.  The terse version only[0m
                [40mlists the files names (and omits removed files), this is[0m
                [40museful for shell scripts and interfacing with build tools.[0m

        [40mChange_File_History[0m
                [40mThis listing shows the history of each file in the change.  It[0m
                [40mincludes each delta number (so that you may reproduce it) and[0m
                [40mbrief description, of each change which affected each file.[0m

        [40mChange_File_INventory[0m
                [40mThis listing shows the filenames and their corresponding[0m
                [40mUUIDs.  When a file is renamed, its UUID remains constant.[0m
                [40m(If the UUID column has the filename in it, this is a[0m
                [40mbackwards compatibility value, for accessing the file[0m
                [40mhistory.)[0m

        [40mChange_History[0m
                [40mList the history of a change.[0m

        [40mChange_INventory[0m
                [40mList the changes of a project with their UUIDs.[0m

        [40mChanges[0m
                [40mList the changes of a project.  The verbose version includes[0m
                [40mdetails such as the state of the change and it's brief[0m
                [40mdescription.  The terse version lists only the change numbers,[0m
                [40mwhich is good for shell scripts.[0m

        [40mDefault_Change[0m
                [40mList the default change for the specified user (defaults to[0m
                [40mthe current user if no user specified).[0m

        [40mDefault_Project[0m
                [40mList the default project for the specified user (defaults to[0m
                [40mthe current user if no user specified).[0m

        [40mDevelopers[0m
                [40mList the developers of a project.[0m

        [40mINComplete[0m
                [40mList the changes between the [4mawaiting[24m [4mreview[24m and [4mbeing[0m
                [4m[40mintegrated[24m states, inclusive.  Defaults to all users if no[0m
                [40muser name specified.[0m

        [40mIntegrators[0m
                [40mList the integrators of a project.[0m

        [40mList_List[0m
                [40mList all lists available.[0m

        [40mLocks[0m
                [40mList all currently active locks.[0m

        [40mOutstanding_Changes[0m
                [40mList all changes owned by the specified user that are not yet[0m
                [40mcompleted (default to all users if no user specified).[0m

        [40mAll_Outstanding_Changes[0m
                [40mList all changes not yet completed, for all projects.[0m

        [40mProject_Details[0m
                [40mList full information about all the changes in the project in[0m
                [40mlarge format.  This listing will recurse down the full branch[0m
                [40mtree below the project.[0m

        [40mProject_Files[0m
                [40mList all files in the baseline of a project.  The verbose[0m
                [40mversion includes details such as the action being taken, the[0m
                [40medit number of the file.  The terse version only lists the[0m
                [40mfiles names (and omits removed files), this is useful for[0m
                [40mshell scripts and interfacing with build tools.  If a change[0m
                [40mnumber is given, files included in the change are omitted from[0m
                [40mthe list (giving the change's perspective on what the project[0m
                [40mfiles are).[0m

        [40mProject_File_INventory[0m
                [40mThis listing shows the filenames and their corresponding[0m
                [40mUUIDs.  When a file is renamed, its UUID remains constant.[0m
                [40m(If the UUID column has the filename in it, this is a[0m
                [40mbackwards compatibility value, for accessing the file[0m
                [40mhistory.)[0m

        [40mProject_History[0m
                [40mList the integration history of a project.[0m

        [40mProjects[0m
                [40mList all projects.[0m

        [40mProject_Aliases[0m
                [40mList all project aliases.  If you use the [1m-Project [22mcommand[0m
                [40mline option, the list will only include aliases of the[0m
                [40mspecified project, or the project of the specified alias.[0m

        [40mReviewers[0m
                [40mList the reviewers of a project.[0m

        [40mState_File_Name[0m
                [40mPrints the absolute path of the project's or change's state[0m
                [40mfile.  Useful for cookbooks and makefiles.[0m

        [40mUsers_Changes[0m
                [40mList of changes owned by the specified user (defaults to[0m
                [40mcurrent user if no user specified).[0m

        [40mVersion[0m
                [40mList version of a project or change.  This includes the major[0m
                [40mand minor version number, and the previous version number if[0m
                [40mavailable.  The list of copyright years is also printed.[0m

        [40mMost of these lists are available from other aegis functions.  Many[0m
        [40maegis functions provide more specific lists.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-PAGer  [22mThe output of listings and help is piped through the pager[0m
                [40mcommand given in the PAGER environment variable (or [4mmore[24m if[0m
                [40mnot set).  This is the default if the command is in the[0m
                [40mforeground, and the output is a TTY.  This option may be used[0m
                [40mto override any preference specified in the [4maeuconf[24m(5) file.[0m

        [1m[40m-No_PAGer[0m
                [40mThis option may be used to ensure that the output of listings[0m
                [40mand help is not piped through a pager command.  This is the[0m
                [40mdefault if the command is in the background, or if the output[0m
                [40mis not a TTY.  This option may be used to override any[0m
                [40mpreference specified in the [4maeuconf[24m(5) file.[0m

        [1m[40m-Page_Length [4m[22mnumber[0m
                [40mThis option may be used to set the page length of listings.[0m
                [40mThe default, in order of preference, is obtained from the[0m
                [40msystem, from the [4mLINES[24m environment variable, or set to 24[0m
                [40mlines.[0m

        [1m[40m-Page_Width [4m[22mnumber[0m
                [40mThis option may be used to set the page width of listings and[0m
                [40merror messages.  The default, in order of preference, is[0m
                [40mobtained from the system, from the [4mCOLS[24m environment variable,[0m
                [40mor set to 79 characters.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-UNFormatted[0m
                [40mThis option may be used with most listings to specify that the[0m
                [40mcolumn formatting is not to be performed.  This is useful for[0m
                [40mshell scripts.[0m

        [1m[40m-Page-Header[0m
                [40mThis option requests that page headings be present in listings[0m
                [40mand reports.  This is the default.[0m

        [1m[40m-No-Page-Header[0m
                [40mThis option requests that page headings be omitted from[0m
                [40mlistings and reports.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias ael 'aegis -l \!* -v'[0m
        [40msh$     ael(){aegis -l "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the list name given is unknown.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maedb[24m(1) begin development of a change (listing option)[0m

        [4m[40maeib[24m(1) begin integration of a change (listing option)[0m

        [4m[40maelcf[24m(1)[0m
                [40mlist change files[0m

        [4m[40maelpf[24m(1)[0m
                [40mlist project files[0m

        [4m[40maer[24m(1)  report generator[0m

        [4m[40maerpass[24m(1)[0m
                [40mpass review of a change (listing option)[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

        [4m[40maels[24m(1) annotated directory listing[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aelcf(1)                                                              aelcf(1)



[40m[1mNAME[0m
        [40maelcf - list change files[0m

[1m[40mSYNOPSIS[0m
        [1m[40maelcf [22m[ [4moption[24m...  ][0m
        [1m[40maelcf -Help[0m
        [1m[40maelcf -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maelcf[24m command is used to list the files which make up a change.[0m
        [40mThe file names are printed one per line on the output.[0m

        [40mIf there are no files matching your criteria (see below) the output[0m
        [40mwill be empty, and no error will be issued.[0m

        [40mThis is very similar to the [4maegis[24m [4m-l[24m [4mcf[24m listing, but it only lists[0m
        [40mfile names, it lists no other attributes, and it is considerably[0m
        [40mfaster.[0m

        [40mIf your filenames have newlines in them, you have a problem.  You can[0m
        [40muse any of the [4mposix_filename_charset[24m, [4mdos_filename_required[24m,[0m
        [4m[40mwindows_filename_required[24m, or [4mshell_safe_filenames[24m fields in your[0m
        [40mproject configuration file to prevent this.  See [4maenf[24m(1) and[0m
        [4m[40maepconf[24m(5) for more information.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-ACtion [4m[22mname[0m
                [40mThis option may be used to specify which file actions you are[0m
                [40minterested in.  Valid values are "create", "modify", "remove",[0m
                [4m[40metc[24m, as may be observed in the Action column of the [4maegis[24m [4m-l[0m
                [4m[40mpf[24m listing.  The default is to list files with all actions[0m
                [40mexcept removed files.  You may use this option more than once.[0m

        [1m[40m-Not_ACtion [4m[22mname[0m
                [40mThis option may be used to exclude an action from the listing.[0m
                [40mIf no actions are explicitly included or excluded, the default[0m
                [40mis to exclude removed files.  You may use this option more[0m
                [40mthan once.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maelcf[24m program.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-USAge [4m[22mname[0m
                [40mThis option may be used to specify which file usages you are[0m
                [40minterested in.  Valid values are "source", "test", [4metc[24m, as may[0m
                [40mbe observed in the Usage column of the [4maegis[24m [4m-l[24m [4mpf[24m listing.[0m
                [40mThe default is to list files with all usages.  You may use[0m
                [40mthis option more than once.[0m

        [1m[40m-Not_USAge [4m[22mname[0m
                [40mThis option may be used to exclude usages from the listing.[0m
                [40mThe default is to exclude no usages.  You may use this option[0m
                [40mmore than once.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maelcf[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maelcf[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maelcf[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40mael[24m(1)  list interesting things[0m

        [4m[40maelpf[24m(1)[0m
                [40mlist project files[0m

        [4m[40maenf[24m(1) add new files to be created by a change[0m

        [4m[40maepconf[24m(5)[0m
                [40mproject configuration file[0m

[1m[40mCOPYRIGHT[0m
        [40maelcf version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aelcf program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maelcf[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maelcf[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



GPL(GNU)                   Free Software Foundation                   GPL(GNU)



[40m                              GNU GENERAL PUBLIC LICENSE[0m
                               [40mVersion 3, 29 June 2007[0m

        [40mCopyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>[0m
        [40mEveryone is permitted to copy and distribute verbatim copies of this[0m
        [40mlicense document, but changing it is not allowed.[0m

                                       [40mPreamble[0m

        [40mThe GNU General Public License is a free, copyleft license for[0m
        [40msoftware and other kinds of works.[0m

        [40mThe licenses for most software and other practical works are designed[0m
        [40mto take away your freedom to share and change the works.  By contrast,[0m
        [40mthe GNU General Public License is intended to guarantee your freedom[0m
        [40mto share and change all versions of a program -- to make sure it[0m
        [40mremains free software for all its users.  We, the Free Software[0m
        [40mFoundation, use the GNU General Public License for most of our[0m
        [40msoftware; it applies also to any other work released this way by its[0m
        [40mauthors.  You can apply it to your programs, too.[0m

        [40mWhen we speak of free software, we are referring to freedom, not[0m
        [40mprice.  Our General Public Licenses are designed to make sure that you[0m
        [40mhave the freedom to distribute copies of free software (and charge for[0m
        [40mthem if you wish), that you receive source code or can get it if you[0m
        [40mwant it, that you can change the software or use pieces of it in new[0m
        [40mfree programs, and that you know you can do these things.[0m

        [40mTo protect your rights, we need to prevent others from denying you[0m
        [40mthese rights or asking you to surrender the rights.  Therefore, you[0m
        [40mhave certain responsibilities if you distribute copies of the[0m
        [40msoftware, or if you modify it: responsibilities to respect the freedom[0m
        [40mof others.[0m

        [40mFor example, if you distribute copies of such a program, whether[0m
        [40mgratis or for a fee, you must pass on to the recipients the same[0m
        [40mfreedoms that you received.  You must make sure that they, too,[0m
        [40mreceive or can get the source code.  And you must show them these[0m
        [40mterms so they know their rights.[0m

        [40mDevelopers that use the GNU GPL protect your rights with two steps:[0m
        [40m(1) assert copyright on the software, and (2) offer you this License[0m
        [40mgiving you legal permission to copy, distribute and/or modify it.[0m

        [40mFor the developers' and authors' protection, the GPL clearly explains[0m
        [40mthat there is no warranty for this free software.  For both users' and[0m
        [40mauthors' sake, the GPL requires that modified versions be marked as[0m
        [40mchanged, so that their problems will not be attributed erroneously to[0m
        [40mauthors of previous versions.[0m

        [40mSome devices are designed to deny users access to install or run[0m
        [40mmodified versions of the software inside them, although the[0m
        [40mmanufacturer can do so.  This is fundamentally incompatible with the[0m
        [40maim of protecting users' freedom to change the software.  The[0m
        [40msystematic pattern of such abuse occurs in the area of products for[0m
        [40mindividuals to use, which is precisely where it is most unacceptable.[0m
        [40mTherefore, we have designed this version of the GPL to prohibit the[0m
        [40mpractice for those products.  If such problems arise substantially in[0m
        [40mother domains, we stand ready to extend this provision to those[0m
        [40mdomains in future versions of the GPL, as needed to protect the[0m
        [40mfreedom of users.[0m

        [40mFinally, every program is threatened constantly by software patents.[0m
        [40mStates should not allow patents to restrict development and use of[0m
        [40msoftware on general-purpose computers, but in those that do, we wish[0m
        [40mto avoid the special danger that patents applied to a free program[0m
        [40mcould make it effectively proprietary.  To prevent this, the GPL[0m
        [40massures that patents cannot be used to render the program non-free.[0m

        [40mThe precise terms and conditions for copying, distribution and[0m
        [40mmodification follow.[0m

                                 [40mTERMS AND CONDITIONS[0m

        [40m0. Definitions.[0m

        [40m"This License" refers to version 3 of the GNU General Public License.[0m

        [40m"Copyright" also means copyright-like laws that apply to other kinds[0m
        [40mof works, such as semiconductor masks.[0m

        [40m"The Program" refers to any copyrightable work licensed under this[0m
        [40mLicense.  Each licensee is addressed as "you".  "Licensees" and[0m
        [40m"recipients" may be individuals or organizations.[0m

        [40mTo "modify" a work means to copy from or adapt all or part of the work[0m
        [40min a fashion requiring copyright permission, other than the making of[0m
        [40man exact copy.  The resulting work is called a "modified version" of[0m
        [40mthe earlier work or a work "based on" the earlier work.[0m

        [40mA "covered work" means either the unmodified Program or a work based[0m
        [40mon the Program.[0m

        [40mTo "propagate" a work means to do anything with it that, without[0m
        [40mpermission, would make you directly or secondarily liable for[0m
        [40minfringement under applicable copyright law, except executing it on a[0m
        [40mcomputer or modifying a private copy.  Propagation includes copying,[0m
        [40mdistribution (with or without modification), making available to the[0m
        [40mpublic, and in some countries other activities as well.[0m

        [40mTo "convey" a work means any kind of propagation that enables other[0m
        [40mparties to make or receive copies.  Mere interaction with a user[0m
        [40mthrough a computer network, with no transfer of a copy, is not[0m
        [40mconveying.[0m

        [40mAn interactive user interface displays "Appropriate Legal Notices" to[0m
        [40mthe extent that it includes a convenient and prominently visible[0m
        [40mfeature that (1) displays an appropriate copyright notice, and (2)[0m
        [40mtells the user that there is no warranty for the work (except to the[0m
        [40mextent that warranties are provided), that licensees may convey the[0m
        [40mwork under this License, and how to view a copy of this License.  If[0m
        [40mthe interface presents a list of user commands or options, such as a[0m
        [40mmenu, a prominent item in the list meets this criterion.[0m

        [40m1. Source Code.[0m

        [40mThe "source code" for a work means the preferred form of the work for[0m
        [40mmaking modifications to it.  "Object code" means any non-source form[0m
        [40mof a work.[0m

        [40mA "Standard Interface" means an interface that either is an official[0m
        [40mstandard defined by a recognized standards body, or, in the case of[0m
        [40minterfaces specified for a particular programming language, one that[0m
        [40mis widely used among developers working in that language.[0m

        [40mThe "System Libraries" of an executable work include anything, other[0m
        [40mthan the work as a whole, that (a) is included in the normal form of[0m
        [40mpackaging a Major Component, but which is not part of that Major[0m
        [40mComponent, and (b) serves only to enable use of the work with that[0m
        [40mMajor Component, or to implement a Standard Interface for which an[0m
        [40mimplementation is available to the public in source code form.  A[0m
        [40m"Major Component", in this context, means a major essential component[0m
        [40m(kernel, window system, and so on) of the specific operating system[0m
        [40m(if any) on which the executable work runs, or a compiler used to[0m
        [40mproduce the work, or an object code interpreter used to run it.[0m

        [40mThe "Corresponding Source" for a work in object code form means all[0m
        [40mthe source code needed to generate, install, and (for an executable[0m
        [40mwork) run the object code and to modify the work, including scripts to[0m
        [40mcontrol those activities.  However, it does not include the work's[0m
        [40mSystem Libraries, or general-purpose tools or generally available free[0m
        [40mprograms which are used unmodified in performing those activities but[0m
        [40mwhich are not part of the work.  For example, Corresponding Source[0m
        [40mincludes interface definition files associated with source files for[0m
        [40mthe work, and the source code for shared libraries and dynamically[0m
        [40mlinked subprograms that the work is specifically designed to require,[0m
        [40msuch as by intimate data communication or control flow between those[0m
        [40msubprograms and other parts of the work.[0m

        [40mThe Corresponding Source need not include anything that users can[0m
        [40mregenerate automatically from other parts of the Corresponding Source.[0m

        [40mThe Corresponding Source for a work in source code form is that same[0m
        [40mwork.[0m

        [40m2. Basic Permissions.[0m

        [40mAll rights granted under this License are granted for the term of[0m
        [40mcopyright on the Program, and are irrevocable provided the stated[0m
        [40mconditions are met.  This License explicitly affirms your unlimited[0m
        [40mpermission to run the unmodified Program.  The output from running a[0m
        [40mcovered work is covered by this License only if the output, given its[0m
        [40mcontent, constitutes a covered work.  This License acknowledges your[0m
        [40mrights of fair use or other equivalent, as provided by copyright law.[0m

        [40mYou may make, run and propagate covered works that you do not convey,[0m
        [40mwithout conditions so long as your license otherwise remains in force.[0m
        [40mYou may convey covered works to others for the sole purpose of having[0m
        [40mthem make modifications exclusively for you, or provide you with[0m
        [40mfacilities for running those works, provided that you comply with the[0m
        [40mterms of this License in conveying all material for which you do not[0m
        [40mcontrol copyright.  Those thus making or running the covered works for[0m
        [40myou must do so exclusively on your behalf, under your direction and[0m
        [40mcontrol, on terms that prohibit them from making any copies of your[0m
        [40mcopyrighted material outside their relationship with you.[0m

        [40mConveying under any other circumstances is permitted solely under the[0m
        [40mconditions stated below.  Sublicensing is not allowed; section 10[0m
        [40mmakes it unnecessary.[0m

        [40m3. Protecting Users' Legal Rights From Anti-Circumvention Law.[0m

        [40mNo covered work shall be deemed part of an effective technological[0m
        [40mmeasure under any applicable law fulfilling obligations under article[0m
        [40m11 of the WIPO copyright treaty adopted on 20 December 1996, or[0m
        [40msimilar laws prohibiting or restricting circumvention of such[0m
        [40mmeasures.[0m

        [40mWhen you convey a covered work, you waive any legal power to forbid[0m
        [40mcircumvention of technological measures to the extent such[0m
        [40mcircumvention is effected by exercising rights under this License with[0m
        [40mrespect to the covered work, and you disclaim any intention to limit[0m
        [40moperation or modification of the work as a means of enforcing, against[0m
        [40mthe work's users, your or third parties' legal rights to forbid[0m
        [40mcircumvention of technological measures.[0m

        [40m4. Conveying Verbatim Copies.[0m

        [40mYou may convey verbatim copies of the Program's source code as you[0m
        [40mreceive it, in any medium, provided that you conspicuously and[0m
        [40mappropriately publish on each copy an appropriate copyright notice;[0m
        [40mkeep intact all notices stating that this License and any non-[0m
        [40mpermissive terms added in accord with section 7 apply to the code;[0m
        [40mkeep intact all notices of the absence of any warranty; and give all[0m
        [40mrecipients a copy of this License along with the Program.[0m

        [40mYou may charge any price or no price for each copy that you convey,[0m
        [40mand you may offer support or warranty protection for a fee.[0m

        [40m5. Conveying Modified Source Versions.[0m

        [40mYou may convey a work based on the Program, or the modifications to[0m
        [40mproduce it from the Program, in the form of source code under the[0m
        [40mterms of section 4, provided that you also meet all of these[0m
        [40mconditions:[0m

        [40ma)  The work must carry prominent notices stating that you modified[0m
            [40mit, and giving a relevant date.[0m

        [40mb)  The work must carry prominent notices stating that it is released[0m
            [40munder this License and any conditions added under section 7.  This[0m
            [40mrequirement modifies the requirement in section 4 to "keep intact[0m
            [40mall notices".[0m

        [40mc)  You must license the entire work, as a whole, under this License[0m
            [40mto anyone who comes into possession of a copy.  This License will[0m
            [40mtherefore apply, along with any applicable section 7 additional[0m
            [40mterms, to the whole of the work, and all its parts, regardless of[0m
            [40mhow they are packaged.  This License gives no permission to[0m
            [40mlicense the work in any other way, but it does not invalidate such[0m
            [40mpermission if you have separately received it.[0m

        [40md)  If the work has interactive user interfaces, each must display[0m
            [40mAppropriate Legal Notices; however, if the Program has interactive[0m
            [40minterfaces that do not display Appropriate Legal Notices, your[0m
            [40mwork need not make them do so.[0m

        [40mA compilation of a covered work with other separate and independent[0m
        [40mworks, which are not by their nature extensions of the covered work,[0m
        [40mand which are not combined with it such as to form a larger program,[0m
        [40min or on a volume of a storage or distribution medium, is called an[0m
        [40m"aggregate" if the compilation and its resulting copyright are not[0m
        [40mused to limit the access or legal rights of the compilation's users[0m
        [40mbeyond what the individual works permit.  Inclusion of a covered work[0m
        [40min an aggregate does not cause this License to apply to the other[0m
        [40mparts of the aggregate.[0m

        [40m6. Conveying Non-Source Forms.[0m

        [40mYou may convey a covered work in object code form under the terms of[0m
        [40msections 4 and 5, provided that you also convey the machine-readable[0m
        [40mCorresponding Source under the terms of this License, in one of these[0m
        [40mways:[0m

        [40ma)  Convey the object code in, or embodied in, a physical product[0m
            [40m(including a physical distribution medium), accompanied by the[0m
            [40mCorresponding Source fixed on a durable physical medium[0m
            [40mcustomarily used for software interchange.[0m

        [40mb)  Convey the object code in, or embodied in, a physical product[0m
            [40m(including a physical distribution medium), accompanied by a[0m
            [40mwritten offer, valid for at least three years and valid for as[0m
            [40mlong as you offer spare parts or customer support for that product[0m
            [40mmodel, to give anyone who possesses the object code either (1) a[0m
            [40mcopy of the Corresponding Source for all the software in the[0m
            [40mproduct that is covered by this License, on a durable physical[0m
            [40mmedium customarily used for software interchange, for a price no[0m
            [40mmore than your reasonable cost of physically performing this[0m
            [40mconveying of source, or (2) access to copy the Corresponding[0m
            [40mSource from a network server at no charge.[0m

        [40mc)  Convey individual copies of the object code with a copy of the[0m
            [40mwritten offer to provide the Corresponding Source.  This[0m
            [40malternative is allowed only occasionally and noncommercially, and[0m
            [40monly if you received the object code with such an offer, in accord[0m
            [40mwith subsection 6b.[0m

        [40md)  Convey the object code by offering access from a designated place[0m
            [40m(gratis or for a charge), and offer equivalent access to the[0m
            [40mCorresponding Source in the same way through the same place at no[0m
            [40mfurther charge.  You need not require recipients to copy the[0m
            [40mCorresponding Source along with the object code.  If the place to[0m
            [40mcopy the object code is a network server, the Corresponding Source[0m
            [40mmay be on a different server (operated by you or a third party)[0m
            [40mthat supports equivalent copying facilities, provided you maintain[0m
            [40mclear directions next to the object code saying where to find the[0m
            [40mCorresponding Source.  Regardless of what server hosts the[0m
            [40mCorresponding Source, you remain obligated to ensure that it is[0m
            [40mavailable for as long as needed to satisfy these requirements.[0m

        [40me)  Convey the object code using peer-to-peer transmission, provided[0m
            [40myou inform other peers where the object code and Corresponding[0m
            [40mSource of the work are being offered to the general public at no[0m
            [40mcharge under subsection 6d.[0m

        [40mA separable portion of the object code, whose source code is excluded[0m
        [40mfrom the Corresponding Source as a System Library, need not be[0m
        [40mincluded in conveying the object code work.[0m

        [40mA "User Product" is either (1) a "consumer product", which means any[0m
        [40mtangible personal property which is normally used for personal,[0m
        [40mfamily, or household purposes, or (2) anything designed or sold for[0m
        [40mincorporation into a dwelling.  In determining whether a product is a[0m
        [40mconsumer product, doubtful cases shall be resolved in favor of[0m
        [40mcoverage.  For a particular product received by a particular user,[0m
        [40m"normally used" refers to a typical or common use of that class of[0m
        [40mproduct, regardless of the status of the particular user or of the way[0m
        [40min which the particular user actually uses, or expects or is expected[0m
        [40mto use, the product.  A product is a consumer product regardless of[0m
        [40mwhether the product has substantial commercial, industrial or non-[0m
        [40mconsumer uses, unless such uses represent the only significant mode of[0m
        [40muse of the product.[0m

        [40m"Installation Information" for a User Product means any methods,[0m
        [40mprocedures, authorization keys, or other information required to[0m
        [40minstall and execute modified versions of a covered work in that User[0m
        [40mProduct from a modified version of its Corresponding Source.  The[0m
        [40minformation must suffice to ensure that the continued functioning of[0m
        [40mthe modified object code is in no case prevented or interfered with[0m
        [40msolely because modification has been made.[0m

        [40mIf you convey an object code work under this section in, or with, or[0m
        [40mspecifically for use in, a User Product, and the conveying occurs as[0m
        [40mpart of a transaction in which the right of possession and use of the[0m
        [40mUser Product is transferred to the recipient in perpetuity or for a[0m
        [40mfixed term (regardless of how the transaction is characterized), the[0m
        [40mCorresponding Source conveyed under this section must be accompanied[0m
        [40mby the Installation Information.  But this requirement does not apply[0m
        [40mif neither you nor any third party retains the ability to install[0m
        [40mmodified object code on the User Product (for example, the work has[0m
        [40mbeen installed in ROM).[0m

        [40mThe requirement to provide Installation Information does not include a[0m
        [40mrequirement to continue to provide support service, warranty, or[0m
        [40mupdates for a work that has been modified or installed by the[0m
        [40mrecipient, or for the User Product in which it has been modified or[0m
        [40minstalled.  Access to a network may be denied when the modification[0m
        [40mitself materially and adversely affects the operation of the network[0m
        [40mor violates the rules and protocols for communication across the[0m
        [40mnetwork.[0m

        [40mCorresponding Source conveyed, and Installation Information provided,[0m
        [40min accord with this section must be in a format that is publicly[0m
        [40mdocumented (and with an implementation available to the public in[0m
        [40msource code form), and must require no special password or key for[0m
        [40munpacking, reading or copying.[0m

        [40m7. Additional Terms.[0m

        [40m"Additional permissions" are terms that supplement the terms of this[0m
        [40mLicense by making exceptions from one or more of its conditions.[0m
        [40mAdditional permissions that are applicable to the entire Program shall[0m
        [40mbe treated as though they were included in this License, to the extent[0m
        [40mthat they are valid under applicable law.  If additional permissions[0m
        [40mapply only to part of the Program, that part may be used separately[0m
        [40munder those permissions, but the entire Program remains governed by[0m
        [40mthis License without regard to the additional permissions.[0m

        [40mWhen you convey a copy of a covered work, you may at your option[0m
        [40mremove any additional permissions from that copy, or from any part of[0m
        [40mit.  (Additional permissions may be written to require their own[0m
        [40mremoval in certain cases when you modify the work.)  You may place[0m
        [40madditional permissions on material, added by you to a covered work,[0m
        [40mfor which you have or can give appropriate copyright permission.[0m

        [40mNotwithstanding any other provision of this License, for material you[0m
        [40madd to a covered work, you may (if authorized by the copyright holders[0m
        [40mof that material) supplement the terms of this License with terms:[0m

        [40ma)  Disclaiming warranty or limiting liability differently from the[0m
            [40mterms of sections 15 and 16 of this License; or[0m

        [40mb)  Requiring preservation of specified reasonable legal notices or[0m
            [40mauthor attributions in that material or in the Appropriate Legal[0m
            [40mNotices displayed by works containing it; or[0m

        [40mc)  Prohibiting misrepresentation of the origin of that material, or[0m
            [40mrequiring that modified versions of such material be marked in[0m
            [40mreasonable ways as different from the original version; or[0m

        [40md)  Limiting the use for publicity purposes of names of licensors or[0m
            [40mauthors of the material; or[0m

        [40me)  Declining to grant rights under trademark law for use of some[0m
            [40mtrade names, trademarks, or service marks; or[0m

        [40mf)  Requiring indemnification of licensors and authors of that[0m
            [40mmaterial by anyone who conveys the material (or modified versions[0m
            [40mof it) with contractual assumptions of liability to the recipient,[0m
            [40mfor any liability that these contractual assumptions directly[0m
            [40mimpose on those licensors and authors.[0m

        [40mAll other non-permissive additional terms are considered "further[0m
        [40mrestrictions" within the meaning of section 10.  If the Program as you[0m
        [40mreceived it, or any part of it, contains a notice stating that it is[0m
        [40mgoverned by this License along with a term that is a further[0m
        [40mrestriction, you may remove that term.  If a license document contains[0m
        [40ma further restriction but permits relicensing or conveying under this[0m
        [40mLicense, you may add to a covered work material governed by the terms[0m
        [40mof that license document, provided that the further restriction does[0m
        [40mnot survive such relicensing or conveying.[0m

        [40mIf you add terms to a covered work in accord with this section, you[0m
        [40mmust place, in the relevant source files, a statement of the[0m
        [40madditional terms that apply to those files, or a notice indicating[0m
        [40mwhere to find the applicable terms.[0m

        [40mAdditional terms, permissive or non-permissive, may be stated in the[0m
        [40mform of a separately written license, or stated as exceptions; the[0m
        [40mabove requirements apply either way.[0m

        [40m8. Termination.[0m

        [40mYou may not propagate or modify a covered work except as expressly[0m
        [40mprovided under this License.  Any attempt otherwise to propagate or[0m
        [40mmodify it is void, and will automatically terminate your rights under[0m
        [40mthis License (including any patent licenses granted under the third[0m
        [40mparagraph of section 11).[0m

        [40mHowever, if you cease all violation of this License, then your license[0m
        [40mfrom a particular copyright holder is reinstated (a) provisionally,[0m
        [40munless and until the copyright holder explicitly and finally[0m
        [40mterminates your license, and (b) permanently, if the copyright holder[0m
        [40mfails to notify you of the violation by some reasonable means prior to[0m
        [40m60 days after the cessation.[0m

        [40mMoreover, your license from a particular copyright holder is[0m
        [40mreinstated permanently if the copyright holder notifies you of the[0m
        [40mviolation by some reasonable means, this is the first time you have[0m
        [40mreceived notice of violation of this License (for any work) from that[0m
        [40mcopyright holder, and you cure the violation prior to 30 days after[0m
        [40myour receipt of the notice.[0m

        [40mTermination of your rights under this section does not terminate the[0m
        [40mlicenses of parties who have received copies or rights from you under[0m
        [40mthis License.  If your rights have been terminated and not permanently[0m
        [40mreinstated, you do not qualify to receive new licenses for the same[0m
        [40mmaterial under section 10.[0m

        [40m9. Acceptance Not Required for Having Copies.[0m

        [40mYou are not required to accept this License in order to receive or run[0m
        [40ma copy of the Program.  Ancillary propagation of a covered work[0m
        [40moccurring solely as a consequence of using peer-to-peer transmission[0m
        [40mto receive a copy likewise does not require acceptance.  However,[0m
        [40mnothing other than this License grants you permission to propagate or[0m
        [40mmodify any covered work.  These actions infringe copyright if you do[0m
        [40mnot accept this License.  Therefore, by modifying or propagating a[0m
        [40mcovered work, you indicate your acceptance of this License to do so.[0m

        [40m10. Automatic Licensing of Downstream Recipients.[0m

        [40mEach time you convey a covered work, the recipient automatically[0m
        [40mreceives a license from the original licensors, to run, modify and[0m
        [40mpropagate that work, subject to this License.  You are not responsible[0m
        [40mfor enforcing compliance by third parties with this License.[0m

        [40mAn "entity transaction" is a transaction transferring control of an[0m
        [40morganization, or substantially all assets of one, or subdividing an[0m
        [40morganization, or merging organizations.  If propagation of a covered[0m
        [40mwork results from an entity transaction, each party to that[0m
        [40mtransaction who receives a copy of the work also receives whatever[0m
        [40mlicenses to the work the party's predecessor in interest had or could[0m
        [40mgive under the previous paragraph, plus a right to possession of the[0m
        [40mCorresponding Source of the work from the predecessor in interest, if[0m
        [40mthe predecessor has it or can get it with reasonable efforts.[0m

        [40mYou may not impose any further restrictions on the exercise of the[0m
        [40mrights granted or affirmed under this License.  For example, you may[0m
        [40mnot impose a license fee, royalty, or other charge for exercise of[0m
        [40mrights granted under this License, and you may not initiate litigation[0m
        [40m(including a cross-claim or counterclaim in a lawsuit) alleging that[0m
        [40many patent claim is infringed by making, using, selling, offering for[0m
        [40msale, or importing the Program or any portion of it.[0m

        [40m11. Patents.[0m

        [40mA "contributor" is a copyright holder who authorizes use under this[0m
        [40mLicense of the Program or a work on which the Program is based.  The[0m
        [40mwork thus licensed is called the contributor's "contributor version".[0m

        [40mA contributor's "essential patent claims" are all patent claims owned[0m
        [40mor controlled by the contributor, whether already acquired or[0m
        [40mhereafter acquired, that would be infringed by some manner, permitted[0m
        [40mby this License, of making, using, or selling its contributor version,[0m
        [40mbut do not include claims that would be infringed only as a[0m
        [40mconsequence of further modification of the contributor version.  For[0m
        [40mpurposes of this definition, "control" includes the right to grant[0m
        [40mpatent sublicenses in a manner consistent with the requirements of[0m
        [40mthis License.[0m

        [40mEach contributor grants you a non-exclusive, worldwide, royalty-free[0m
        [40mpatent license under the contributor's essential patent claims, to[0m
        [40mmake, use, sell, offer for sale, import and otherwise run, modify and[0m
        [40mpropagate the contents of its contributor version.[0m

        [40mIn the following three paragraphs, a "patent license" is any express[0m
        [40magreement or commitment, however denominated, not to enforce a patent[0m
        [40m(such as an express permission to practice a patent or covenant not to[0m
        [40msue for patent infringement).  To "grant" such a patent license to a[0m
        [40mparty means to make such an agreement or commitment not to enforce a[0m
        [40mpatent against the party.[0m

        [40mIf you convey a covered work, knowingly relying on a patent license,[0m
        [40mand the Corresponding Source of the work is not available for anyone[0m
        [40mto copy, free of charge and under the terms of this License, through a[0m
        [40mpublicly available network server or other readily accessible means,[0m
        [40mthen you must either (1) cause the Corresponding Source to be so[0m
        [40mavailable, or (2) arrange to deprive yourself of the benefit of the[0m
        [40mpatent license for this particular work, or (3) arrange, in a manner[0m
        [40mconsistent with the requirements of this License, to extend the patent[0m
        [40mlicense to downstream recipients.  "Knowingly relying" means you have[0m
        [40mactual knowledge that, but for the patent license, your conveying the[0m
        [40mcovered work in a country, or your recipient's use of the covered work[0m
        [40min a country, would infringe one or more identifiable patents in that[0m
        [40mcountry that you have reason to believe are valid.[0m

        [40mIf, pursuant to or in connection with a single transaction or[0m
        [40marrangement, you convey, or propagate by procuring conveyance of, a[0m
        [40mcovered work, and grant a patent license to some of the parties[0m
        [40mreceiving the covered work authorizing them to use, propagate, modify[0m
        [40mor convey a specific copy of the covered work, then the patent license[0m
        [40myou grant is automatically extended to all recipients of the covered[0m
        [40mwork and works based on it.[0m

        [40mA patent license is "discriminatory" if it does not include within the[0m
        [40mscope of its coverage, prohibits the exercise of, or is conditioned on[0m
        [40mthe non-exercise of one or more of the rights that are specifically[0m
        [40mgranted under this License.  You may not convey a covered work if you[0m
        [40mare a party to an arrangement with a third party that is in the[0m
        [40mbusiness of distributing software, under which you make payment to the[0m
        [40mthird party based on the extent of your activity of conveying the[0m
        [40mwork, and under which the third party grants, to any of the parties[0m
        [40mwho would receive the covered work from you, a discriminatory patent[0m
        [40mlicense (a) in connection with copies of the covered work conveyed by[0m
        [40myou (or copies made from those copies), or (b) primarily for and in[0m
        [40mconnection with specific products or compilations that contain the[0m
        [40mcovered work, unless you entered into that arrangement, or that patent[0m
        [40mlicense was granted, prior to 28 March 2007.[0m

        [40mNothing in this License shall be construed as excluding or limiting[0m
        [40many implied license or other defenses to infringement that may[0m
        [40motherwise be available to you under applicable patent law.[0m

        [40m12. No Surrender of Others' Freedom.[0m

        [40mIf conditions are imposed on you (whether by court order, agreement or[0m
        [40motherwise) that contradict the conditions of this License, they do not[0m
        [40mexcuse you from the conditions of this License.  If you cannot convey[0m
        [40ma covered work so as to satisfy simultaneously your obligations under[0m
        [40mthis License and any other pertinent obligations, then as a[0m
        [40mconsequence you may not convey it at all.  For example, if you agree[0m
        [40mto terms that obligate you to collect a royalty for further conveying[0m
        [40mfrom those to whom you convey the Program, the only way you could[0m
        [40msatisfy both those terms and this License would be to refrain entirely[0m
        [40mfrom conveying the Program.[0m

        [40m13. Use with the GNU Affero General Public License.[0m

        [40mNotwithstanding any other provision of this License, you have[0m
        [40mpermission to link or combine any covered work with a work licensed[0m
        [40munder version 3 of the GNU Affero General Public License into a single[0m
        [40mcombined work, and to convey the resulting work.  The terms of this[0m
        [40mLicense will continue to apply to the part which is the covered work,[0m
        [40mbut the special requirements of the GNU Affero General Public License,[0m
        [40msection 13, concerning interaction through a network will apply to the[0m
        [40mcombination as such.[0m

        [40m14. Revised Versions of this License.[0m

        [40mThe Free Software Foundation may publish revised and/or new versions[0m
        [40mof the GNU General Public License from time to time.  Such new[0m
        [40mversions will be similar in spirit to the present version, but may[0m
        [40mdiffer in detail to address new problems or concerns.[0m

        [40mEach version is given a distinguishing version number.  If the Program[0m
        [40mspecifies that a certain numbered version of the GNU General Public[0m
        [40mLicense "or any later version" applies to it, you have the option of[0m
        [40mfollowing the terms and conditions either of that numbered version or[0m
        [40mof any later version published by the Free Software Foundation.  If[0m
        [40mthe Program does not specify a version number of the GNU General[0m
        [40mPublic License, you may choose any version ever published by the Free[0m
        [40mSoftware Foundation.[0m

        [40mIf the Program specifies that a proxy can decide which future versions[0m
        [40mof the GNU General Public License can be used, that proxy's public[0m
        [40mstatement of acceptance of a version permanently authorizes you to[0m
        [40mchoose that version for the Program.[0m

        [40mLater license versions may give you additional or different[0m
        [40mpermissions.  However, no additional obligations are imposed on any[0m
        [40mauthor or copyright holder as a result of your choosing to follow a[0m
        [40mlater version.[0m

        [40m15. Disclaimer of Warranty.[0m

        [40mTHERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY[0m
        [40mAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT[0m
        [40mHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT[0m
        [40mWARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT[0m
        [40mLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR[0m
        [40mA PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND[0m
        [40mPERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE[0m
        [40mDEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR[0m
        [40mCORRECTION.[0m

        [40m16. Limitation of Liability.[0m

        [40mIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING[0m
        [40mWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR[0m
        [40mCONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,[0m
        [40mINCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES[0m
        [40mARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT[0m
        [40mNOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR[0m
        [40mLOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM[0m
        [40mTO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER[0m
        [40mPARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.[0m

        [40m17. Interpretation of Sections 15 and 16.[0m

        [40mIf the disclaimer of warranty and limitation of liability provided[0m
        [40mabove cannot be given local legal effect according to their terms,[0m
        [40mreviewing courts shall apply local law that most closely approximates[0m
        [40man absolute waiver of all civil liability in connection with the[0m
        [40mProgram, unless a warranty or assumption of liability accompanies a[0m
        [40mcopy of the Program in return for a fee.[0m

                             [40mEND OF TERMS AND CONDITIONS[0m

                    [40mHow to Apply These Terms to Your New Programs[0m

        [40mIf you develop a new program, and you want it to be of the greatest[0m
        [40mpossible use to the public, the best way to achieve this is to make it[0m
        [40mfree software which everyone can redistribute and change under these[0m
        [40mterms.[0m

        [40mTo do so, attach the following notices to the program.  It is safest[0m
        [40mto attach them to the start of each source file to most effectively[0m
        [40mstate the exclusion of warranty; and each file should have at least[0m
        [40mthe "copyright" line and a pointer to where the full notice is found.[0m

            [40m< one line to give the program's name and a brief idea of what it[0m
            [40mdoes.  >[0m
            [40mCopyright (C) < year > < name of author >[0m

            [40mThis program is free software: you can redistribute it and/or[0m
            [40mmodify it under the terms of the GNU General Public License as[0m
            [40mpublished by the Free Software Foundation, either version 3 of the[0m
            [40mLicense, or (at your option) any later version.[0m

            [40mThis program is distributed in the hope that it will be useful,[0m
            [40mbut WITHOUT ANY WARRANTY; without even the implied warranty of[0m
            [40mMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU[0m
            [40mGeneral Public License for more details.[0m

            [40mYou should have received a copy of the GNU General Public License[0m
            [40malong with this program.  If not, see[0m
            [40m<http://www.gnu.org/licenses/>.[0m

        [40mAlso add information on how to contact you by electronic and paper[0m
        [40mmail.[0m

        [40mIf the program does terminal interaction, make it output a short[0m
        [40mnotice like this when it starts in an interactive mode:[0m

            [40m<program>  Copyright (C) <year>  <name of author>[0m
            [40mThis program comes with ABSOLUTELY NO WARRANTY; for details type[0m
            [40m"show w".  This is free software, and you are welcome to[0m
            [40mredistribute it under certain conditions; type "show c" for[0m
            [40mdetails.[0m

        [40mThe hypothetical commands "show w" and "show c" should show the[0m
        [40mappropriate parts of the General Public License.  Of course, your[0m
        [40mprogram's commands might be different; for a GUI interface, you would[0m
        [40muse an "about box".[0m

        [40mYou should also get your employer (if you work as a programmer) or[0m
        [40mschool, if any, to sign a "copyright disclaimer" for the program, if[0m
        [40mnecessary.  For more information on this, and how to apply and follow[0m
        [40mthe GNU GPL, see <http://www.gnu.org/licenses/>.[0m

        [40mThe GNU General Public License does not permit incorporating your[0m
        [40mprogram into proprietary programs.  If your program is a subroutine[0m
        [40mlibrary, you may consider it more useful to permit linking proprietary[0m
        [40mapplications with the library.  If this is what you want to do, use[0m
        [40mthe GNU Lesser General Public License instead of this License.  But[0m
        [40mfirst, please read <http://www.gnu.org/philosophy/why-not-lgpl.html>.[0m



aelock(1)                                                            aelock(1)



[40m[1mNAME[0m
        [40maelock - take a lock while a command runs[0m

[1m[40mSYNOPSIS[0m
        [1m[40maelock [22m[ [4moption[24m...  ] [4mcommand[0m
        [1m[40maelock -Help[0m
        [1m[40maelock -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maelock"[24m command is used to take a project lock while a command[0m
        [40mruns.  This may be used to ensure that the project state is stable[0m
        [40mwhile it is being backed up.[0m

        [40mThe named command is looked for as an attribute called aelock:[4mcommand[0m
        [40mwithin the [4mproject_specific[24m field of the project configuration file.[0m

        [40mThe command is then passed through the usual [4maesub[24m(5) substitutions[0m
        [40mbefore being executed.  The command is executed as the project owner.[0m
        [40mIf the command returns with a non-zero exit status, the [4maelock[24m(1)[0m
        [40mcommand will return an exit status of one.[0m

   [1m[40mSecurity Issues[0m
        [40mThis command is a potential security problem.  Because it takes a[0m
        [40mread-only lock of all active branches and changes in a project, from[0m
        [40mthe trunk down, misuse of this command is a potential denial of[0m
        [40mservice attack.  Thus, this command is limited to project[0m
        [40madministrators only.[0m

        [40mThis command could have been designed to take an arbitrary command to[0m
        [40mexecute, like [4msudo[24m(1), but this would have granted users, even project[0m
        [40madministrators, more privileges than usual.  For this reason, the[0m
        [40mcommand is held in a source controlled, fully reviewed project[0m
        [40mconfiguration file, and is simply indicated by name.[0m

        [40mThe command is run as the project owner, not the executing user.  It[0m
        [40mhas full write access (that's the way Unix permissions work).  Like[0m
        [4m[40maeb[24m(1), this means it can wreak havoc on the project baseline and[0m
        [40mmeta-data.  Use with extreme care.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maelock[24m program.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maelock[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maelock[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maelock[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maelock version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aelock program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maelock[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maelock[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aelpf(1)                                                              aelpf(1)



[40m[1mNAME[0m
        [40maelpf - list project files[0m

[1m[40mSYNOPSIS[0m
        [1m[40maelpf [22m[ [4moption[24m...  ][0m
        [1m[40maelpf -Help[0m
        [1m[40maelpf -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maelpf[24m command is used to list the files which make up a project.[0m
        [40mThe file names are printed one per line on the output.[0m

        [40mThis is very similar to the [4maegis[24m [4m-l[24m [4mpf[24m listing, but it only lists[0m
        [40mfile names, it lists no other attributes, and it is considerably[0m
        [40mfaster.[0m

        [40mIf a change number is supplied on the command line, the files within[0m
        [40mthat change will be excluded from the listing.  This allows build[0m
        [40mtools to distinguish between change files which are changing, from[0m
        [40mproject files which are not, if they care.[0m

        [40mIf your filenames have newlines in them, you have a problem.  You can[0m
        [40muse any of the [4mposix_filename_charset[24m, [4mdos_filename_required[24m,[0m
        [4m[40mwindows_filename_required[24m, or [4mshell_safe_filenames[24m fields in your[0m
        [40mproject configuration file to prevent this.  See [4maenf[24m(1) and[0m
        [4m[40maepconf[24m(5) for more information.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-ACtion [4m[22mname[0m
                [40mThis option may be used to specify which file actions you are[0m
                [40minterested in.  Valid values are "create", "modify", "remove",[0m
                [4m[40metc[24m, as may be observed in the Action column of the [4maegis[24m [4m-l[0m
                [4m[40mpf[24m listing.  The default is to list files with all actions[0m
                [40mexcept removed files.  You may use this option more than once.[0m

        [1m[40m-Not_ACtion [4m[22mname[0m
                [40mThis option may be used to exclude an action from the listing.[0m
                [40mIf no actions are explicitly included or excluded, the default[0m
                [40mis to exclude removed files.  You may use this option more[0m
                [40mthan once.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maelpf[24m program.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-USAge [4m[22mname[0m
                [40mThis option may be used to specify which file usages you are[0m
                [40minterested in.  Valid values are "source", "test", [4metc[24m, as may[0m
                [40mbe observed in the Usage column of the [4maegis[24m [4m-l[24m [4mpf[24m listing.[0m
                [40mThe default is to list files with all usages.  You may use[0m
                [40mthis option more than once.[0m

        [1m[40m-Not_USAge [4m[22mname[0m
                [40mThis option may be used to exclude usages from the listing.[0m
                [40mThe default is to exclude no usages.  You may use this option[0m
                [40mmore than once.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maelpf[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maelpf[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maelpf[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40mael[24m(1)  list interesting things[0m

        [4m[40maenf[24m(1) add new files to be created by a change[0m

        [4m[40maepconf[24m(5)[0m
                [40mproject configuration file[0m

[1m[40mCOPYRIGHT[0m
        [40maelpf version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aelpf program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maelpf[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maelpf[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aels(1)                                                                aels(1)



[40m[1mNAME[0m
        [40maels - annotated directory listing[0m

[1m[40mSYNOPSIS[0m
        [1m[40maels [22m[ [4moption[24m...  ][ [4mfilename[24m...  ][0m
        [1m[40maels -Help[0m
        [1m[40maels -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maels[24m command is used to list information about the files and[0m
        [40mdirectories named on the command line.  If no files are named, the[0m
        [40mcurrent directory is listed.[0m

        [40mThe view presented is from Aegis' perspective.  It unifies the[0m
        [40mdevelopment directory with the baseline.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Recursive[0m

        [1m[40m-LOng   [22mThis option implies the [1m-Show-Mode[22m, [1m-Show-Attributes[22m, [1m-Show-[0m
                [1m[40mUser[22m, [1m-Show-Group[22m, [1m-Show-Size [22mand [1m-Show-When [22moptions, unless[0m
                [40mexplicitly overridden.[0m

        [1m[40m-Show-Dot-Files[0m
                [40mThis option may be used to show files starting with a dot (.).[0m

        [1m[40m-Hide-Dot-Files[0m
                [40mThis option may be used to hide files starting with a dot (.).[0m
                [40mThis is the default.[0m

        [1m[40m-Show-Removed-Files[0m
                [40mThis option may be used to include removed files in the[0m
                [40mlisting.[0m

        [1m[40m-Hide-Removed-Files[0m
                [40mThis option may be used to exclude removed files from the[0m
                [40mlisting.  This is the default.[0m

        [1m[40m-Show-Mode[0m
                [40mThis option may be used to include the mode column in the[0m
                [40mlisting.  The mode column indicates the file type and[0m
                [40mpermissions.[0m

        [1m[40m-Hide-Mode[0m
                [40mThis option may be used to exclude the mode column from the[0m
                [40mlisting.  This is the default.[0m

        [1m[40m-Show-Attributes[0m
                [40mThis option may be used to include the attributes column in[0m
                [40mthe listing.  The attributes column indicates whether the file[0m
                [40mis part of the change, the project or neither; whether the[0m
                [40mfile is being created, modified or removed; whether the file[0m
                [40mis a source file, a test file, or neither.  This is the[0m
                [40mdefault.[0m

        [1m[40m-Hide-Attributes[0m
                [40mThis option may be used to exclude the attributes column from[0m
                [40mthe listing.[0m

        [1m[40m-Show-User[0m
                [40mThis option may be used to include file owner information in[0m
                [40mthe listing.[0m

        [1m[40m-Hide-User[0m
                [40mThis option may be used to exclude file owner information from[0m
                [40mthe listing.  This is the default.[0m

        [1m[40m-Show-Group[0m
                [40mThis option may be used to include file group information in[0m
                [40mthe listing.[0m

        [1m[40m-Hide-Group[0m
                [40mThis option may be used to exclude file group information from[0m
                [40mthe listing.  This is the default.[0m

        [1m[40m-Show-Size[0m
                [40mThis option may be used to include file size information in[0m
                [40mthe listing.[0m

        [1m[40m-Hide-Size[0m
                [40mThis option may be used to exclude file size information from[0m
                [40mthe listing.  This is the default.[0m

        [1m[40m-Show-When[0m
                [40mThis option may be used to include the file modification time[0m
                [40min the listing.[0m

        [1m[40m-Hide-When[0m
                [40mThis option may be used to exclude the file modification time[0m
                [40mfrom the listing.  This is the default.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maels[24m program.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maels[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maels[24m command will exit with a status of 1 on any error.  The [4maels[0m
        [40mcommand will only exit with a status of 0 if there are no errors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40mls[24m(1)   list directory contents[0m

        [4m[40maefind[24m(1)[0m
                [40msearch for files in directory hierarchy[0m

        [4m[40mael[24m [4mcf[24m  List change files.[0m

        [4m[40mael[24m [4mpf[24m  List project files.[0m

[1m[40mCOPYRIGHT[0m
        [40maels version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aels program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maels[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maels[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aemakegen(1)                                                      aemakegen(1)



[40m[1mNAME[0m
        [40maemakegen - generate a Makefile.in from file manifest[0m

[1m[40mSYNOPSIS[0m
        [1m[40maemakegen [22m[ [4moption[24m... ][ [4mfilename[24m... ][0m
        [1m[40maemakegen -Help[0m
        [1m[40maemakegen -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maemakegen[24m command is used to generate a Makefile.in file from a[0m
        [40mfile manifest.  The file manifest is the set of file specified on the[0m
        [40mcommand line.[0m

        [40mIf a project or change number is mentioned on the command line, the[0m
        [40msearch path and file manifest is derived from Aegis meta-data.  File[0m
        [40mnames on the command line are considered to be additional files, and[0m
        [40mwill be added to the manifest.[0m

        [40mIf no project or change number is mentioned on the command line, it is[0m
        [40massumed that the files named on the command line are all the files the[0m
        [40mmakefile is to be generated from.[0m

   [1m[40mProject Structure[0m
        [40mThe [4maemakegen[24m command assumes a particular project structure.  This is[0m
        [40mas follows:[0m

        [40mlib/    The [4mlib[24m directory contains C++ files to be compiled, and[0m
                [40mplaced into the lib/lib.a file, to be linked with the other[0m
                [40mexecutables.[0m

        [4m[40mprog[24m/   Each executable is contained in its own directory.  Which[0m
                [40mdirectories contain programs are determined by the presence of[0m
                [40ma main.cc file.[0m

        [40mbin/    Each program is compiled and linked, with the executable[0m
                [40mplaced in the [4mbin[24m directory.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Output [4m[22mfilename[0m
                [40mThis option may be used to specify the output file.  The[0m
                [40moutput is sent to the standard output by default.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-SCRipt [4m[22mpattern[0m
                [40mThis option may be used to nominate file which are scripts.[0m
                [40mThe patterns are normal shell file name globbing patterns, so[0m
                [40myou may need to quote it.  You may use this option more than[0m
                [40monce.  Scripts in the script/ or scripts/ directories will be[0m
                [40minstalled.  Scripts with a basename starting with test_ will[0m
                [40mbe build to support the "make check" target.[0m

        [1m[40m-Search_Path [4m[22mdirectory[0m
                [40mThe search path option may be used to specify the search path.[0m
                [40mThis option may be given more than once.[0m

        [1m[40m-TArget [4m[22mname[0m
                [40mThe option may be used to select the desired output format by[0m
                [40mname.  The known names are:[0m

                [40mautomake[0m
                        [40mGenerate [4mautomake[24m(1) input, suitable for use as a top-[0m
                        [40mlevel Makefile.am file.[0m

                [40mmakefile[0m
                        [40mGenerate [4mmake[24m(1) input, suitable for as as a top-level[0m
                        [40mMakefile.in file.  This is the default.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maemakegen[24m program.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maemakegen[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maemakegen[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maemakegen[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maemakegen version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aemakegen program comes with ABSOLUTELY NO WARRANTY; for details[0m
        [40muse the '[4maemakegen[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software[0m
        [40mand you are welcome to redistribute it under certain conditions; for[0m
        [40mdetails use the '[4maemakegen[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aemeasure(1)                                                      aemeasure(1)



[40m[1mNAME[0m
        [40maemeasure - simple file metrics[0m

[1m[40mSYNOPSIS[0m
        [1m[40maemeasure [22m[ [4minfile[24m [ [4moutfile[24m ]][0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maemeasure[24m command is used to measure a few very simple file[0m
        [40mstatistics: lines of code, lines of comments, blank lines.  It is an[0m
        [40mexample of a probgram which produces its output in the [4maemetrics[24m(5)[0m
        [40mformat, suitable for Aegis to read and understand as file metrics.[0m

        [40mThe language of the file is determined by examining the file suffix.[0m

                     [40m.c, .h, .y   C language[0m
                     [40m.cc, .CC,    C++ language[0m
                     [40m.c++,[0m
                     [40m.man, .mm,   GNU Groff input[0m
                     [40m.ms, .so[0m

[1m[40mMETRICS[0m
        [40mAegis is capable of recording metrics as part of the file attributes[0m
        [40mof a change.  This allows various properties of files to be recorded[0m
        [40mfor later trend analysis, or other uses.[0m

        [40mThe specific metrics are not dictated by Aegis.  It is expected that[0m
        [40mthe integration build will create a metrics file for each of the[0m
        [40msource files the change.  These metrics files must be in the format[0m
        [40mspecified by [4maemetrics[24m(5).[0m

        [40mThe name of the metrics file defaults to "[4mfilename[24m[1m,S[22m", however it may[0m
        [40mbe varied, by setting the [4mmetrics_filename_pattern[24m field of the[0m
        [40mproject [4mconfig[24m file.  See [4maepconf[24m(5) for more information.[0m

        [40mIf such a metrics file exists, for each source file in a change, it[0m
        [40mwill be read and remembered at integrate pass time.  If it does not[0m
        [40mexist, Aegis assumes there are no relevant metrics for that file, and[0m
        [40mproceeds silently; it is not an error.[0m

[1m[40mOPTIONS[0m
        [40mThe following option is understood[0m

        [1m[40m-LANGuage [4m[22mname[0m
                [40mThis option may be used to specify the input language of the[0m
                [40mfile, rather than have the input language be guessed fromn the[0m
                [40mfile suffix.  The name must be one of the following: C, C++,[0m
                [40mroff or generic.  Any other name will result in an error.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maemeasure[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maemeasure[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maemeasure[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maeipass[24m(1)[0m
                [40mpass a change integration[0m

        [4m[40maemetrics[24m(5)[0m
                [40mmetrics values file format[0m

[1m[40mCOPYRIGHT[0m
        [40maemeasure version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aemeasure program comes with ABSOLUTELY NO WARRANTY; for details[0m
        [40muse the '[4maemeasure[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software[0m
        [40mand you are welcome to redistribute it under certain conditions; for[0m
        [40mdetails use the '[4maemeasure[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Make_Transparent(1)                          aegis -Make_Transparent(1)



[40m[1mNAME[0m
        [40maegis make transparent - make branch file transparent[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Make_Transparent [22m[ [4moption[24m...  ] [4mfilename[24m...[0m
        [1m[40maegis -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Help[0m
        [1m[40maegis -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Make_Transparent[24m command is used to add a file to the[0m
        [40mchange which will result in the named file being made transparent in[0m
        [40mthe branch when the change is integrated.  The version of the project[0m
        [40mfile from the deeper branch will then show through.[0m

        [40mYou may name a directory to make all files in that directory tree[0m
        [40mtransparent.  It is an error if there are no relevant files.[0m

   [1m[40mBranch [4m[22mvs[24m [1mChange[0m
        [40mThe [4maecpu[24m(1) command may only be applied to a change.  If you wish to[0m
        [40mperform the same operation on a branch, use the [4maemt[24m(1) command,[0m
        [40mthrough the agency of a change.[0m

   [1m[40mFile Name Interpretation[0m
        [40mThe aegis program will attempt to determine the project file names[0m
        [40mfrom the file names given on the command line.  All file names are[0m
        [40mstored within aegis projects as relative to the root of the baseline[0m
        [40mdirectory tree.  The development directory and the integration[0m
        [40mdirectory are shadows of this baseline directory, and so these[0m
        [40mrelative names apply here, too.  Files named on the command line are[0m
        [40mfirst converted to absolute paths if necessary.  They are then[0m
        [40mcompared with the baseline path, the development directory path, and[0m
        [40mthe integration directory path, to determine a baseline-relative name.[0m
        [40mIt is an error if the file named is outside one of these directory[0m
        [40mtrees.[0m

        [40mThe [1m-BAse_RElative [22moption may be used to cause relative filenames to[0m
        [40mbe interpreted as relative to the baseline path; absolute filenames[0m
        [40mwill still be compared with the various paths in order to determine a[0m
        [40mbaseline-relative name.[0m

        [40mThe [4mrelative_filename_preference[24m in the user configuration file may be[0m
        [40mused to modify this default behavior.  See [4maeuconf[24m(5) for more[0m
        [40minformation.[0m

   [1m[40mProcess Side Effects[0m
        [40mThis command will cancel any build or test registrations, because[0m
        [40mchanging the change file list logically invalidates them.[0m

   [1m[40mNotification[0m
        [40mThe [4mmake_transparent_command[24m in the project configuration file is run,[0m
        [40mif set.  The [4mproject_file_command[24m is also run, if set, and if there[0m
        [40mhas been an integration recently.  See [4maepconf[24m(5) for more[0m
        [40minformation.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-BAse_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the base of the source tree.  See[0m
                [4m[40maeuconf[24m(5) for the corresponding user preference.[0m

        [1m[40m-CUrrent_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the current directory.  This is usually[0m
                [40mthe default.  See [4maeuconf[24m(5) for the corresponding user[0m
                [40mpreference.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-UNChanged[0m
                [40mExamine the named files to see if they are unchanged.  Only[0m
                [40mremove the unchanged files from the branch, and leave the[0m
                [40mfiles which have changed.  If no files are named on the[0m
                [40mcommand line all branch files are checked.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aemt 'aegis -mt \!* -v'[0m
        [40msh$     aemt(){aegis -mt "$@" -v}[0m

        [40mThis command is dedicated to my wife, Mary-Therese.  When I was trying[0m
        [40mto explain what this command did, she said "I had one of those on my[0m
        [40mbicycle when I was young, but it fell off".[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mbeing[24m [4mdeveloped[24m state.[0m
        [40mIt is an error if the change is not assigned to the current user.[0m
        [40mIt is an error if the file is not present in the immediate branch.[0m
        [40mIt is an error if the file is present in the immediate branch, but is[0m
        [40mnot also present in a deeper branch.[0m
        [40mIt is an error if the file is only present in the trunk branch.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maecpu[24m(1)[0m
                [40muncopy copy files from a change[0m

        [4m[40maemtu[24m(1)[0m
                [40mcease making branch files transparent[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Make_Transparent_Undo(1)                aegis -Make_Transparent_Undo(1)



[40m[1mNAME[0m
        [40maegis make transparent undo - no longer make branch file transparent[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Make_Transparent_Undo [22m[ [4moption[24m...  ] [4mfilename[24m...[0m
        [1m[40maegis -Make_Transparent_Undo -List[0m
        [1m[40maegis -Make_Transparent_Undo -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Make_Transparent_Undo[24m command is used to reverse the[0m
        [40meffects of the [4maegis[24m [4m-Make_Transparent[24m command.  The named files will[0m
        [40mbe removed from the list of files in the change.[0m

        [40mThe file is deleted from the development directory unless the [1m-Keep[0m
        [40moption is specified.  The [1m-Keep [22moption should be used with great care,[0m
        [40mas you can confuse tools such as [4mmake[24m(1) by leaving these files in[0m
        [40mplace.[0m

        [40mYou may name a directory to delete from the change all files in that[0m
        [40mdirectory tree previously copied into the change, other files in the[0m
        [40mtree will be ignored.  It is an error if there are no relevant files.[0m

   [1m[40mFile Name Interpretation[0m
        [40mThe aegis program will attempt to determine the project file names[0m
        [40mfrom the file names given on the command line.  All file names are[0m
        [40mstored within aegis projects as relative to the root of the baseline[0m
        [40mdirectory tree.  The development directory and the integration[0m
        [40mdirectory are shadows of this baseline directory, and so these[0m
        [40mrelative names apply here, too.  Files named on the command line are[0m
        [40mfirst converted to absolute paths if necessary.  They are then[0m
        [40mcompared with the baseline path, the development directory path, and[0m
        [40mthe integration directory path, to determine a baseline-relative name.[0m
        [40mIt is an error if the file named is outside one of these directory[0m
        [40mtrees.[0m

        [40mThe [1m-BAse_RElative [22moption may be used to cause relative filenames to[0m
        [40mbe interpreted as relative to the baseline path; absolute filenames[0m
        [40mwill still be compared with the various paths in order to determine a[0m
        [40mbaseline-relative name.[0m

        [40mThe [4mrelative_filename_preference[24m in the user configuration file may be[0m
        [40mused to modify this default behavior.  See [4maeuconf[24m(5) for more[0m
        [40minformation.[0m

   [1m[40mProcess Side Effects[0m
        [40mThis command will cancel any build or test registrations, because[0m
        [40mdeleting a file logically invalidates them.  If the project [4mconfig[0m
        [40mfile was deleted, any diff registration will also be canceled.[0m

        [40mThe difference file (,D) will also be removed, however any DMT derived[0m
        [40mfiles (e.g a .o file from a .c file) will not be removed.  This is[0m
        [40mbecause aegis is decoupled from the DMT, and cannot know what these[0m
        [40mderived file may be called.  You may need to delete derived files[0m
        [40mmanually.[0m

   [1m[40mNotification[0m
        [40mThe [4mmake_transparent_undo_command[24m in the project [4mconfig[24m file is run,[0m
        [40mif set.  The [4mproject_file_command[24m is also run, if set, and if there[0m
        [40mhas been an integration recently.  See [4maepconf[24m(5) for more[0m
        [40minformation.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-BAse_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the base of the source tree.  See[0m
                [4m[40maeuconf[24m(5) for the corresponding user preference.[0m

        [1m[40m-CUrrent_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the current directory.  This is usually[0m
                [40mthe default.  See [4maeuconf[24m(5) for the corresponding user[0m
                [40mpreference.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-Interactive[0m
                [40mSpecify that aegis should ask the user for confirmation before[0m
                [40mdeleting each file.  Answer the question [4myes[24m to delete the[0m
                [40mfile, or [4mno[24m to keep the file.  You can also answer [4mall[24m to[0m
                [40mdelete the file and all that follow, or [4mnone[24m to keep the file[0m
                [40mand all that follow.[0m

                [40mDefaults to the user's [4mdelete_file_preference[24m if not[0m
                [40mspecified, see [4maeuconf[24m(5) for more information.[0m

                [40mIf aegis is running in the background, the question will not[0m
                [40mbe asked, and the files will be deleted.[0m

        [1m[40m-Keep[0m
                [40mThis option may be used to retain files and/or directories[0m
                [40musually deleted or replaced by the command.  Defaults to the[0m
                [40muser's [4mdelete_file_preference[24m if not specified, see [4maeuconf[24m(5)[0m
                [40mfor more information.[0m

        [1m[40m-No_Keep[0m
                [40mThis option may be used to ensure that the files and/or[0m
                [40mdirectories are deleted or replaced by the command.  Defaults[0m
                [40mto the user's [4mdelete_file_preference[24m if not specified, see[0m
                [4m[40maeuconf[24m(5) for more information.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Verify_Symbolic_Links[0m
                [40mThis option may be used to request that the symbolic links, or[0m
                [40mhard links, or file copies, in the work area be updated to[0m
                [40mreflect the current state of the baseline.  This is controlled[0m
                [40mby the [4mdevelopment_directory_style[24m field of the project[0m
                [40mconfiguration file.  Only files which are not involved in the[0m
                [40mchange are updated.  See also the "symbolic_links_preference"[0m
                [40mfield of [4maeuconf[24m(5).  This option is the default, if[0m
                [40mmeaningful for your configuration.  The name is an historical[0m
                [40maccident, hard links and file copies are included.[0m

        [1m[40m-Assume_Symbolic_Links[0m
                [40mThis option may be used to request that no update of baseline[0m
                [40mmirror files take place.  This options is useful when you[0m
                [4m[40mdefinitely[24m [4mknow[24m the files' up-to-date-ness isn't important[0m
                [40mright now; incorrect use of this option may have unanticipated[0m
                [40mbuild side-effects.  See also the "symbolic_links_preference"[0m
                [40mfield of [4maeuconf[24m(5).  This option is the default, if not[0m
                [40mmeaningful for your configuration.  The name is an historical[0m
                [40maccident, hard links and file copies are included.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aemtu 'aegis -mtu \!* -v'[0m
        [40msh$     aemtu(){aegis -mtu "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mbeing[24m [4mdeveloped[24m state.[0m
        [40mIt is an error if the change is not assigned to the current user.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maecpu[24m(1)[0m
                [40mno longer modify a file[0m

        [4m[40maemt[24m(1) make branch files transparent[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -MoVe_file(1)                                        aegis -MoVe_file(1)



[40m[1mNAME[0m
        [40maegis move file - rename one or more files as part of a change[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -MoVe_file [22m[ [4moption[24m...  ] [4mold-name[24m [4mnew-name[24m [4m[[24m [4mold1[24m [4mnew1[24m [4m[[24m [4mold2[0m
        [4m[40mnew2[24m [4m][24m [4m][0m
        [1m[40maegis -MoVe_file -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -MoVe_file -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-MoVe_file[24m command is used to copy a file into a change and[0m
        [40mchange its name at the same time.[0m

        [40mThe named files will be copied from the baseline ([4mold-file[24m) into the[0m
        [40mdevelopment directory ([4mnew-file[24m), and added to the list of files in[0m
        [40mthe change.[0m

        [40mWarning: If there is already files in the development directory of[0m
        [40meither the [4mold-name[24m or the [4mnew-name[24m they will be overwritten.[0m

        [40mThe [4mold-file[24m in the development directory will contain 1KB of random[0m
        [40mtext.  The random text is sufficiently revolting that most compilers[0m
        [40mwill give error messages, should the file be referenced accidentally.[0m
        [40mThis is often very helpful when moving include files.[0m

        [40mYou may rename directories.  All the files in the [4mold-name[24m directory[0m
        [40mtree will be renamed to be below the [4mnew-name[24m directory tree.[0m

   [1m[40mFile Name Interpretation[0m
        [40mThe aegis program will attempt to determine the project file names[0m
        [40mfrom the file names given on the command line.  All file names are[0m
        [40mstored within aegis projects as relative to the root of the baseline[0m
        [40mdirectory tree.  The development directory and the integration[0m
        [40mdirectory are shadows of this baseline directory, and so these[0m
        [40mrelative names apply here, too.  Files named on the command line are[0m
        [40mfirst converted to absolute paths if necessary.  They are then[0m
        [40mcompared with the baseline path, the development directory path, and[0m
        [40mthe integration directory path, to determine a baseline-relative name.[0m
        [40mIt is an error if the file named is outside one of these directory[0m
        [40mtrees.[0m

        [40mThe [1m-BAse_RElative [22moption may be used to cause relative filenames to[0m
        [40mbe interpreted as relative to the baseline path; absolute filenames[0m
        [40mwill still be compared with the various paths in order to determine a[0m
        [40mbaseline-relative name.[0m

        [40mThe [4mrelative_filename_preference[24m in the user configuration file may be[0m
        [40mused to modify this default behavior.  See [4maeuconf[24m(5) for more[0m
        [40minformation.[0m

   [1m[40mProcess Side Effects[0m
        [40mThis command will cancel any build or test registrations, because[0m
        [40madding another file logically invalidates them.[0m

        [40mWhen the change files are listed ([4maegis[24m [4m-List[24m [4mChange_Files[24m [4m-TERse[24m) the[0m
        [40mnew files ([4mnew-name[24m) will appear in the listing, and the removed files[0m
        [40m([4mold-name[24m) will [1mnot [22mappear in the terse listing.  Similarly, when the[0m
        [40mproject files are listed with an explicit change number ([4maegis[24m [4m-List[0m
        [4m[40mProject_Files[24m [4m-TERse[24m [4m-Change[24m N) none of the change's files, including[0m
        [40mboth the new and removed files, will appear in the terse listing.[0m
        [40mThese two features are very helpful when calling aegis from within a[0m
        [40mDMT to generate the list of source files.[0m

   [1m[40mNotification[0m
        [40mThe [4mnew_file_command[24m and [4mremove_file_command[24m in the project [4mconfig[0m
        [40mfile are run, if set.  The [4mproject_file_command[24m is also run, if set,[0m
        [40mand if there has been an integration recently.  See [4maepconf[24m(5) for[0m
        [40mmore information.[0m

[1m[40mWHITEOUT[0m
        [40mAegis provides you with what is often called a "view path" which[0m
        [40mindicates to development tools (compilers, build systems, [4metc[24m) look[0m
        [40mfirst in the development directory, then in the branch baseline, and[0m
        [40mso on up to the trunk baseline.[0m

        [40mThe problem with view paths is that in order to remove files, you need[0m
        [40msome kind of "whiteout" to say "stop looking, it's been removed."[0m

        [40mWhen you user the [4maerm[24m(1) or [4maemv[24m(1) commands, this means "add[0m
        [40minformation to this change which will remove the file from the[0m
        [40mbaseline when this change is integrated".  [4mI.e.[24m while the change is in[0m
        [40mthe [4mbeing[24m [4mdeveloped[24m state, the file is only "removed" in the[0m
        [40mdevelopment directory - it's still present in the baseline, and will[0m
        [40mbe until the change is successfully integrated.[0m

        [40mWhen you use the [4maerm[24m(1) or [4maemv[24m(1) commands, Aegis will create a 1K[0m
        [40mfile to act as the whiteout.  It's contents are rather ugly so that if[0m
        [40myou compile or include the "removed" file accidentally, you get a[0m
        [40mfatal error.  This will remind you to remove obsolete references.[0m

        [40mWhen the change in integrated, the removed file is [4mnot[24m copied/linked[0m
        [40mfrom the baseline to the integration directory, and is [4mnot[24m copied from[0m
        [40mthe development directory.  At this time it is physically gone (no[0m
        [40mwhiteout).  It is assumed that because of the error inducing whiteout[0m
        [40mall old references were found and fixed while the change was in the[0m
        [4m[40mbeing[24m [4mdeveloped[24m state.[0m

   [1m[40mFile Manifests[0m
        [40mWhen generating list of files to be compiled or linked, it is[0m
        [40mimportant that the file manifest be generated from information known[0m
        [40mby Aegis, rather than from the file system.  This is for several[0m
        [40mreasons:[0m

        [40m(a) Aegis knows exactly what (source) files are where, whereas[0m
            [40meverything else is inferring Aegis' knowledge; and[0m

        [40m(b) looking in the file system is hard when the view path is longer[0m
            [40mthat 2 directories (and Aegis' branching method can make it[0m
            [40marbitrarily long); and[0m

        [40m(c) The whiteout files, and anything else left "lying around", will[0m
            [40mconfuse any method which interrogates the file system.[0m

        [40mThe easiest way to use Aegis' file knowledge is with something like an[0m
        [4m[40mawk[24m(1) script processing the Aegis file lists.  For example, you can[0m
        [40mdo this with [4mmake[24m(1) as follows:[0m
                [40m# generate the file manifest[0m
                [40mmanifest.make.inc: manifest.make.awk[0m
                     [40m( aegis -l cf -ter ; aegis -l pf -ter ) | \[0m
                     [40mawk -f manifest.make.awk > manifest.make.inc[0m
                [40m# now include the file manifest[0m
                [40minclude manifest.make.inc[0m
        [40mNote: this would be inefficient of you did it once per directory, but[0m
        [40mthere is nothing stopping you writing numerous assignments into the[0m
        [4m[40mmanifest.make.inc[24m file, all in one pass.[0m

        [40mIt is possible to do the same thing with Aegis' report generator (see[0m
        [4m[40maer[24m(1) for more information), but this is more involved than the[0m
        [4m[40mawk[24m(1) script.  However, with the information "straight from the[0m
        [40mhorse's mouth" as it were, it can also be much smarter.[0m

        [40mThis file manifest would become out-of-date without an interlock to[0m
        [40mAegis' file operations commands.  By using the [4mproject-file_command[0m
        [40mand [4mchange_file_command[24m fields of the project [4mconfig[24m file (see[0m
        [4m[40maepconf[24m(5) for more information), you can delete this file at[0m
        [40mstrategic times.[0m
                [40m/* run when the change file manifest is altered */[0m
                [40mchange_file_command = "rm -f manifest.make.inc";[0m
                [40m/* run when the project file manifest is altered */[0m
                [40mproject_file_command = "rm -f manifest.make.inc";[0m
        [40mThe new file manifest will thus be re-built during the next [4maeb[24m(1)[0m
        [40mcommand.[0m

   [1m[40mOptions and Preferences[0m
        [40mThere is a [1m-No-WhiteOut [22moption, which may be used to suppress whiteout[0m
        [40mfiles when you use the [4maerm[24m(1) and [4maemv[24m(1) commands.  There is a[0m
        [40mcorresponding [1m-WhiteOut [22moption, which is usually the default.[0m

        [40mThere is a [4mwhiteout_preference[24m field in the user preferences file (see[0m
        [4m[40maeuconf[24m(5) for more information) if you want to set this option more[0m
        [40mpermanently.[0m

   [1m[40mWhiteout File Templates[0m
        [40mThe [4mwhiteout_template[24m field of the project [4mconfig[24m file may be used to[0m
        [40mproduce language-specific error files.  If no whiteout template entry[0m
        [40mmatches, a very ugly 1KB file will be produced - it should induce[0m
        [40mcompiler errors for just about any language.[0m

        [40mIf you want a more human-readable error message, entries such as[0m
                [40mwhiteout_template =[0m
                [40m[[0m
                     [40m{[0m
                     [40mpattern = [ "*.[ch]" ];[0m
                     [40mbody = "#error This file has been removed.";[0m
                     [40m}[0m
                [40m];[0m
        [40mcan be very effective (this example assumes [4mgcc[24m(1) is being used).[0m

        [40mIf it is essential that [4mno[24m whiteout file be produced, say for C source[0m
        [40mfiles, you could use a whiteout template such as[0m
                [40mwhiteout_template =[0m
                [40m[[0m
                     [40m{ pattern = [ "*.c" ]; }[0m
                [40m];[0m
        [40mbecause an absent [4mbody[24m sub-field means generate no whiteout file at[0m
        [40mall.[0m

        [40mYou may have more than one whiteout template entry, but note that the[0m
        [40morder of the entries is important.  The first entry which matches will[0m
        [40mbe used.[0m

   [1m[40mNotification[0m
        [40mOn successful completion of this command, the notifications usually[0m
        [40mperformed by the [4maerm[24m(1), [4maenf[24m(1) and [4maent[24m(1) commands are run, as[0m
        [40mappropriate.  These include the [4mproject_file_command[24m, [4mnew_file_-[0m
        [4m[40mcommand[24m, [4mnew_test_command[24m and [4mremove_file_command[24m fields of the[0m
        [40mproject [4mconfig[24m file.  See [4maepconf[24m(5) for more information.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Not_Logging[0m
                [40mThis option may be used to disable the automatic logging of[0m
                [40moutput and errors to a file.  This is often useful when[0m
                [40mseveral aegis commands are combined in a shell script.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-WhiteOut[0m
                [40mThis option may be used to request that deleted files be[0m
                [40mreplaced by a "whiteout" file in the development directory.[0m
                [40mThe idea is that compiling such a file will result in a fatal[0m
                [40merror, in order that all references may be found.  This is[0m
                [40musually the default.[0m

        [1m[40m-No_WhiteOut[0m
                [40mThis option may be used to request that no "whiteout" file be[0m
                [40mplaced in the development directory.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aemv 'aegis -mv \!* -v'[0m
        [40msh$     aemv(){aegis -mv "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mbeing[24m [4mdeveloped[24m state.[0m
        [40mIt is an error if the change is not assigned to the current user.[0m
        [40mIt is an error if either file is already in the change.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maecp[24m(1) copy files into a change[0m

        [4m[40maedb[24m(1) begin development of a change[0m

        [4m[40maemvu[24m(1)[0m
                [40mundo the rename files as part of a change[0m

        [4m[40maenf[24m(1) add files to be created by a change[0m

        [4m[40maenfu[24m(1)[0m
                [40mremove files to be created by a change[0m

        [4m[40maerm[24m(1) add files to be deleted by a change[0m

        [4m[40maermu[24m(1)[0m
                [40mremove files to be deleted by a change[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -MoVe_file_Undo(1)                              aegis -MoVe_file_Undo(1)



[40m[1mNAME[0m
        [40maegis move file undo - undo the rename a file as part of a change[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -MoVe_file_Undo [22m[ [4moption[24m...  ] [4mfilename[24m...[0m
        [1m[40maegis -MoVe_file_Undo -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -MoVe_file_Undo -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-MoVe_file_Undo[24m command is used to reverse the effects of[0m
        [40mthe [4maegis[24m [4m-MoVe_file[24m command.  You only need to name one half of the[0m
        [40mrename, the other half will be determined automatically.  You may[0m
        [40mapply this command to whole directories.[0m

        [40mThe named files will be removed from the development directory, and[0m
        [40mremoved from the list of files in the change.[0m

   [1m[40mFile Name Interpretation[0m
        [40mThe aegis program will attempt to determine the project file names[0m
        [40mfrom the file names given on the command line.  All file names are[0m
        [40mstored within aegis projects as relative to the root of the baseline[0m
        [40mdirectory tree.  The development directory and the integration[0m
        [40mdirectory are shadows of this baseline directory, and so these[0m
        [40mrelative names apply here, too.  Files named on the command line are[0m
        [40mfirst converted to absolute paths if necessary.  They are then[0m
        [40mcompared with the baseline path, the development directory path, and[0m
        [40mthe integration directory path, to determine a baseline-relative name.[0m
        [40mIt is an error if the file named is outside one of these directory[0m
        [40mtrees.[0m

        [40mThe [1m-BAse_RElative [22moption may be used to cause relative filenames to[0m
        [40mbe interpreted as relative to the baseline path; absolute filenames[0m
        [40mwill still be compared with the various paths in order to determine a[0m
        [40mbaseline-relative name.[0m

        [40mThe [4mrelative_filename_preference[24m in the user configuration file may be[0m
        [40mused to modify this default behavior.  See [4maeuconf[24m(5) for more[0m
        [40minformation.[0m

   [1m[40mProcess Side Effects[0m
        [40mThis command will cancel any build or test registrations, because[0m
        [40madding another file logically invalidates them.[0m

   [1m[40mNotification[0m
        [40mThe [4mnew_file_undo_command[24m and [4mremove_file_undo_command[24m in the project[0m
        [4m[40mconfig[24m file are run, if set.  The [4mproject_file_command[24m is also run, if[0m
        [40mset, and if there has been an integration recently.  See [4maepconf[24m(5)[0m
        [40mfor more information.[0m

[1m[40mWHITEOUT[0m
        [40mAegis provides you with what is often called a "view path" which[0m
        [40mindicates to development tools (compilers, build systems, [4metc[24m) look[0m
        [40mfirst in the development directory, then in the branch baseline, and[0m
        [40mso on up to the trunk baseline.[0m

        [40mThe problem with view paths is that in order to remove files, you need[0m
        [40msome kind of "whiteout" to say "stop looking, it's been removed."[0m

        [40mWhen you user the [4maerm[24m(1) or [4maemv[24m(1) commands, this means "add[0m
        [40minformation to this change which will remove the file from the[0m
        [40mbaseline when this change is integrated".  [4mI.e.[24m while the change is in[0m
        [40mthe [4mbeing[24m [4mdeveloped[24m state, the file is only "removed" in the[0m
        [40mdevelopment directory - it's still present in the baseline, and will[0m
        [40mbe until the change is successfully integrated.[0m

        [40mWhen you use the [4maerm[24m(1) or [4maemv[24m(1) commands, Aegis will create a 1K[0m
        [40mfile to act as the whiteout.  It's contents are rather ugly so that if[0m
        [40myou compile or include the "removed" file accidentally, you get a[0m
        [40mfatal error.  This will remind you to remove obsolete references.[0m

        [40mWhen the change in integrated, the removed file is [4mnot[24m copied/linked[0m
        [40mfrom the baseline to the integration directory, and is [4mnot[24m copied from[0m
        [40mthe development directory.  At this time it is physically gone (no[0m
        [40mwhiteout).  It is assumed that because of the error inducing whiteout[0m
        [40mall old references were found and fixed while the change was in the[0m
        [4m[40mbeing[24m [4mdeveloped[24m state.[0m

   [1m[40mFile Manifests[0m
        [40mWhen generating list of files to be compiled or linked, it is[0m
        [40mimportant that the file manifest be generated from information known[0m
        [40mby Aegis, rather than from the file system.  This is for several[0m
        [40mreasons:[0m

        [40m(a) Aegis knows exactly what (source) files are where, whereas[0m
            [40meverything else is inferring Aegis' knowledge; and[0m

        [40m(b) looking in the file system is hard when the view path is longer[0m
            [40mthat 2 directories (and Aegis' branching method can make it[0m
            [40marbitrarily long); and[0m

        [40m(c) The whiteout files, and anything else left "lying around", will[0m
            [40mconfuse any method which interrogates the file system.[0m

        [40mThe easiest way to use Aegis' file knowledge is with something like an[0m
        [4m[40mawk[24m(1) script processing the Aegis file lists.  For example, you can[0m
        [40mdo this with [4mmake[24m(1) as follows:[0m
                [40m# generate the file manifest[0m
                [40mmanifest.make.inc: manifest.make.awk[0m
                     [40m( aegis -l cf -ter ; aegis -l pf -ter ) | \[0m
                     [40mawk -f manifest.make.awk > manifest.make.inc[0m
                [40m# now include the file manifest[0m
                [40minclude manifest.make.inc[0m
        [40mNote: this would be inefficient of you did it once per directory, but[0m
        [40mthere is nothing stopping you writing numerous assignments into the[0m
        [4m[40mmanifest.make.inc[24m file, all in one pass.[0m

        [40mIt is possible to do the same thing with Aegis' report generator (see[0m
        [4m[40maer[24m(1) for more information), but this is more involved than the[0m
        [4m[40mawk[24m(1) script.  However, with the information "straight from the[0m
        [40mhorse's mouth" as it were, it can also be much smarter.[0m

        [40mThis file manifest would become out-of-date without an interlock to[0m
        [40mAegis' file operations commands.  By using the [4mproject-file_command[0m
        [40mand [4mchange_file_command[24m fields of the project [4mconfig[24m file (see[0m
        [4m[40maepconf[24m(5) for more information), you can delete this file at[0m
        [40mstrategic times.[0m
                [40m/* run when the change file manifest is altered */[0m
                [40mchange_file_command = "rm -f manifest.make.inc";[0m
                [40m/* run when the project file manifest is altered */[0m
                [40mproject_file_command = "rm -f manifest.make.inc";[0m
        [40mThe new file manifest will thus be re-built during the next [4maeb[24m(1)[0m
        [40mcommand.[0m

   [1m[40mOptions and Preferences[0m
        [40mThere is a [1m-No-WhiteOut [22moption, which may be used to suppress whiteout[0m
        [40mfiles when you use the [4maerm[24m(1) and [4maemv[24m(1) commands.  There is a[0m
        [40mcorresponding [1m-WhiteOut [22moption, which is usually the default.[0m

        [40mThere is a [4mwhiteout_preference[24m field in the user preferences file (see[0m
        [4m[40maeuconf[24m(5) for more information) if you want to set this option more[0m
        [40mpermanently.[0m

   [1m[40mWhiteout File Templates[0m
        [40mThe [4mwhiteout_template[24m field of the project [4mconfig[24m file may be used to[0m
        [40mproduce language-specific error files.  If no whiteout template entry[0m
        [40mmatches, a very ugly 1KB file will be produced - it should induce[0m
        [40mcompiler errors for just about any language.[0m

        [40mIf you want a more human-readable error message, entries such as[0m
                [40mwhiteout_template =[0m
                [40m[[0m
                     [40m{[0m
                     [40mpattern = [ "*.[ch]" ];[0m
                     [40mbody = "#error This file has been removed.";[0m
                     [40m}[0m
                [40m];[0m
        [40mcan be very effective (this example assumes [4mgcc[24m(1) is being used).[0m

        [40mIf it is essential that [4mno[24m whiteout file be produced, say for C source[0m
        [40mfiles, you could use a whiteout template such as[0m
                [40mwhiteout_template =[0m
                [40m[[0m
                     [40m{ pattern = [ "*.c" ]; }[0m
                [40m];[0m
        [40mbecause an absent [4mbody[24m sub-field means generate no whiteout file at[0m
        [40mall.[0m

        [40mYou may have more than one whiteout template entry, but note that the[0m
        [40morder of the entries is important.  The first entry which matches will[0m
        [40mbe used.[0m

   [1m[40mNotification[0m
        [40mOn successful completion of this command, the notifications usually[0m
        [40mperformed by the [4maermu[24m(1), [4maenfu[24m(1) and [4maentu[24m(1) commands are run, as[0m
        [40mappropriate.  These include the [4mproject_file_command[24m, [4mnew_file_undo_-[0m
        [4m[40mcommand[24m, [4mnew_test_undo_command[24m and [4mremove_file_undo_command[24m fields of[0m
        [40mthe project [4mconfig[24m file.  See [4maepconf[24m(5) for more information.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Not_Logging[0m
                [40mThis option may be used to disable the automatic logging of[0m
                [40moutput and errors to a file.  This is often useful when[0m
                [40mseveral aegis commands are combined in a shell script.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Verify_Symbolic_Links[0m
                [40mThis option may be used to request that the symbolic links, or[0m
                [40mhard links, or file copies, in the work area be updated to[0m
                [40mreflect the current state of the baseline.  This is controlled[0m
                [40mby the [4mdevelopment_directory_style[24m field of the project[0m
                [40mconfiguration file.  Only files which are not involved in the[0m
                [40mchange are updated.  See also the "symbolic_links_preference"[0m
                [40mfield of [4maeuconf[24m(5).  This option is the default, if[0m
                [40mmeaningful for your configuration.  The name is an historical[0m
                [40maccident, hard links and file copies are included.[0m

        [1m[40m-Assume_Symbolic_Links[0m
                [40mThis option may be used to request that no update of baseline[0m
                [40mmirror files take place.  This options is useful when you[0m
                [4m[40mdefinitely[24m [4mknow[24m the files' up-to-date-ness isn't important[0m
                [40mright now; incorrect use of this option may have unanticipated[0m
                [40mbuild side-effects.  See also the "symbolic_links_preference"[0m
                [40mfield of [4maeuconf[24m(5).  This option is the default, if not[0m
                [40mmeaningful for your configuration.  The name is an historical[0m
                [40maccident, hard links and file copies are included.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-WhiteOut[0m
                [40mThis option may be used to request that deleted files be[0m
                [40mreplaced by a "whiteout" file in the development directory.[0m
                [40mThe idea is that compiling such a file will result in a fatal[0m
                [40merror, in order that all references may be found.  This is[0m
                [40musually the default.[0m

        [1m[40m-No_WhiteOut[0m
                [40mThis option may be used to request that no "whiteout" file be[0m
                [40mplaced in the development directory.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aemvu 'aegis -mvu \!* -v'[0m
        [40msh$     aemvu(){aegis -mvu "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mbeing[24m [4mdeveloped[24m state.[0m
        [40mIt is an error if the change is not assigned to the current user.[0m
        [40mIt is an error if the file is not being moved by the change.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maecp[24m(1) copy files into a change[0m

        [4m[40maedb[24m(1) begin development of a change[0m

        [4m[40maemv[24m(1) rename files as part of a change[0m

        [4m[40maenf[24m(1) add files to be created by a change[0m

        [4m[40maenfu[24m(1)[0m
                [40mremove files to be created by a change[0m

        [4m[40maerm[24m(1) add files to be deleted by a change[0m

        [4m[40maermu[24m(1)[0m
                [40mremove files to be deleted by a change[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -New_Administrator(1)                        aegis -New_Administrator(1)



[40m[1mNAME[0m
        [40maegis new administrator - add a new administrator to a project[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -New_Administrator [4m[22muser-name[24m...  [ [4moption[24m...  ][0m
        [1m[40maegis -New_Administrator -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -New_Administrator -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-New_Administrator[24m command is used to add a new[0m
        [40madministrator to a project.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Descend_Project_Tree[0m
                [40mThis option may be used to request that the command should be[0m
                [40mapplied to the project and all its branches and sub-branches.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aena 'aegis -na \!* -v'[0m
        [40msh$     aena(){aegis -na "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the current user is not an administrator of the[0m
        [40mproject.[0m
        [40mIt is an error if any of the named users have a uid of less than 100.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maepa[24m(1) modify the attributes of a project[0m

        [4m[40maera[24m(1) remove administrators from a project[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -New_BRanch(1)                                      aegis -New_BRanch(1)



[40m[1mNAME[0m
        [40maegis new branch - create a new branch[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -New_BRanch [22m[ [4mnumber[24m ][ [4moption[24m...  ][0m
        [1m[40maegis -New_BRanch -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-New_BRanch[24m command is used to create a new branch.  A[0m
        [40mbranch is very similar to a [4mchange[24m, except that a branch may have[0m
        [40mchanges (or branches) of its own, and a change may not.[0m

        [40mYou may choose your own branch number, if you want.  Zero and[0m
        [40mpositives are legal, but negatives are not.  It is an error if that[0m
        [40mnumber has already been used for a change or another branch.  If you[0m
        [40mdo not specify a change number, the lowest available positive number[0m
        [40m(1 or more) will be used.[0m

        [40mThe new branch will be a special sort of change.  It will be in the[0m
        [40m'[4mbeing[24m [4mdeveloped[24m' state, but the usual commands in that stat (build,[0m
        [40mdiff, etc) will not work.  Instead, you must create changes on the[0m
        [40mbranch, and when those changes are integrated into the branch, this is[0m
        [40mthe equivalent of build, diff, etc, on the branch.  Once the branch is[0m
        [40mcompleted, the [4maede[24m(1) command may be used to advance it to the [4mbeing[0m
        [4m[40mreviewed[24m state, and from then on it becomes a normal change.  Should[0m
        [40mit be returned to the [4mbeing[24m [4mdeveloped[24m state for any reason, it will[0m
        [40monce again require sub-changes to alter anything.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-Output [4m[22mfilename[0m
                [40mThis option may be used to specify a filename which is to be[0m
                [40mwritten with the automatically determined branch number.[0m
                [40mUseful for writing scripts.[0m

        [1m[40m-REAson [4m[22mtext[0m
                [40mThis option may be used to attach a comment to the change[0m
                [40mhistory generated by this command.  You will need to use[0m
                [40mquotes to insulate the spaces from the shell.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aenbr 'aegis -nbr \!* -v'[0m
        [40msh$     aenbr(){aegis -nbr "$@" -v}[0m

[1m[40mSEE ALSO[0m
        [4m[40maenbru[24m(1)[0m
                [40mremove a branch[0m

        [4m[40maenc[24m(1) create a new change[0m

        [4m[40maede[24m(1) develop end[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -New_BRanch_Undo(1)                            aegis -New_BRanch_Undo(1)



[40m[1mNAME[0m
        [40maegis new branch undo - remove a branch[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -New_BRanch_Undo [4m[22mnumber[24m [ [4moption[24m...  ][0m
        [1m[40maegis -New_BRanch_Undo -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-New_BRanch_Undo[24m command is used to remove a branch created[0m
        [40mwith the [4maenbr[24m(1) command.[0m

        [1m[40mNote: [22mThis command will completely remove all trace of the branch from[0m
        [40mAegis' database.  This includes all changes performed on the branch[0m
        [40mand all of its sub-branches.  (This history remains in the history[0m
        [40mfiles, but is inaccessible.)[0m

        [40mIf you wish to finish development of a branch, and commit all of its[0m
        [40mchanges to the parent branch, use the [4maede[24m(1) command, instead.[0m

        [40mIf you wish to stop anyone from developing more changes on the branch,[0m
        [40muse the [4maerd[24m(1) command to remove all the developers.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-Keep[0m
                [40mThis option may be used to retain files and/or directories[0m
                [40musually deleted or replaced by the command.  Defaults to the[0m
                [40muser's [4mdelete_file_preference[24m if not specified, see [4maeuconf[24m(5)[0m
                [40mfor more information.[0m

        [1m[40m-No_Keep[0m
                [40mThis option may be used to ensure that the files and/or[0m
                [40mdirectories are deleted or replaced by the command.  Defaults[0m
                [40mto the user's [4mdelete_file_preference[24m if not specified, see[0m
                [4m[40maeuconf[24m(5) for more information.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maenbr[24m(1)[0m
                [40mcreate a new branch[0m

        [4m[40maencu[24m(1)[0m
                [40mnew change undo[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -New_Change(1)                                      aegis -New_Change(1)



[40m[1mNAME[0m
        [40maegis new change - add a new change to a project[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -New_Change [22m[ [4mnumber[24m ] [1m-File [4m[22mattr-file[24m [ [4moption[24m...  ][0m
        [1m[40maegis -New_Change [22m[ [4mnumber[24m ] [1m-Edit [22m[ [4moption[24m...  ][0m
        [1m[40maegis -New_Change -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -New_Change -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-New_Change[24m command is used to add a new change to a[0m
        [40mproject.  See [4maecattr[24m(5) for information on the format of the [4mattr-[0m
        [4m[40mfile[24m.[0m

        [40mThe change is created in the [4mawaiting[24m [4mdevelopment[24m state.  The change[0m
        [40mis not assigned to any user.  The change has no development directory.[0m
[40m                                      |[0m
                            [40mnew       |new[0m
                           [40mchange     |change[0m
                            [40mundo[0m
                                  [40mawaiting[0m
                                 [40mdevelopment[0m
                                      [40m|[0m
                           [40mdevelop    |develop[0m
                           [40mbegin      |begin[0m
                           [40mundo[0m
                                    [40mbeing[0m
                                  [40mdeveloped[0m



        [40mYou may choose your own change number if you want, provided that it[0m
        [40mhas not been used already.  If you do not specify a change number,[0m
        [40maegis will allocate the lowest unused change number.  The first few[0m
        [40mchange numbers are reserved for branches later in the project, and so[0m
        [40mautomatically allocated change numbers will usually not start from 1.[0m
        [40mSee [4maepa[24m(1) and [4maepattr[24m(5) for more information.[0m

        [40mYou [1mmust [22mgive the [1m-Project [22moption, see below.[0m

   [1m[40mNotification[0m
        [40mThis is one of the rare "state transitions" which does not have a[0m
        [40mnotification command.  The assumption is this command is invoked by[0m
        [40mthe system which usually receives notifications.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Edit[0m
                [40mEdit the attributes with a text editor, this is usually more[0m
                [40mconvenient than supplying a text file.  The [4mVISUAL[24m and then[0m
                [4m[40mEDITOR[24m environment variables are consulted for the name of the[0m
                [40meditor to use; defaults to [4mvi[24m(1) if neither is set.  See the[0m
                [4m[40mvisual_command[24m and [4meditor_command[24m fields in [4maeuconf[24m(1) for how[0m
                [40mto override this specifically for Aegis.[0m

                [40mWarning: Aegis tries to be well behaved when faced with[0m
                [40merrors, so the temporary file is left in your home directory[0m
                [40mwhere you can edit it further and re-use it with a [1m-file[0m
                [40moption.[0m

                [40mThe [1m-edit [22moption may not be used in the background, or when[0m
                [40mthe standard input is not a terminal.[0m

        [1m[40m-Edit_BackGround[0m
                [40mEdit the attributes with a dumb text editor, this is most[0m
                [40moften desired when edit commands are being piped into the[0m
                [40meditor via the standard input.  Only the [1mEDITOR [22menvironment[0m
                [40mvariable is consulted for the name of the editor to use; it is[0m
                [40ma fatal error if it is not set.  See the [4meditor_command[24m field[0m
                [40min [4maeuconf[24m(1) for how to override this specifically for Aegis.[0m

        [1m[40m-File [4m[22mfilename[0m
                [40mTake the attributes from the specified file.  The filename `-'[0m
                [40mis understood to mean the standard input.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Output [4m[22mfilename[0m
                [40mThis option may be used to specify a filename which is to be[0m
                [40mwritten with the automatically determined change number.[0m
                [40mUseful for writing scripts.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option is used to select the project for the new change.[0m

                [40mYou [1mmust [22msupply the [1m-Project [22moption to this command.[0m
                [40mExperience has shown that when a site has a number of active[0m
                [40mprojects or several active branches on a project, new changes[0m
                [40mare frequently created against the wrong project or the wrong[0m
                [40mbranch.  Making the project explicit reduces this problem.[0m

        [1m[40m-REAson [4m[22mtext[0m
                [40mThis option may be used to attach a comment to the change[0m
                [40mhistory generated by this command.  You will need to use[0m
                [40mquotes to insulate the spaces from the shell.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aenc 'aegis -nc \!* -v'[0m
        [40msh$     aenc(){aegis -nc "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the current user is not an administrator of the[0m
        [40mproject.  (In some cases it is possible for developers of a project to[0m
        [40mcreate changes, see [4maepattr[24m(5) for more information.)[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40mtkaenc[24m(1)[0m
                [40mGUI interface to the [4maenc[24m(1) command.[0m

        [4m[40maeca[24m(1) modify the attributes of a change[0m

        [4m[40maedb[24m(1) begin development of a change[0m

        [4m[40maena[24m(1) add a new administrator to a project[0m

        [4m[40maencu[24m(1)[0m
                [40mremove a new change from a project[0m

        [4m[40maenpr[24m(1)[0m
                [40mcreate a new project[0m

        [4m[40maepa[24m(1) modify the attributes of a project[0m

        [4m[40maecattr[24m(5)[0m
                [40mchange attributes file format[0m

        [4m[40maepattr[24m(5)[0m
                [40mproject attributes file format[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -New_Change_Undo(1)                            aegis -New_Change_Undo(1)



[40m[1mNAME[0m
        [40maegis new change undo - remove a new change from a project[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -New_Change_Undo [22m[ [4moption[24m...  ][0m
        [1m[40maegis -New_Change_Undo -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -New_Change_Undo -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-New_Change_Undo[24m command is used to remove a new change from[0m
        [40ma project.[0m

        [40mIt wasn't called [4m'aegis[24m [4m-Remove_Change'[24m in order to emphasize that[0m
        [40mfact the the change must be in the [4mawaiting[24m [4mdevelopment[24m state.  In[0m
        [40mpractice it is possible, with a combination of commands, to remove any[0m
        [40mchange which has not reached the [4mcompleted[0m
[40m                                      |[0m
                            [40mnew       |new[0m
                           [40mchange     |change[0m
                            [40mundo[0m
                                  [40mawaiting[0m
                                 [40mdevelopment[0m
                                      [40m|[0m
                           [40mdevelop    |develop[0m
                           [40mbegin      |begin[0m
                           [40mundo[0m
                                    [40mbeing[0m
                                  [40mdeveloped[0m


        [40mstate.[0m

        [40mIn general, only project administrators may destroy changes.  However,[0m
        [40mif the project [4mdevelopers_may_create_changes[24m attribute is true, and[0m
        [40myou are a developer and you created a particular change, you may also[0m
        [40mdestroy it.[0m

   [1m[40mNotification[0m
        [40mThis is one of the rare "state transitions" which does not have a[0m
        [40mnotification command.  The assumption is this command is invoked by[0m
        [40mthe system which usually receives notifications.  It's probably a bad[0m
        [40massumption.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aencu 'aegis -ncu \!* -v'[0m
        [40msh$     aencu(){aegis -ncu "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mawaiting[24m [4mdevelopment[24m state.[0m
        [40mIt is an error if any use other than a project administrator or the[0m
        [40mcreator of the change attempts to run this command.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maenc[24m(1) add a new change to a project[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -New_Developer(1)                                aegis -New_Developer(1)



[40m[1mNAME[0m
        [40maegis new developer - add new developers to a project[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -New_Developer [4m[22muser-name[24m...  [ [4moption[24m...  ][0m
        [1m[40maegis -New_Developer -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -New_Developer -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-New_Developer[24m command is used to add new developers to a[0m
        [40mproject.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Descend_Project_Tree[0m
                [40mThis option may be used to request that the command should be[0m
                [40mapplied to the project and all its branches and sub-branches.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aend 'aegis -nd \!* -v'[0m
        [40msh$     aend(){aegis -nd "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the current user is not an administrator of the[0m
        [40mproject.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maerd[24m(1) remove developers from a project[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -New_File(1)                                          aegis -New_File(1)



[40m[1mNAME[0m
        [40maegis new file - add new files to be created by a change[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -New_File [4m[22mfile-name[24m...  [ [4moption[24m...  ][0m
        [1m[40maegis -New_File -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -New_File -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-New_File[24m command is used to add new files to a change.  The[0m
        [40mnamed files will be added to the list of files in the change.[0m

        [40mFor each file named, a new file is created in the development[0m
        [40mdirectory, if it does not exist already.  If the file already exists,[0m
        [40mit will not be altered.[0m

        [40mIf you want a new source file to be executable (shell scripts, for[0m
        [40mexample) then you simply use the normal [4mchmod[24m(1) command.  If any of[0m
        [40mthe file's executable bits are set at [4maede[24m(1) time the file is[0m
        [40mremembered as executable and all execute bits (minus the project's[0m
        [40mumask) will be set by subsequent [4maecp[24m(1) commands.[0m

        [40mIf you name a directory on the command line, the entire directory tree[0m
        [40mwill be searched for new files.  (Note: absolutely everything will be[0m
        [40madded, including dot files and binary files, so you will need to clean[0m
        [40mout any junk first.)  Files below this named directory which are[0m
        [40malready in the change, or in the project, will be ignored.  The[0m
        [4m[40mfile_name_accept[24m and [4mfile_name_reject[24m patterns in the project[0m
        [4m[40maegis.conf[24m file will also be applied, see [4maepconf[24m(5) for more[0m
        [40minformation.[0m

   [1m[40mDirectory Example[0m
        [40mThere are times when a command such as[0m
                [40m$ [1maenf fubar/*[0m
                [40maegis: project "example": change 42: "fubar/glorp" already in[0m
                [40mchange[0m
                [40maegis: project "example": change 42: found 1 fatal error, no[0m
                [40mnew files added[0m
                [40m$[0m
        [40mwill fail as shown.  There are several ways to deal with this, the[0m
        [40measiest being to simply name the directory:[0m
                [40m$ [1maenf fubar[0m
                [40maegis: project "example": change 42: file "fubar/smiley" added[0m
                [40maegis: project "example": change 42: file "fubar/frownie"[0m
                [40madded[0m
                [40m$[0m
        [40mYou could also use the [4mfind[24m(1) command for arbitrarily complex file[0m
        [40mselection, but you must first exclude files that the above command[0m
        [40mexcludes automatically:[0m
                [40m$ [1maelcf > exclude[0m
                [40m$ [1maelpf >> exclude[0m
                [40m$ [1mfind fubar -type f | \[0m
                    [1m[40mgrep -v -f exclude | \[0m
                    [1m[40mxargs aegis --new-file -v[0m
                [40maegis: project "example": change 42: file "fubar/smiley" added[0m
                [40maegis: project "example": change 42: file "fubar/frownie"[0m
                [40madded[0m
                [40m$[0m
        [40mIf you aren't using the exclude list, the [4mfind[24m(1) command will need[0m
        [40mfine tuning for your development directory style.  If you are using[0m
        [40mthe symlink-style, you will need to add the [4mfind[24m [4m-nlink[24m [4m1[24m option in[0m
        [40maddition to the [4mfind[24m [4m-type[24m [4mf[24m option.[0m
                [40m$ [1mfind fubar -type f -nlinks 1 | \[0m
                    [1m[40mxargs aegis --new-file -v[0m
                [40maegis: project "example": change 42: file "fubar/smiley" added[0m
                [40maegis: project "example": change 42: file "fubar/frownie"[0m
                [40madded[0m
                [40m$[0m
        [40mIf you are using the full-copy development directory style, you will[0m
        [40mhave to use the exclude list method, above.[0m

   [1m[40mFile Templates[0m
        [40mWhen a new file is created in the development directory the project[0m
        [4m[40mconfig[24m file is searched for a template for the new file.  If a[0m
        [40mtemplate is found, the new file will be initialized to the template,[0m
        [40motherwise it will be created empty.  See [4maepconf[24m(5) for more[0m
        [40minformation.[0m

        [40mThe simplest form is to use template files, such as[0m
                [40mfile_template =[0m
                [40m[[0m
                        [40m{[0m
                                [40mpattern = [ "*.c" ];[0m
                                [40mbody = "${read_file ${source template/c abs}}";[0m
                        [40m},[0m
                        [40m{[0m
                                [40mpattern = [ "test/*/.sh" ];[0m
                                [40mbody = "${read_file ${source template/test abs}}";[0m
                        [40m},[0m
                [40m];[0m
        [40mAs you can see, the template files are part of the project source, so[0m
        [40myou can add the appropriate copyright notices, and wrappers, [4metc[24m.  The[0m
        [4m[40m$source[24m substitution locates them, if they are not part of the current[0m
        [40mchange (and they usually are not).[0m

        [40mThe template files themselves contain substitutions.  The [4m$filename[0m
        [40msubstitution is available, and contains the name of the file being[0m
        [40mcreated.  This can be manipulated in various ways when constructing[0m
        [40mthe appropriate file contents.  See [4maesub[24m(5) for more information[0m
        [40mabout substitutions.[0m

        [40mIt is also possible to run a command to create the new file.  You can[0m
        [40mdo this instead of specifying a body string, [4mviz:[0m
                [40mfile_template =[0m
                [40m[[0m
                        [40m{[0m
                                [40mpattern = [ "*" ];[0m
                                [40mbody_command = "perl ${source template.pl abs} $filename";[0m
                        [40m},[0m
                [40m];[0m
        [40mThe command is run with a current directory set to the top of the[0m
        [40mdevelopment directory.  It is an error if the command fails to create[0m
        [40mthe file.  You can mix-and-match the two techniques, [4mbody[24m string and[0m
        [4m[40mbody_command[24m, if you want.[0m

   [1m[40mFile Name Limitations[0m
        [40mThere are a number of controls available to limit the form of project[0m
        [40mfile names.  All of these controls may be found in the project[0m
        [40mconfiguration file, see [4maepconf[24m(5) for more information.  The most[0m
        [40msignificant are briefly described here:[0m

        [40mmaximum_filename_length = integer;[0m
                [40mThis field is used to limit the length of filenames.  All new[0m
                [40mfiles may not have path components longer than this.  Defaults[0m
                [40mto 255 if not set.  For maximum portability you should set[0m
                [40mthis to 14.[0m

        [40mposix_filename_charset = boolean;[0m
                [40mThis field may be used to limit the characters allowed in[0m
                [40mfilenames to only those explicitly allowed by POSIX.  Defaults[0m
                [40mto [4mfalse[24m if not set, meaning whatever your operating system[0m
                [40mwill tolerate, except white space and high-bit-on characters.[0m
                [40mFor maximum portability you should set this to [4mtrue[24m.[0m

        [40mdos_filename_required = boolean;[0m
                [40mThis field may be used to limit filenames so that they conform[0m
                [40mto the DOS 8+3 filename limits and to the DOS filename[0m
                [40mcharacter set.  Defaults to [4mfalse[24m if not set.[0m

        [40mwindows_filename_required = boolean;[0m
                [40mThis field may be used to limit filenames so that they conform[0m
                [40mto the Windows98 and WindowsNT filename limits and character[0m
                [40mset.  Defaults to [4mfalse[24m if not set.[0m

        [40mshell_safe_filenames = boolean;[0m
                [40mThis field may be used to limit filenames so that they do not[0m
                [40mcontain shell special characters.  Defaults to [4mtrue[24m if not[0m
                [40mset.  If this field is set to [4mfalse[24m, you will need to use the[0m
                [4m[40m${quote}[24m substitution around filenames in commands, to ensure[0m
                [40mthat filenames containing shell special characters do not have[0m
                [40munintended side effects.  Weird characters in filenames may[0m
                [40malso confuse your dependency maintenance tool.[0m

        [40mallow_white_space_in_filenames = boolean;[0m
                [40mThis field may be used to allow white space characters in file[0m
                [40mnames.  This will allow the following characters to appear in[0m
                [40mfile names: backspace (BS, \b, 0x08), horizontal tab (HT, \t,[0m
                [40m0x09), new line (NL, \n, 0x0A), vertical tab (VT, \v, 0x0B),[0m
                [40mform feed (FF, \f, 0x0C), and carriage return (CR, \r, 0x0D).[0m
                [40mDefaults to false if not set.[0m

                [40mNote that this field does not override other file name[0m
                [40mfilters.  It will be necessary to explicitly set [4mshell_safe_-[0m
                [4m[40mfilenames[24m [4m=[24m [4mfalse[24m as well.  It will be necessary to set [4mdos_-[0m
                [4m[40mfilename_required[24m [4m=[24m [4mfalse[24m (the default) as well.  It will be[0m
                [40mnecessary to set [4mposix_filename_charset[24m [4m=[24m [4mfalse[24m (the default)[0m
                [40mas well.[0m

                [40mThe user must take great care to use the ${quote} substitution[0m
                [40maround all file names in commands in the project[0m
                [40mconfiguration.  And even then, substitutions which expect a[0m
                [40mspace separated list of file names will have undefined[0m
                [40mresults.[0m

        [40mallow_non_ascii_filenames = boolean;[0m
                [40mThis field may be used to allow file names with non-ascii-[0m
                [40mprintable characters in them.  Usually this would mean a UTF8[0m
                [40mor international charset of some kind.  Defaults to false if[0m
                [40mnot set.[0m

                [40mNote that this field does not override other file name[0m
                [40mfilters.  It will be necessary to explicitly set [4mshell_safe_-[0m
                [4m[40mfilenames[24m [4m=[24m [4mfalse[24m as well.  It will be necessary to set [4mdos_-[0m
                [4m[40mfilename_required[24m [4m=[24m [4mfalse[24m (the default) as well.  It will be[0m
                [40mnecessary to set [4mposix_filename_charset[24m [4m=[24m [4mfalse[24m (the default)[0m
                [40mas well.[0m

        [40mfilename_pattern_accept = [ string ];[0m
                [40mThis field is used to specify a list of patterns of acceptable[0m
                [40mfilenames.  Defaults to "*" if not set.[0m

        [40mfilename_pattern_reject = [ string ];[0m
                [40mThis field is used to specify a list of patterns of[0m
                [40munacceptable filenames.[0m

        [1m[40mPlease Note: [22mAegis also consults the underlying file system, to[0m
        [40mdetermine its notion of maximum file size.  Where the file system's[0m
        [40mmaximum file size is less than [4mmaximum_filename_length[24m, the filesystem[0m
        [40mwins.  This can happen, for example, when you are using the Linux[0m
        [40mUMSDOS file system, or when you have an NFS mounted an ancient V7[0m
        [40mfilesystem.  Setting [4mmaximum_filename_length[24m to 255 in these cases[0m
        [40mdoes not alter the fact that the underlying file systems limits are[0m
        [40mfar smaller (12 and 14, respectively).[0m

        [40mIf your development directories (or your whole project) is on[0m
        [40mfilesystems with filename limitations, or a portion of the[0m
        [40mheterogeneous builds take place in such an environment, it helps to[0m
        [40mtell Aegis what they are (using the project [4mconfig[24m file's fields) so[0m
        [40mthat you don't run into the situation where the project builds on the[0m
        [40mmore permissive environments, but fails with mysterious errors in the[0m
        [40mmore limited environments.[0m

        [40mIf your development directories are routinely on a Linux UMSDOS[0m
        [40mfilesystem, you would probably be better off setting[0m
        [4m[40mdos_filename_required[24m [4m=[24m [4mtrue[24m, and also changing the[0m
        [4m[40mdevelopment_directory_template[24m field.  Heterogeneous development with[0m
        [40mvarious Windows environments may also require this.[0m

   [1m[40mFile Name Interpretation[0m
        [40mThe aegis program will attempt to determine the project file names[0m
        [40mfrom the file names given on the command line.  All file names are[0m
        [40mstored within aegis projects as relative to the root of the baseline[0m
        [40mdirectory tree.  The development directory and the integration[0m
        [40mdirectory are shadows of this baseline directory, and so these[0m
        [40mrelative names apply here, too.  Files named on the command line are[0m
        [40mfirst converted to absolute paths if necessary.  They are then[0m
        [40mcompared with the baseline path, the development directory path, and[0m
        [40mthe integration directory path, to determine a baseline-relative name.[0m
        [40mIt is an error if the file named is outside one of these directory[0m
        [40mtrees.[0m

        [40mThe [1m-BAse_RElative [22moption may be used to cause relative filenames to[0m
        [40mbe interpreted as relative to the baseline path; absolute filenames[0m
        [40mwill still be compared with the various paths in order to determine a[0m
        [40mbaseline-relative name.[0m

        [40mThe [4mrelative_filename_preference[24m in the user configuration file may be[0m
        [40mused to modify this default behavior.  See [4maeuconf[24m(5) for more[0m
        [40minformation.[0m

   [1m[40mChanging the Type of a File[0m
        [40mIf you want to change the type of a file (say, from a test to a source[0m
        [40mfile, or [4mvice[24m [4mversa[24m) you could do it as two changes, by first using[0m
        [4m[40maerm[24m(1) in one change and then using [4maenf[24m(1) or [4maent[24m(1) in a second[0m
        [40mchange, or you can combine both steps in the same change.  Remember to[0m
        [40muse the [4maerm[24m [4m-nowhiteout[24m option or you will get a most peculiar new[0m
        [40mfile template.[0m

   [1m[40mFile Action Adjustment[0m
        [40mWhen this command runs, it first checks the change files against the[0m
        [40mprojects files.  If there are inconsistencies, the file actions will[0m
        [40mbe adjusted as follows:[0m

        [40mcreate  If a file is being created, but another change set is[0m
                [40mintegrated which also creates the file, the file action in the[0m
                [40mchange set still being developed will be adjusted to "modify".[0m

        [40mmodify  If a file is being modified, but another change set is[0m
                [40mintegrated which removes the file, the file action in the[0m
                [40mchange set still being developed will be adjusted to "create".[0m

        [40mremove  If a file is being removed, but another change set is[0m
                [40mintegrated which removes the file, the file will be dropped[0m
                [40mfrom the change set still being developed.[0m

   [1m[40mNotification[0m
        [40mThe [4mnew_file_command[24m in the project configuration file is run, if set.[0m
        [40mThe [4mproject_file_command[24m is also run, if set, and if there has been an[0m
        [40mintegration recently.  See [4maepconf[24m(5) for more information.[0m

[1m[40mTEST CORRELATIONS[0m
        [40mThe "aegis -Test -SUGgest" command may be used to have aegis suggest[0m
        [40msuitable regression tests for your change, based on the source files[0m
        [40min your change.  This automatically focuses testing effort to relevant[0m
        [40mtests, reducing the number of regression tests necessary to be[0m
        [40mconfident that you have not introduced a bug.[0m

        [40mThe test correlations are generated by the "aegis -Integrate_Pass"[0m
        [40mcommand, which associates each test in the change with each source[0m
        [40mfile in the change.  Thus, each source file accumulates a list of[0m
        [40mtests which have been associated with it in the past.  This is not as[0m
        [40mexact as code coverage analysis, but is a reasonable approximation in[0m
        [40mpractice.[0m

        [40mThe [4maecp[24m(1) and [4maenf[24m(1) commands are used to associate files with a[0m
        [40mchange.  While they do not actively perform the association, these are[0m
        [40mthe files used by [4maeipass[24m(1) and [4maet[24m(1) to determine which source[0m
        [40mfiles are associated with which tests.[0m

   [1m[40mTest Correlation Accuracy[0m
        [40mAssuming that the testing correlations are accurate and that the tests[0m
        [40mare evenly distributed across the function space, there will be a less[0m
        [40mthan [4m1/number[24m chance that a relevant test has not been run by the[0m
        [40m"aegis -Test -SUGgest [4mnumber[24m" command.  A small amount of noise is[0m
        [40madded to the test weighting, so that unexpected things are sometimes[0m
        [40mtested, and the same tests are not run every time.[0m

        [40mTest correlation accuracy can be improved by ensuring that:[0m

        [40m+o Each change should be strongly focused, with no gratuitous file[0m
          [40minclusions.  This avoids spurious correlations.[0m

        [40m+o Each item of new functionality should be added in an individual[0m
          [40mchange, rather than several together.  This strongly correlates[0m
          [40mtests with functionality.[0m

        [40m+o Each bug should be fixed in an individual change, rather than[0m
          [40mseveral together.  This strongly correlates tests with[0m
          [40mfunctionality.[0m

        [40m+o Test correlations will be lost if files are moved.  This is because[0m
          [40mcorrelations are by name.[0m

        [40mThe best way for tests to correlate accurately with source files is[0m
        [40mwhen a change contains a test and exactly those files relating to the[0m
        [40mfunctionality under test.  Too many spurious files will weaken the[0m
        [40musefulness of the testing correlations.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood[0m

        [1m[40m-Build[0m
                [40mThis option may be used to specify that the file is[0m
                [40mconstructed during a build (often only an integrate build), so[0m
                [40mthat history of it may be kept.  This is useful for generating[0m
                [40mpatch files, where a history of generated files is important.[0m
                [40mFiles created in this way may not be copied into a change,[0m
                [40mthough they may be deleted.  Avoid using files of this type,[0m
                [40mif at all possible.[0m

        [1m[40m-BAse_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the base of the source tree.  See[0m
                [4m[40maeuconf[24m(5) for the corresponding user preference.[0m

        [1m[40m-CUrrent_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the current directory.  This is usually[0m
                [40mthe default.  See [4maeuconf[24m(5) for the corresponding user[0m
                [40mpreference.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-CONFIGured[0m
                [40mThis option may be used to specify that the file is an Aegis[0m
                [40mproject configuration file.  The default project configuration[0m
                [40mfile is called [4maegis.conf[24m, however any file name may be used.[0m
                [40mYou may also use more than one file, splitting the content[0m
                [40macross several files, all of which must be of this type.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-Keep[0m
                [40mThis option may be used to retain files and/or directories[0m
                [40musually deleted or replaced by the command.  Defaults to the[0m
                [40muser's [4mdelete_file_preference[24m if not specified, see [4maeuconf[24m(5)[0m
                [40mfor more information.[0m

        [1m[40m-No_Keep[0m
                [40mThis option may be used to ensure that the files and/or[0m
                [40mdirectories are deleted or replaced by the command.  Defaults[0m
                [40mto the user's [4mdelete_file_preference[24m if not specified, see[0m
                [4m[40maeuconf[24m(5) for more information.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Not_Logging[0m
                [40mThis option may be used to disable the automatic logging of[0m
                [40moutput and errors to a file.  This is often useful when[0m
                [40mseveral aegis commands are combined in a shell script.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-TEMplate[0m
                [40mThis option may be used to specify that a new file template[0m
                [40mshould be used, even if the file already exists.[0m

        [1m[40m-No_TEMplate[0m
                [40mThis option may be used to specify that a new file template[0m
                [40mshould not be used, even if the file does not exist (any empty[0m
                [40mfile will be created).[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aenf 'aegis -nf \!* -v'[0m
        [40msh$     aenf(){aegis -nf "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mbeing[24m [4mdeveloped[24m state.[0m
        [40mIt is an error if the change is not assigned to the current user.[0m
        [40mIt is an error if the file is already part of the change.[0m
        [40mIt is an error if the file is already part of the baseline.[0m
        [40mIt is an error if the files named on the command line are not normal[0m
        [40mfiles and not directories.  (If you need symbolic links or special[0m
        [40mfiles, create them at build time.)[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maecp[24m(1) copy files into a change[0m

        [4m[40maedb[24m(1) begin development of a change[0m

        [4m[40maemv[24m(1) rename a file as part of a change[0m

        [4m[40maenfu[24m(1)[0m
                [40mremove new files from a change[0m

        [4m[40maent[24m(1) add new tests to a change[0m

        [4m[40maerm[24m(1) add files to be deleted by a change[0m

        [4m[40maepconf[24m(5)[0m
                [40mproject configuration file format[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -New_File_Undo(1)                                aegis -New_File_Undo(1)



[40m[1mNAME[0m
        [40maegis new file undo - remove new files from a change[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -New_File_Undo [4m[22mfile-name[24m...  [ [4moption[24m...  ][0m
        [1m[40maegis -New_File_Undo -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -New_File_Undo -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-New_File_Undo[24m command is used to remove new files from a[0m
        [40mchange (reverse the actions of the 'aegis -New_File' command).  The[0m
        [40mfile is removed from the list of files in the change.[0m

        [40mThe file is removed from the development directory unless the [1m-Keep[0m
        [40moption is used.  The [1m-Keep [22moption should be used with great care, as[0m
        [40myou can confuse tools such as [4mmake[24m(1) by leaving these files in place.[0m

        [40mYou may specify a directory name to remove all new files in the named[0m
        [40mdirectory tree, other files in the tree will be ignored.  It is an[0m
        [40merror if there are no relevant files.[0m

   [1m[40mFile Name Interpretation[0m
        [40mThe aegis program will attempt to determine the project file names[0m
        [40mfrom the file names given on the command line.  All file names are[0m
        [40mstored within aegis projects as relative to the root of the baseline[0m
        [40mdirectory tree.  The development directory and the integration[0m
        [40mdirectory are shadows of this baseline directory, and so these[0m
        [40mrelative names apply here, too.  Files named on the command line are[0m
        [40mfirst converted to absolute paths if necessary.  They are then[0m
        [40mcompared with the baseline path, the development directory path, and[0m
        [40mthe integration directory path, to determine a baseline-relative name.[0m
        [40mIt is an error if the file named is outside one of these directory[0m
        [40mtrees.[0m

        [40mThe [1m-BAse_RElative [22moption may be used to cause relative filenames to[0m
        [40mbe interpreted as relative to the baseline path; absolute filenames[0m
        [40mwill still be compared with the various paths in order to determine a[0m
        [40mbaseline-relative name.[0m

        [40mThe [4mrelative_filename_preference[24m in the user configuration file may be[0m
        [40mused to modify this default behavior.  See [4maeuconf[24m(5) for more[0m
        [40minformation.[0m

   [1m[40mNotification[0m
        [40mThe [4mnew_file_undo_command[24m in the project [4mconfig[24m file is run, if set.[0m
        [40mThe [4mproject_file_command[24m is also run, if set, and if there has been an[0m
        [40mintegration recently.  See [4maepconf[24m(5) for more information.[0m

   [1m[40mProcess Side Effects[0m
        [40mThis command will cancel any build or test registrations, because[0m
        [40mdeleting a file logically invalidates them.[0m

        [40mThe difference file (,D) will also be removed, however any DMT derived[0m
        [40mfiles (e.g a .o file from a .c file) will not be removed.  This is[0m
        [40mbecause aegis is decoupled from the DMT, and cannot know what these[0m
        [40mderived file may be called.  You may need to delete derived files[0m
        [40mmanually.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-BAse_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the base of the source tree.  See[0m
                [4m[40maeuconf[24m(5) for the corresponding user preference.[0m

        [1m[40m-CUrrent_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the current directory.  This is usually[0m
                [40mthe default.  See [4maeuconf[24m(5) for the corresponding user[0m
                [40mpreference.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-Interactive[0m
                [40mSpecify that aegis should ask the user for confirmation before[0m
                [40mdeleting each file.  Answer the question [4myes[24m to delete the[0m
                [40mfile, or [4mno[24m to keep the file.  You can also answer [4mall[24m to[0m
                [40mdelete the file and all that follow, or [4mnone[24m to keep the file[0m
                [40mand all that follow.[0m

                [40mDefaults to the user's [4mdelete_file_preference[24m if not[0m
                [40mspecified, see [4maeuconf[24m(5) for more information.[0m

                [40mIf aegis is running in the background, the question will not[0m
                [40mbe asked, and the files will be deleted.[0m

        [1m[40m-Keep[0m
                [40mThis option may be used to retain files and/or directories[0m
                [40musually deleted or replaced by the command.  Defaults to the[0m
                [40muser's [4mdelete_file_preference[24m if not specified, see [4maeuconf[24m(5)[0m
                [40mfor more information.[0m

        [1m[40m-No_Keep[0m
                [40mThis option may be used to ensure that the files and/or[0m
                [40mdirectories are deleted or replaced by the command.  Defaults[0m
                [40mto the user's [4mdelete_file_preference[24m if not specified, see[0m
                [4m[40maeuconf[24m(5) for more information.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Verify_Symbolic_Links[0m
                [40mThis option may be used to request that the symbolic links, or[0m
                [40mhard links, or file copies, in the work area be updated to[0m
                [40mreflect the current state of the baseline.  This is controlled[0m
                [40mby the [4mdevelopment_directory_style[24m field of the project[0m
                [40mconfiguration file.  Only files which are not involved in the[0m
                [40mchange are updated.  See also the "symbolic_links_preference"[0m
                [40mfield of [4maeuconf[24m(5).  This option is the default, if[0m
                [40mmeaningful for your configuration.  The name is an historical[0m
                [40maccident, hard links and file copies are included.[0m

        [1m[40m-Assume_Symbolic_Links[0m
                [40mThis option may be used to request that no update of baseline[0m
                [40mmirror files take place.  This options is useful when you[0m
                [4m[40mdefinitely[24m [4mknow[24m the files' up-to-date-ness isn't important[0m
                [40mright now; incorrect use of this option may have unanticipated[0m
                [40mbuild side-effects.  See also the "symbolic_links_preference"[0m
                [40mfield of [4maeuconf[24m(5).  This option is the default, if not[0m
                [40mmeaningful for your configuration.  The name is an historical[0m
                [40maccident, hard links and file copies are included.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aenfu 'aegis -nfu \!$ -v'[0m
        [40msh$     aenfu(){aegis -nfu "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mbeing[24m [4mdeveloped[24m state.[0m
        [40mIt is an error if the change is not assigned to the current user.[0m
        [40mIt is an error if the file is not in the change.[0m
        [40mIt is an error if the file was not added to the change with the 'aegis[0m
        [40m-New_File' command.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maenf[24m(1) add new files to a change[0m

        [4m[40maepconf[24m(5)[0m
                [40mproject configuration file format[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -New_Integrator(1)                              aegis -New_Integrator(1)



[40m[1mNAME[0m
        [40maegis new integrator - add new integrators to a project[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -New_Integrator [4m[22muser-name[24m...  [ [4moption[24m...  ][0m
        [1m[40maegis -New_Integrator -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -New_Integrator -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-New_Integrator[24m command is used to add new integrators to a[0m
        [40mproject.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Descend_Project_Tree[0m
                [40mThis option may be used to request that the command should be[0m
                [40mapplied to the project and all its branches and sub-branches.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aeni 'aegis -ni \!* -v'[0m
        [40msh$     aeni(){aegis -ni "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the current user is not an administrator of the[0m
        [40mproject.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maeri[24m(1) remove integrators from a project[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -New_Project_Alias(1)                        aegis -New_Project_Alias(1)



[40m[1mNAME[0m
        [40maegis new project alias - create a new project alias[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -New_Project_Alias [22m[ [4moption[24m...  ] [4mproject-name[24m [4malias-name[0m
        [1m[40maegis -Help[0m
        [1m[40maegis -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-New_Project_Alias[24m command is used to create a projects[0m
        [40malias, so that branches of projects may be referred by a shorter or[0m
        [40mmore specific name.[0m

        [40mThe project name [4mmust[24m be given on the command line; the default[0m
        [40mproject is not sufficient.  The project named may be a top-level[0m
        [40mproject, or it may be a branch (to any depth of branch).[0m

        [40mThe new alias name must also be given on the command line, and it must[0m
        [40mbe the [4msecond[24m name.  Project aliases have fewer limits than project[0m
        [40mnames: they must not need shell quoting, that's all.[0m

   [1m[40mExample[0m
        [40mAliases may be used in may ways.  The most common is to give a[0m
        [40mparticular release a code name.  You would do this by saying[0m
                [40maenpa example.4.2 sydney[0m
        [40mThis would make "sydney" an alias for the "example.4.2" branch.[0m

        [40mAnother use for aliases is to have a fixed alias for your active[0m
        [40mbranch, so that your developer team does not need to change their[0m
        [40mdefault project, even though the branch number moves on for each[0m
        [40mrelease.  You could say[0m
                [40maenpa example.4.2 example.cur[0m
        [40mThis would make "example.cur" an alias for the "example.4.2" branch.[0m
        [40mWhen this was finished, and 4.3 started, a project administrator could[0m
        [40msay[0m
                [40maerpa example.cur[0m
                [40maenpa example.4.3 example.cur[0m
        [40mNow "example.cur" is an alias for the "example.4.3" branch, but the[0m
        [40mdevelopers need only reference "example.cur" to always work on the[0m
        [40mright branch.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mERRORS[0m
        [40mIt is an error if the old project does not exist.[0m
        [40mIt is an error if the current user is not a project administrator.[0m
        [40mIt is an error if the new alias name look like a branch name.[0m
        [40mIt is an error if the new alias contains unprintable characters.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maerpa[24m(1)[0m
                [40mRemove project alias.[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -New_PRoject(1)                                    aegis -New_PRoject(1)



[40m[1mNAME[0m
        [40maegis new project - create a new project[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -New_PRoject [4m[22mproject-name[24m [ [4moption[24m...  ][0m
        [1m[40maegis -New_PRoject -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -New_PRoject -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-New_PRoject[24m command is used to create a new project.  The[0m
        [40mproject is created as an empty directory structure with no staff[0m
        [40mexcept the administrator, no changes, and branches to implement the[0m
        [40mversion specified.[0m

        [40mPlease note: unless you specify a version (see the [1m-version [22moption,[0m
        [40mbelow) this command will default to creating branches to support[0m
        [40mversion 1.0.  If you discovered this too late, all is not lost: you[0m
        [40mcan use the [4maenbru[24m(1) command to get rid of the branches you didn't[0m
        [40mwant.[0m

   [1m[40mDirectory[0m
        [40mThe project directory, under which the project baseline and history[0m
        [40mand state and change data are kept, will be created at this time.  If[0m
        [40mthe [1m-DIRectory [22moption is not given, the project directory will be[0m
        [40mcreated in the directory specified by the default_project_directory[0m
        [40mfield of [4maeuconf[24m(5), or if not set in current user's home directory;[0m
        [40min either case with the same name as the project.[0m

   [1m[40mStaff[0m
        [40mThe project is created with the current user and group as the owning[0m
        [40muser and group.  The current user is an administrator for the project.[0m
        [40mThe project has no developers, reviewers, integrators or other[0m
        [40madministrators.  The project's umask is derived from the current[0m
        [40muser's umask, but guaranteeing that group members will have access and[0m
        [40mthat only the project owner will have write access.[0m

   [1m[40mPointer[0m
        [40mThe project pointer will be added to the first element of the search[0m
        [40mpath, or [4m/usr/local/com/aegis[24m if no path is set.  If this is[0m
        [40minappropriate, use the [1m-LIBrary [22moption to explicitly set the desired[0m
        [40mlocation.  See the [1m-LIBrary [22moption for more information.[0m

   [1m[40mVersion[0m
        [40mYou may specify the project version in two ways:[0m

        [40m1. The version number may be implicit in the project name, in which[0m
           [40mcase the version numbers will be stripped off.  For example, "aenpr[0m
           [40mexample.1.2" will create a project called "example" with branch[0m
           [40mnumber 1 created, and sub-branch 2 of branch 1 created.[0m

        [40m2. The version number may be stated explicitly, in which case it will[0m
           [40mbe subdivided for branch numbers.  For example, "aenpr example[0m
           [40m-version 1.2" will create a project called "example" with branch[0m
           [40mnumber 1 created, and sub-branch 2 of branch 1 created.[0m

        [40mIn each case, these branches may be named wherever a project name may[0m
        [40mbe given, such as "-p example.1" and "-p example-1.2".  The actual[0m
        [40mpunctuation character is unimportant.[0m

        [40mYou may have any depth of version numbers you like.  Both methods of[0m
        [40mspecifying version numbers may be used, and they will be combined.  If[0m
        [40myou want no version numbers at all, use [1m-version [22mwith a single dash as[0m
        [40mthe argument, as in "-version -"[0m

        [40mIf no version number is given, either explicitly or implicitly,[0m
        [40mversion 1.0 is used.[0m

   [1m[40mProject Directory Location[0m
        [1m[40mPlease Note: [22mAegis also consults the underlying file system, to[0m
        [40mdetermine its notion of maximum file size.  Where the file system's[0m
        [40mmaximum file size is less than [4mmaximum_filename_length[24m, the filesystem[0m
        [40mwins.  This can happen, for example, when you are using the Linux[0m
        [40mUMSDOS file system, or when you have an NFS mounted an ancient V7[0m
        [40mfilesystem.  Setting [4mmaximum_filename_length[24m to 255 in these cases[0m
        [40mdoes not alter the fact that the underlying file systems limits are[0m
        [40mfar smaller (12 and 14, respectively).[0m

        [40mIf your development directories (or your whole project) is on[0m
        [40mfilesystems with filename limitations, or a portion of the[0m
        [40mheterogeneous builds take place in such an environment, it helps to[0m
        [40mtell Aegis what they are (using the project [4mconfig[24m file's fields) so[0m
        [40mthat you don't run into the situation where the project builds on the[0m
        [40mmore permissive environments, but fails with mysterious errors in the[0m
        [40mmore limited environments.[0m

        [40mIf your development directories are routinely on a Linux UMSDOS[0m
        [40mfilesystem, you would probably be better off setting[0m
        [4m[40mdos_filename_required[24m [4m=[24m [4mtrue[24m, and also changing the[0m
        [4m[40mdevelopment_directory_template[24m field.  Heterogeneous development with[0m
        [40mvarious Windows environments may also require this.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-DIRectory [4m[22mpath[0m
                [40mThis option may be used to specify which directory is to be[0m
                [40mused.  It is an error if the current user does not have[0m
                [40mappropriate permissions to create the directory path given.[0m
                [40mThis must be an absolute path.[0m

                [40mCaution: If you are using an automounter do not use `pwd` to[0m
                [40mmake an absolute path, it usually gives the wrong answer.[0m

        [1m[40m-Edit[0m
                [40mEdit the attributes with a text editor, this is usually more[0m
                [40mconvenient than supplying a text file.  The [4mVISUAL[24m and then[0m
                [4m[40mEDITOR[24m environment variables are consulted for the name of the[0m
                [40meditor to use; defaults to [4mvi[24m(1) if neither is set.  See the[0m
                [4m[40mvisual_command[24m and [4meditor_command[24m fields in [4maeuconf[24m(1) for how[0m
                [40mto override this specifically for Aegis.[0m

                [40mWarning: Aegis tries to be well behaved when faced with[0m
                [40merrors, so the temporary file is left in your home directory[0m
                [40mwhere you can edit it further and re-use it with a [1m-file[0m
                [40moption.[0m

                [40mThe [1m-edit [22moption may not be used in the background, or when[0m
                [40mthe standard input is not a terminal.[0m

        [1m[40m-Edit_BackGround[0m
                [40mEdit the attributes with a dumb text editor, this is most[0m
                [40moften desired when edit commands are being piped into the[0m
                [40meditor via the standard input.  Only the [1mEDITOR [22menvironment[0m
                [40mvariable is consulted for the name of the editor to use; it is[0m
                [40ma fatal error if it is not set.  See the [4meditor_command[24m field[0m
                [40min [4maeuconf[24m(1) for how to override this specifically for Aegis.[0m

        [1m[40m-File [4m[22mfilename[0m
                [40mTake the attributes from the specified file.  The filename `-'[0m
                [40mis understood to mean the standard input.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-Keep   [22mThis option may be used to re-attach a project detached using[0m
                [4m[40maermpr[24m [4m-keep[24m and possibly moved by the system administrator.[0m

        [1m[40m-LIBrary [4m[22mabspath[0m
                [40mThis option may be used to specify a directory to be searched[0m
                [40mfor global state files and user state files.  (See [4maegstate[24m(5)[0m
                [40mand [4maeustate[24m(5) for more information.)  Several library[0m
                [40moptions may be present on the command line, and are search in[0m
                [40mthe order given.  Appended to this explicit search path are[0m
                [40mthe directories specified by the [4mAEGIS_PATH[24m environment[0m
                [40mvariable (colon separated), and finally, [4m/usr/local/lib/aegis[0m
                [40mis always searched.  All paths specified, either on the[0m
                [40mcommand line or in the [4mAEGIS_PATH[24m environment variable, must[0m
                [40mbe absolute.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-VERSion [4m[22mnumber[0m
                [40mThis option may be used to specify the version number for the[0m
                [40mproject.  Version numbers are implemented as branches.  Use a[0m
                [40msingle dash ("-") as the argument if you want no version[0m
                [40mbranches created.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aenpr 'aegis -npr \!* -v'[0m
        [40msh$     aenpr(){aegis -npr "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the project name already exists.[0m
        [40mIt is an error if the project directory already exists.[0m
        [40mIt is an error if the current user does not have sufficient[0m
        [40mpermissions to create the directory specified with the [1m-DIRectory[0m
        [40moption.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maena[24m(1) add a new administrator to a project[0m

        [4m[40maenbru[24m(1)[0m
                [40mRemove a new branch.  This can often be useful if [4maenpr[24m(1)[0m
                [40mcreated some default branches for you, and now you want to get[0m
                [40mrid of them.[0m

        [4m[40maenc[24m(1) add a new change to a project[0m

        [4m[40maend[24m(1) add a new developer to a project[0m

        [4m[40maenrls[24m(1)[0m
                [40mcreate a new project from an existing project[0m

        [4m[40maenrv[24m(1)[0m
                [40madd a new reviewer to a project[0m

        [4m[40maermpr[24m(1)[0m
                [40mremove project[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -New_ReLeaSe(1)                                    aegis -New_ReLeaSe(1)



[40m[1mNAME[0m
        [40maegis new release - create a new project from an old-style project.[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -New_ReLeaSe [22mproject-name [ [4mnew-project-name[24m ][ [4moption[24m...  ][0m
        [1m[40maegis -New_ReLeaSe -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -New_ReLeaSe -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-New_ReLeaSe[24m command is used to create a new project from an[0m
        [40mexisting project.  [4mIt[24m [4mcreates[24m [4ma[24m [4mnew[24m [4mpost-3.0[24m [4mproject[24m [4mfrom[24m [4man[24m [4mold[0m
        [4m[40mpre-3.0[24m [4mproject.[0m

        [1m[40mPlease Note: [22mIf your old-style project does not have a version number[0m
        [40min the project name, you [4mmust[24m supply a new project name, otherwise you[0m
        [40mwill get an error.  (If you want to re-use the old project name, you[0m
        [40mneed to rename the old project, and then use [4maenrls[24m to create a new[0m
        [40mnew-style project with the old name.  See the HOWTO for how to change[0m
        [40ma project's name.)[0m

        [40mThis command was essential before the introduction of branches into[0m
        [40mthe Aegis model.  It is more useful to create a new release of a[0m
        [40mproject by ending development on the branch of the previous release[0m
        [40mand starting development of a new branch numbered for the desired[0m
        [40mrelease.[0m

        [40mOnce you have a new-style project, use the [4maenbr[24m(1) command to create[0m
        [40mnew branches on this project.  This provides more efficient release[0m
        [40mmanagement, and allows historical versions to be reproduced more[0m
        [40msimply.[0m

        [40mIf no [4mnew-project-name[24m is specified, it will be derived from the[0m
        [40mproject given as follows: any minor version dot suffix will be removed[0m
        [40mfrom the name, then any major version dot suffix will be removed from[0m
        [40mthe name.  A major version dot suffix will be appended, and then a[0m
        [40mminor version dot suffix will be appended.  As an example, "foo.1.0"[0m
        [40mwould become "foo.1.1" assuming the default minor version increment,[0m
        [40mand "foo" would become "foo.1.1" assuming the same minor version[0m
        [40mincrement.[0m

        [40mThe entire project baseline will be copied.  The project state will be[0m
        [40mas if change 1 had already been integrated, naming every file (in the[0m
        [40mold project) as a new file.  The history files will reflect this.  No[0m
        [40mbuild will be necessary; it is assumed that the old baseline was built[0m
        [40msuccessfully.  Change numbers will commence at 2, as will build[0m
        [40mnumbers.  Test numbers will commence where the old project left off[0m
        [40m(because all the earlier test numbers were used by the old project).[0m

        [40mThe default is for the minor version number to be incremented.  If the[0m
        [40mmajor version number is incremented or set, the minor version number[0m
        [40mwill be set to zero if it is not explicitly given.[0m

        [40mThe pointer to the new project will be added to the first element of[0m
        [40mthe search path, or [4m/usr/local/com/aegis[24m if none is set.  If this is[0m
        [40minappropriate, use the [1m-LIBrary [22moption to explicitly set the desired[0m
        [40mlocation.  See the [1m-LIBrary [22moption for more information.[0m

        [40mThe project directory, under which the project baseline and history[0m
        [40mand state and change data are kept, will be created at this time.  If[0m
        [40mthe [1m-DIRectory [22moption is not given, the project directory will be[0m
        [40mcreated in the directory specified by the default_project_directory[0m
        [40mfield of the project user's [4maeuconf[24m(5), or if not set in project[0m
        [40muser's home directory; in either case with the same name as the[0m
        [40mproject.[0m

        [40mAll staff will be copied from the old project to the new project[0m
        [40mwithout change, as will all of the project attributes.[0m

[1m[40mTHE BASELINE LOCK[0m
        [40mThe baseline lock is used to ensure that the baseline remains in a[0m
        [40mconsistent state for the duration of commands which need to read the[0m
        [40mcontents of files in the baseline.[0m

        [40mThe commands which require the baseline to be consistent (these[0m
        [40minclude the [4maeb[24m(1), [4maecp[24m(1) and [4maed[24m(1) commands) take a baseline [4mread[0m
        [40mlock.  This is a non-exclusive lock, so the concurrent development of[0m
        [40mchanges is not hindered.[0m

        [40mThe command which modifies the baseline, [4maeipass[24m(1), takes a baseline[0m
        [4m[40mwrite[24m lock.  This is an exclusive lock, forcing [4maeipass[24m(1) to block[0m
        [40muntil there are no active baseline read locks.[0m

        [40mIt is possible that one of the above development commands will block[0m
        [40muntil an in-progress [4maegis[24m [4m-Integrate_PASS[24m completes.  This is usually[0m
        [40mof short duration while the project history is updated.  The delay is[0m
        [40messential so that these commands receive a consistent view of the[0m
        [40mbaseline.  No other integration command will cause the above[0m
        [40mdevelopment commands to block.[0m

        [40mWhen aegis' branch functionality is in use, a read (non-exclusive)[0m
        [40mlock is taken on the branch baseline and also each of the "parent"[0m
        [40mbaselines.  However, a baseline write (exclusive) lock is only taken[0m
        [40mon the branch baseline; the "parent" baselines are only read (non-[0m
        [40mexclusive) locked.[0m

   [1m[40mProject Directory Location[0m
        [1m[40mPlease Note: [22mAegis also consults the underlying file system, to[0m
        [40mdetermine its notion of maximum file size.  Where the file system's[0m
        [40mmaximum file size is less than [4mmaximum_filename_length[24m, the filesystem[0m
        [40mwins.  This can happen, for example, when you are using the Linux[0m
        [40mUMSDOS file system, or when you have an NFS mounted an ancient V7[0m
        [40mfilesystem.  Setting [4mmaximum_filename_length[24m to 255 in these cases[0m
        [40mdoes not alter the fact that the underlying file systems limits are[0m
        [40mfar smaller (12 and 14, respectively).[0m

        [40mIf your development directories (or your whole project) is on[0m
        [40mfilesystems with filename limitations, or a portion of the[0m
        [40mheterogeneous builds take place in such an environment, it helps to[0m
        [40mtell Aegis what they are (using the project [4mconfig[24m file's fields) so[0m
        [40mthat you don't run into the situation where the project builds on the[0m
        [40mmore permissive environments, but fails with mysterious errors in the[0m
        [40mmore limited environments.[0m

        [40mIf your development directories are routinely on a Linux UMSDOS[0m
        [40mfilesystem, you would probably be better off setting[0m
        [4m[40mdos_filename_required[24m [4m=[24m [4mtrue[24m, and also changing the[0m
        [4m[40mdevelopment_directory_template[24m field.  Heterogeneous development with[0m
        [40mvarious Windows environments may also require this.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-DIRectory [4m[22mpath[0m
                [40mThis option may be used to specify which directory is to be[0m
                [40mused.  It is an error if the current user does not have[0m
                [40mappropriate permissions to create the directory path given.[0m
                [40mThis must be an absolute path.[0m

                [40mCaution: If you are using an automounter do not use `pwd` to[0m
                [40mmake an absolute path, it usually gives the wrong answer.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-LIBrary [4m[22mabspath[0m
                [40mThis option may be used to specify a directory to be searched[0m
                [40mfor global state files and user state files.  (See [4maegstate[24m(5)[0m
                [40mand [4maeustate[24m(5) for more information.)  Several library[0m
                [40moptions may be present on the command line, and are search in[0m
                [40mthe order given.  Appended to this explicit search path are[0m
                [40mthe directories specified by the [4mAEGIS_PATH[24m environment[0m
                [40mvariable (colon separated), and finally, [4m/usr/local/lib/aegis[0m
                [40mis always searched.  All paths specified, either on the[0m
                [40mcommand line or in the [4mAEGIS_PATH[24m environment variable, must[0m
                [40mbe absolute.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Not_Logging[0m
                [40mThis option may be used to disable the automatic logging of[0m
                [40moutput and errors to a file.  This is often useful when[0m
                [40mseveral aegis commands are combined in a shell script.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-VERSion [4m[22mnumber[0m
                [40mThis option may be used to specify the version number for the[0m
                [40mproject.  Version number are implemented as branches.  Use the[0m
                [40mempty string as the argument if you want no version branches[0m
                [40mcreated.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aenrls 'aegis -nrls \!* -v'[0m
        [40msh$     aenrls(){aegis -nrls "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the old project named does not exist.[0m

        [40mIt is an error if the old project named has not yet had any changes[0m
        [40mintegrated.[0m

        [40mIt is an error if the old project named has any changes not in the[0m
        [4m[40mcompleted[24m state.[0m

        [40mIt is an error if the current user is not an administrator of the old[0m
        [40mproject.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maenpr[24m(1)[0m
                [40mcreate a new project[0m

        [4m[40maermpr[24m(1)[0m
                [40mremove project[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m

        [4m[40mAegis[24m [4mUser[24m [4mGuide[0m
                [40mThe chapter on [4mBranching[24m has useful information about releases[0m
                [40mand branching.[0m



aegis -New_ReViewer(1)                                  aegis -New_ReViewer(1)



[40m[1mNAME[0m
        [40maegis new reviewer - add new reviewers to a project[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -New_ReViewer [4m[22muser-name[24m...  [ [4moption[24m...  ][0m
        [1m[40maegis -New_ReViewer -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -New_ReViewer -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-New_ReViewer[24m command is used to add new reviewers to a[0m
        [40mproject.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Descend_Project_Tree[0m
                [40mThis option may be used to request that the command should be[0m
                [40mapplied to the project and all its branches and sub-branches.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aenrv 'aegis -nrv \!* -v'[0m
        [40msh$     aenrv(){aegis -nrv "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the current user is not an administrator of the[0m
        [40mproject.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maerrv[24m(1)[0m
                [40mremove reviewers from a project[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -New_Test(1)                                          aegis -New_Test(1)



[40m[1mNAME[0m
        [40maegis new test - add a new test to a change[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -New_Test [22m[ [4moption[24m...  ][ [4mfilename[24m...  ][0m
        [1m[40maegis -New_Test -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -New_Test -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-New_Test[24m command is used to add a new test to a change.  A[0m
        [40mnew file is created in the development directory.[0m

        [40mNew tests default to "automatic" unless otherwise specified.[0m

   [1m[40mFile Name Interpretation[0m
        [40mThe aegis program will attempt to determine the project file names[0m
        [40mfrom the file names given on the command line.  All file names are[0m
        [40mstored within aegis projects as relative to the root of the baseline[0m
        [40mdirectory tree.  The development directory and the integration[0m
        [40mdirectory are shadows of this baseline directory, and so these[0m
        [40mrelative names apply here, too.  Files named on the command line are[0m
        [40mfirst converted to absolute paths if necessary.  They are then[0m
        [40mcompared with the baseline path, the development directory path, and[0m
        [40mthe integration directory path, to determine a baseline-relative name.[0m
        [40mIt is an error if the file named is outside one of these directory[0m
        [40mtrees.[0m

        [40mThe [1m-BAse_RElative [22moption may be used to cause relative filenames to[0m
        [40mbe interpreted as relative to the baseline path; absolute filenames[0m
        [40mwill still be compared with the various paths in order to determine a[0m
        [40mbaseline-relative name.[0m

        [40mThe [4mrelative_filename_preference[24m in the user configuration file may be[0m
        [40mused to modify this default behavior.  See [4maeuconf[24m(5) for more[0m
        [40minformation.[0m

   [1m[40mTest Filename Generation[0m
        [40mYou may choose your own filename for a test, by specifying it on the[0m
        [40mcommand line.[0m

        [40mIf no filename is specified on the command line, a test filename is[0m
        [40mautomatically generated.  This is controlled by the [4mnew_test_filename[0m
        [40mfield of the project configuration file (see [4maepconf[24m(5) for more[0m
        [40minformation.  All automatically generated test filenames within a[0m
        [40mproject are numbered uniquely.  The default pattern for new test[0m
        [40mfilenames is "[4mtest/XX/tXXXX[am].sh[24m", where [4mXX[24m is the first 2 digits of[0m
        [40mthe test number, [4mXXXX[24m is the whole test number, and [4m[am][24m is a for[0m
        [40mautomatic tests and m for manual tests.[0m

   [1m[40mModifying Tests[0m
        [40mTests may be modified in future by adding them to a change with the[0m
        [4m[40maecp[24m(1) command.  Tests are treated just like any other source file,[0m
        [40mand are subject to the same process.[0m

   [1m[40mFile Templates[0m
        [40mWhen a new file is created in the development directory the project[0m
        [4m[40mconfig[24m file is searched for a template for the new file.  If a[0m
        [40mtemplate is found, the new file will be initialized to the template,[0m
        [40motherwise it will be created empty.  See [4maepconf[24m(5) for more[0m
        [40minformation.[0m

        [40mThe simplest form is to use template files, such as[0m
                [40mfile_template =[0m
                [40m[[0m
                        [40m{[0m
                                [40mpattern = [ "*.c" ];[0m
                                [40mbody = "${read_file ${source template/c abs}}";[0m
                        [40m},[0m
                        [40m{[0m
                                [40mpattern = [ "test/*/.sh" ];[0m
                                [40mbody = "${read_file ${source template/test abs}}";[0m
                        [40m},[0m
                [40m];[0m
        [40mAs you can see, the template files are part of the project source, so[0m
        [40myou can add the appropriate copyright notices, and wrappers, [4metc[24m.  The[0m
        [4m[40m$source[24m substitution locates them, if they are not part of the current[0m
        [40mchange (and they usually are not).[0m

        [40mThe template files themselves contain substitutions.  The [4m$filename[0m
        [40msubstitution is available, and contains the name of the file being[0m
        [40mcreated.  This can be manipulated in various ways when constructing[0m
        [40mthe appropriate file contents.  See [4maesub[24m(5) for more information[0m
        [40mabout substitutions.[0m

        [40mIt is also possible to run a command to create the new file.  You can[0m
        [40mdo this instead of specifying a body string, [4mviz:[0m
                [40mfile_template =[0m
                [40m[[0m
                        [40m{[0m
                                [40mpattern = [ "*" ];[0m
                                [40mbody_command = "perl ${source template.pl abs} $filename";[0m
                        [40m},[0m
                [40m];[0m
        [40mThe command is run with a current directory set to the top of the[0m
        [40mdevelopment directory.  It is an error if the command fails to create[0m
        [40mthe file.  You can mix-and-match the two techniques, [4mbody[24m string and[0m
        [4m[40mbody_command[24m, if you want.[0m

        [40mBe careful to make sure that the test filename template pattern[0m
        [40mmatches the [4mnew_test_filename[24m field.[0m

   [1m[40mFile Name Limitations[0m
        [40mThere are a number of controls available to limit the form of project[0m
        [40mfile names.  All of these controls may be found in the project[0m
        [40mconfiguration file, see [4maepconf[24m(5) for more information.  The most[0m
        [40msignificant are briefly described here:[0m

        [40mmaximum_filename_length = integer;[0m
                [40mThis field is used to limit the length of filenames.  All new[0m
                [40mfiles may not have path components longer than this.  Defaults[0m
                [40mto 255 if not set.  For maximum portability you should set[0m
                [40mthis to 14.[0m

        [40mposix_filename_charset = boolean;[0m
                [40mThis field may be used to limit the characters allowed in[0m
                [40mfilenames to only those explicitly allowed by POSIX.  Defaults[0m
                [40mto [4mfalse[24m if not set, meaning whatever your operating system[0m
                [40mwill tolerate, except white space and high-bit-on characters.[0m
                [40mFor maximum portability you should set this to [4mtrue[24m.[0m

        [40mdos_filename_required = boolean;[0m
                [40mThis field may be used to limit filenames so that they conform[0m
                [40mto the DOS 8+3 filename limits and to the DOS filename[0m
                [40mcharacter set.  Defaults to [4mfalse[24m if not set.[0m

        [40mwindows_filename_required = boolean;[0m
                [40mThis field may be used to limit filenames so that they conform[0m
                [40mto the Windows98 and WindowsNT filename limits and character[0m
                [40mset.  Defaults to [4mfalse[24m if not set.[0m

        [40mshell_safe_filenames = boolean;[0m
                [40mThis field may be used to limit filenames so that they do not[0m
                [40mcontain shell special characters.  Defaults to [4mtrue[24m if not[0m
                [40mset.  If this field is set to [4mfalse[24m, you will need to use the[0m
                [4m[40m${quote}[24m substitution around filenames in commands, to ensure[0m
                [40mthat filenames containing shell special characters do not have[0m
                [40munintended side effects.  Weird characters in filenames may[0m
                [40malso confuse your dependency maintenance tool.[0m

        [40mallow_white_space_in_filenames = boolean;[0m
                [40mThis field may be used to allow white space characters in file[0m
                [40mnames.  This will allow the following characters to appear in[0m
                [40mfile names: backspace (BS, \b, 0x08), horizontal tab (HT, \t,[0m
                [40m0x09), new line (NL, \n, 0x0A), vertical tab (VT, \v, 0x0B),[0m
                [40mform feed (FF, \f, 0x0C), and carriage return (CR, \r, 0x0D).[0m
                [40mDefaults to false if not set.[0m

                [40mNote that this field does not override other file name[0m
                [40mfilters.  It will be necessary to explicitly set [4mshell_safe_-[0m
                [4m[40mfilenames[24m [4m=[24m [4mfalse[24m as well.  It will be necessary to set [4mdos_-[0m
                [4m[40mfilename_required[24m [4m=[24m [4mfalse[24m (the default) as well.  It will be[0m
                [40mnecessary to set [4mposix_filename_charset[24m [4m=[24m [4mfalse[24m (the default)[0m
                [40mas well.[0m

                [40mThe user must take great care to use the ${quote} substitution[0m
                [40maround all file names in commands in the project[0m
                [40mconfiguration.  And even then, substitutions which expect a[0m
                [40mspace separated list of file names will have undefined[0m
                [40mresults.[0m

        [40mallow_non_ascii_filenames = boolean;[0m
                [40mThis field may be used to allow file names with non-ascii-[0m
                [40mprintable characters in them.  Usually this would mean a UTF8[0m
                [40mor international charset of some kind.  Defaults to false if[0m
                [40mnot set.[0m

                [40mNote that this field does not override other file name[0m
                [40mfilters.  It will be necessary to explicitly set [4mshell_safe_-[0m
                [4m[40mfilenames[24m [4m=[24m [4mfalse[24m as well.  It will be necessary to set [4mdos_-[0m
                [4m[40mfilename_required[24m [4m=[24m [4mfalse[24m (the default) as well.  It will be[0m
                [40mnecessary to set [4mposix_filename_charset[24m [4m=[24m [4mfalse[24m (the default)[0m
                [40mas well.[0m

        [40mfilename_pattern_accept = [ string ];[0m
                [40mThis field is used to specify a list of patterns of acceptable[0m
                [40mfilenames.  Defaults to "*" if not set.[0m

        [40mfilename_pattern_reject = [ string ];[0m
                [40mThis field is used to specify a list of patterns of[0m
                [40munacceptable filenames.[0m

        [1m[40mPlease Note: [22mAegis also consults the underlying file system, to[0m
        [40mdetermine its notion of maximum file size.  Where the file system's[0m
        [40mmaximum file size is less than [4mmaximum_filename_length[24m, the filesystem[0m
        [40mwins.  This can happen, for example, when you are using the Linux[0m
        [40mUMSDOS file system, or when you have an NFS mounted an ancient V7[0m
        [40mfilesystem.  Setting [4mmaximum_filename_length[24m to 255 in these cases[0m
        [40mdoes not alter the fact that the underlying file systems limits are[0m
        [40mfar smaller (12 and 14, respectively).[0m

        [40mIf your development directories (or your whole project) is on[0m
        [40mfilesystems with filename limitations, or a portion of the[0m
        [40mheterogeneous builds take place in such an environment, it helps to[0m
        [40mtell Aegis what they are (using the project [4mconfig[24m file's fields) so[0m
        [40mthat you don't run into the situation where the project builds on the[0m
        [40mmore permissive environments, but fails with mysterious errors in the[0m
        [40mmore limited environments.[0m

        [40mIf your development directories are routinely on a Linux UMSDOS[0m
        [40mfilesystem, you would probably be better off setting[0m
        [4m[40mdos_filename_required[24m [4m=[24m [4mtrue[24m, and also changing the[0m
        [4m[40mdevelopment_directory_template[24m field.  Heterogeneous development with[0m
        [40mvarious Windows environments may also require this.[0m

   [1m[40mChanging the Type of a File[0m
        [40mIf you want to change the type of a file (say, from a test to a source[0m
        [40mfile, or [4mvice[24m [4mversa[24m) you could do it as two changes, by first using[0m
        [4m[40maerm[24m(1) in one change and then using [4maenf[24m(1) or [4maent[24m(1) in a second[0m
        [40mchange, or you can combine both steps in the same change.  Remember to[0m
        [40muse the [4maerm[24m [4m-nowhiteout[24m option or you will get a most peculiar new[0m
        [40mfile template.[0m

   [1m[40mNotification[0m
        [40mThe [4mnew_test_command[24m in the project [4mconfig[24m file is run, if set.  The[0m
        [4m[40mproject_file_command[24m is also run, if set, and if there has been an[0m
        [40mintegration recently.  See [4maepconf[24m(5) for more information.[0m

[1m[40mTEST PROCESS[0m
        [40mEach change is required to be accompanied by tests, and those tests[0m
        [40mare required to be run against the built development directory, and[0m
        [40mthey must pass.  This ensures that new functionality is accompanied by[0m
        [40mtests to verify its correctness, and bug fixes are accompanied by[0m
        [40mtests which confirm that the bug has been fixed.[0m

   [1m[40mRegression Tests[0m
        [40mTests are treated as any other source file, and are maintained in the[0m
        [40mbaseline and history with all other source files.  The tests which[0m
        [40mmust accompany every change accumulate in the project baseline,[0m
        [40mproviding a definition of correct function for the baseline.  These[0m
        [40maccumulated tests may be executed using an "aegis -REGression"[0m
        [40mcommand, to verify that the project will not "regress" as a result of[0m
        [40ma change.[0m

   [1m[40mBaseline Tests[0m
        [40mBug fixes are required to have their tests [4mfail[24m against the project[0m
        [40mbaseline (in contrast to the development directory).  This ensures[0m
        [40mthat the test actually demonstrates the bug in the baseline, as well[0m
        [40mas demonstrating that it is fixed by the change.  New functionality[0m
        [40mtrivially fails against the baseline, and so aegis does not attempt to[0m
        [40mguess if a test is a bug fix test or new functionality test, it simply[0m
        [40mrequires tests to fail against the baseline.[0m

        [40mThis requirement applies both to new tests being created by a change[0m
        [40mand also to tests which have been copied into a change for[0m
        [40mmodification.[0m

   [1m[40mReviewing Tests[0m
        [40mReviewers may be confident that aegis has enforced the test[0m
        [40mrequirements; that a change must have tests, that the change must[0m
        [40mbuild, that the tests pass against the development directory, and that[0m
        [40mthe tests fail against the baseline.  These conditions are enforced by[0m
        [4m[40maede[24m(1) and the change will not be advanced to the [4mbeing[24m [4mreviewed[0m
        [40mstate until these conditions are met.  Reviewers should thus review[0m
        [40mtests for [4mcompleteness[24m of coverage of the code in the change, and[0m
        [40minsensitivity to changes in the execution environment (e.g. not date[0m
        [40msensitive).  Reviewers should also use "aegis -list change_details" to[0m
        [40mverify that a change does or does not have testing exemptions.[0m

   [1m[40mExemptions[0m
        [40mVarious test exemptions may be granted by project administrators, see[0m
        [4m[40maepa[24m(1) and [4maepattr[24m(5) for more information.  Copying tests into a[0m
        [40mchange, or adding new tests to a change, may cancel those exemptions.[0m

[1m[40mTEST CORRELATIONS[0m
        [40mThe "aegis -Test -SUGgest" command may be used to have aegis suggest[0m
        [40msuitable regression tests for your change, based on the source files[0m
        [40min your change.  This automatically focuses testing effort to relevant[0m
        [40mtests, reducing the number of regression tests necessary to be[0m
        [40mconfident that you have not introduced a bug.[0m

        [40mThe test correlations are generated by the "aegis -Integrate_Pass"[0m
        [40mcommand, which associates each test in the change with each source[0m
        [40mfile in the change.  Thus, each source file accumulates a list of[0m
        [40mtests which have been associated with it in the past.  This is not as[0m
        [40mexact as code coverage analysis, but is a reasonable approximation in[0m
        [40mpractice.[0m

        [40mThe [4maecp[24m(1) and [4maenf[24m(1) commands are used to associate files with a[0m
        [40mchange.  While they do not actively perform the association, these are[0m
        [40mthe files used by [4maeipass[24m(1) and [4maet[24m(1) to determine which source[0m
        [40mfiles are associated with which tests.[0m

   [1m[40mTest Correlation Accuracy[0m
        [40mAssuming that the testing correlations are accurate and that the tests[0m
        [40mare evenly distributed across the function space, there will be a less[0m
        [40mthan [4m1/number[24m chance that a relevant test has not been run by the[0m
        [40m"aegis -Test -SUGgest [4mnumber[24m" command.  A small amount of noise is[0m
        [40madded to the test weighting, so that unexpected things are sometimes[0m
        [40mtested, and the same tests are not run every time.[0m

        [40mTest correlation accuracy can be improved by ensuring that:[0m

        [40m+o Each change should be strongly focused, with no gratuitous file[0m
          [40minclusions.  This avoids spurious correlations.[0m

        [40m+o Each item of new functionality should be added in an individual[0m
          [40mchange, rather than several together.  This strongly correlates[0m
          [40mtests with functionality.[0m

        [40m+o Each bug should be fixed in an individual change, rather than[0m
          [40mseveral together.  This strongly correlates tests with[0m
          [40mfunctionality.[0m

        [40m+o Test correlations will be lost if files are moved.  This is because[0m
          [40mcorrelations are by name.[0m

        [40mThe best way for tests to correlate accurately with source files is[0m
        [40mwhen a change contains a test and exactly those files relating to the[0m
        [40mfunctionality under test.  Too many spurious files will weaken the[0m
        [40musefulness of the testing correlations.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood;[0m

        [1m[40m-AUTOmatic[0m
                [40mThis option may be used to specify automatic tests.  Automatic[0m
                [40mtests require no human assistance.[0m

        [1m[40m-BAse_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the base of the source tree.  See[0m
                [4m[40maeuconf[24m(5) for the corresponding user preference.[0m

        [1m[40m-CUrrent_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the current directory.  This is usually[0m
                [40mthe default.  See [4maeuconf[24m(5) for the corresponding user[0m
                [40mpreference.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-MANual [22mThis option may be used to specify manual tests.  Manual tests[0m
                [40mrequire some human intervention,  e.g.: confirmation of some[0m
                [40mscreen behavior (X11, for instance), or some user action,[0m
                [40m"unplug ethernet cable now".[0m

        [1m[40m-Not_Logging[0m
                [40mThis option may be used to disable the automatic logging of[0m
                [40moutput and errors to a file.  This is often useful when[0m
                [40mseveral aegis commands are combined in a shell script.[0m

        [1m[40m-Output [4m[22mfilename[0m
                [40mThis option may be used to specify a filename which is to be[0m
                [40mwritten with the automatically determined test file name.[0m
                [40mUseful for writing scripts.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-TEMplate[0m
                [40mThis option may be used to specify that a new file template[0m
                [40mshould be used, even if the file already exists.[0m

        [1m[40m-No_TEMplate[0m
                [40mThis option may be used to specify that a new file template[0m
                [40mshould not be used, even if the file does not exist (any empty[0m
                [40mfile will be created).[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aent 'aegis -nt \!* -v'[0m
        [40msh$     aent(){aegis -nt "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mbeing[24m [4mdeveloped[24m state.[0m
        [40mIt is an error if the change is not assigned to the current user.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maecp[24m(1) copy an existing test into a change[0m

        [4m[40maedb[24m(1) begin development of a change[0m

        [4m[40maentu[24m(1)[0m
                [40mremove a new test from a change[0m

        [4m[40maerm[24m(1) remove an existing test as part of a change[0m

        [4m[40maet[24m(1)  run tests[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -New_Test_Undo(1)                                aegis -New_Test_Undo(1)



[40m[1mNAME[0m
        [40maegis new test undo - remove new tests from a change[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -New_Test_Undo [4m[22mfile-name[24m...  [ [4moption[24m...  ][0m
        [1m[40maegis -New_Test_Undo -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -New_Test_Undo -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-New_Test_Undo[24m command is used to remove new tests from a[0m
        [40mchange (reverse the actions of the 'aegis -New_Test' command).  The[0m
        [40mfile is removed from the development directory.[0m

        [40mYou may specify a directory name to remove all new tests in the named[0m
        [40mdirectory tree, other files in the tree will be ignored.  It is an[0m
        [40merror if there are no relevant files.[0m

   [1m[40mFile Name Interpretation[0m
        [40mThe aegis program will attempt to determine the project file names[0m
        [40mfrom the file names given on the command line.  All file names are[0m
        [40mstored within aegis projects as relative to the root of the baseline[0m
        [40mdirectory tree.  The development directory and the integration[0m
        [40mdirectory are shadows of this baseline directory, and so these[0m
        [40mrelative names apply here, too.  Files named on the command line are[0m
        [40mfirst converted to absolute paths if necessary.  They are then[0m
        [40mcompared with the baseline path, the development directory path, and[0m
        [40mthe integration directory path, to determine a baseline-relative name.[0m
        [40mIt is an error if the file named is outside one of these directory[0m
        [40mtrees.[0m

        [40mThe [1m-BAse_RElative [22moption may be used to cause relative filenames to[0m
        [40mbe interpreted as relative to the baseline path; absolute filenames[0m
        [40mwill still be compared with the various paths in order to determine a[0m
        [40mbaseline-relative name.[0m

        [40mThe [4mrelative_filename_preference[24m in the user configuration file may be[0m
        [40mused to modify this default behavior.  See [4maeuconf[24m(5) for more[0m
        [40minformation.[0m

   [1m[40mNotification[0m
        [40mThe [4mnew_test_undo_command[24m in the project [4mconfig[24m file is run, if set.[0m
        [40mThe [4mproject_file_command[24m is also run, if set, and if there has been an[0m
        [40mintegration recently.  See [4maepconf[24m(5) for more information.[0m

   [1m[40mProcess Side Effects[0m
        [40mThis command will cancel any build or test registrations, because[0m
        [40mdeleting a file logically invalidates them.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-BAse_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the base of the source tree.  See[0m
                [4m[40maeuconf[24m(5) for the corresponding user preference.[0m

        [1m[40m-CUrrent_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the current directory.  This is usually[0m
                [40mthe default.  See [4maeuconf[24m(5) for the corresponding user[0m
                [40mpreference.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-Interactive[0m
                [40mSpecify that aegis should ask the user for confirmation before[0m
                [40mdeleting each file.  Answer the question [4myes[24m to delete the[0m
                [40mfile, or [4mno[24m to keep the file.  You can also answer [4mall[24m to[0m
                [40mdelete the file and all that follow, or [4mnone[24m to keep the file[0m
                [40mand all that follow.[0m

                [40mDefaults to the user's [4mdelete_file_preference[24m if not[0m
                [40mspecified, see [4maeuconf[24m(5) for more information.[0m

                [40mIf aegis is running in the background, the question will not[0m
                [40mbe asked, and the files will be deleted.[0m

        [1m[40m-Keep[0m
                [40mThis option may be used to retain files and/or directories[0m
                [40musually deleted or replaced by the command.  Defaults to the[0m
                [40muser's [4mdelete_file_preference[24m if not specified, see [4maeuconf[24m(5)[0m
                [40mfor more information.[0m

        [1m[40m-No_Keep[0m
                [40mThis option may be used to ensure that the files and/or[0m
                [40mdirectories are deleted or replaced by the command.  Defaults[0m
                [40mto the user's [4mdelete_file_preference[24m if not specified, see[0m
                [4m[40maeuconf[24m(5) for more information.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Not_Logging[0m
                [40mThis option may be used to disable the automatic logging of[0m
                [40moutput and errors to a file.  This is often useful when[0m
                [40mseveral aegis commands are combined in a shell script.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Verify_Symbolic_Links[0m
                [40mThis option may be used to request that the symbolic links, or[0m
                [40mhard links, or file copies, in the work area be updated to[0m
                [40mreflect the current state of the baseline.  This is controlled[0m
                [40mby the [4mdevelopment_directory_style[24m field of the project[0m
                [40mconfiguration file.  Only files which are not involved in the[0m
                [40mchange are updated.  See also the "symbolic_links_preference"[0m
                [40mfield of [4maeuconf[24m(5).  This option is the default, if[0m
                [40mmeaningful for your configuration.  The name is an historical[0m
                [40maccident, hard links and file copies are included.[0m

        [1m[40m-Assume_Symbolic_Links[0m
                [40mThis option may be used to request that no update of baseline[0m
                [40mmirror files take place.  This options is useful when you[0m
                [4m[40mdefinitely[24m [4mknow[24m the files' up-to-date-ness isn't important[0m
                [40mright now; incorrect use of this option may have unanticipated[0m
                [40mbuild side-effects.  See also the "symbolic_links_preference"[0m
                [40mfield of [4maeuconf[24m(5).  This option is the default, if not[0m
                [40mmeaningful for your configuration.  The name is an historical[0m
                [40maccident, hard links and file copies are included.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aentu 'aegis -ntu \!$ -v'[0m
        [40msh$     aentu(){aegis -ntu "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mbeing[24m [4mdeveloped[24m state.[0m
        [40mIt is an error if the change is not assigned to the current user.[0m
        [40mIt is an error if the file is not in the change.[0m
        [40mIt is an error if the file was not added to the change with the 'aegis[0m
        [40m-New_Test' command.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maent[24m(5) add a new test to a change[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Project_Attributes(1)                      aegis -Project_Attributes(1)



[40m[1mNAME[0m
        [40maegis project attributes - modify the attributes of a project[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Project_Attributes [4m[22mattr-file[24m [ [4moption[24m...  ][0m
        [1m[40maegis -Project_Attributes -Edit [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Project_Attributes -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Project_Attributes -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Project_Attributes[24m command is used to set, edit or list the[0m
        [40mattributes of a project.[0m

        [40mThe output of the [1m-List [22mvariant is suitable for use as input at a[0m
        [40mlater time.[0m

        [40mSee [4maepattr[24m(5) for a description of the file format.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Edit[0m
                [40mEdit the attributes with a text editor, this is usually more[0m
                [40mconvenient than supplying a text file.  The [4mVISUAL[24m and then[0m
                [4m[40mEDITOR[24m environment variables are consulted for the name of the[0m
                [40meditor to use; defaults to [4mvi[24m(1) if neither is set.  See the[0m
                [4m[40mvisual_command[24m and [4meditor_command[24m fields in [4maeuconf[24m(1) for how[0m
                [40mto override this specifically for Aegis.[0m

                [40mWarning: Aegis tries to be well behaved when faced with[0m
                [40merrors, so the temporary file is left in your home directory[0m
                [40mwhere you can edit it further and re-use it with a [1m-file[0m
                [40moption.[0m

                [40mThe [1m-edit [22moption may not be used in the background, or when[0m
                [40mthe standard input is not a terminal.[0m

        [1m[40m-Edit_BackGround[0m
                [40mEdit the attributes with a dumb text editor, this is most[0m
                [40moften desired when edit commands are being piped into the[0m
                [40meditor via the standard input.  Only the [1mEDITOR [22menvironment[0m
                [40mvariable is consulted for the name of the editor to use; it is[0m
                [40ma fatal error if it is not set.  See the [4meditor_command[24m field[0m
                [40min [4maeuconf[24m(1) for how to override this specifically for Aegis.[0m

        [1m[40m-File [4m[22mfilename[0m
                [40mTake the attributes from the specified file.  The filename `-'[0m
                [40mis understood to mean the standard input.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Descend_Project_Tree[0m
                [40mThis option may be used to request that the command should be[0m
                [40mapplied to the project and all its branches and sub-branches.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aepa 'aegis -pa \!* -v'[0m
        [40msh$     aepa(){aegis -pa "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the current user is not an administrator of the[0m
        [40mspecified project.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40mtkaepa[24m(1)[0m
                [40mGraphical interface to the [4maepa[24m(1) command.[0m

        [4m[40maeca[24m(1) modify the attributes of a change[0m

        [4m[40maepattr[24m(5)[0m
                [40mproject attribute file format[0m

        [4m[40maepstate[24m(5)[0m
                [40mproject state file format[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aepatch(1)                                                          aepatch(1)



[40m[1mNAME[0m
        [40maepatch - send and receive changes as patches[0m

[1m[40mSYNOPSIS[0m
        [1m[40maepatch -send [22m[ [4moption[24m...  ][0m
        [1m[40maepatch -receive [22m[ [4moption[24m...  ][0m
        [1m[40maepatch -list [22m[ [4moption[24m...  ][0m
        [1m[40maepatch -Help[0m
        [1m[40maepatch -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maepatch[24m command is used to send Aegis changes as patches, or[0m
        [40mreceive patches and turn them into Aegis changes.[0m

        [40mPlease note that this only works for text files.  If your project uses[0m
        [40mbinary files, the [4maepatch[24m program will not be useful because the[0m
        [4m[40mdiff[24m(1) and [4mpatch[24m(1) commands only work on text files.  Also, this[0m
        [40monly works for files with names which do not contain white space.[0m

        [40mIf you need to merge matches together, you could use the GNU patch[0m
        [40mutils, which include a tool to merge patches together.[0m

[1m[40mSEND[0m
        [40mThe send variant takes a specified change and constructs a patch[0m
        [40mcontaining all of the changes to all of the files in that change.  The[0m
        [40mresult is compressed, and encoded into a text format which can be sent[0m
        [40mas e-mail without being corrupted by the mail transfer agents along[0m
        [40mthe way.[0m

        [40mThe output of the [4maepatch[24m [4m-send[24m command is a normal Unix patch, as you[0m
        [40mwould produce using [4mdiff[24m(1), [4mbzip2[24m(1) and a MIME encoder such as[0m
        [4m[40mmpack[24m(1).  There are no special formats.  The output can be[0m
        [40muncompressed with the normal [4mbunzip2[24m(1) command and applied with the[0m
        [40mnormal [4mpatch[24m(1) command.[0m

        [40mThe compression algorithm is selectable via the [1m-compression-algorithm[0m
        [40moption, see the OPTIONS section, below, for details.  The[0m
        [1m[40m-compatibility [22moption also understands compression needs.[0m

   [1m[40mGenerating Traditional Patches[0m
        [40mIf you wish to send "traditional" patches to developers who are not[0m
        [40musing Aegis to manage the sources at their end, you can use the[0m
        [40mfollowing options:[0m
                [40maepatch -send -cte=none -comp-alg=none[0m
        [40mThis says to use no Content Transfer Encoding, and no compression.  If[0m
        [40myou wish to also omit the Aegis meta data, you can use the following[0m
        [40moptions:[0m
                [40maepatch -send -cte=none -nocomp -compat=4.16[0m
        [40mThis setting for the -compatibility option omits all Aegis extensions.[0m

        [40mBy default, a context diff is generated.  Some projects prefer to use[0m
        [40mthe unified diff format.  This is controlled by the [4mpatch_diff_command[0m
        [40mfield of the project configuration file (see [4maepconf[24m(5) for more[0m
        [40minformation).  If you have GNU diff, use the following command:[0m
                [40mpatch_diff_command = "set +e; "[0m
                    [40m"diff -u --text "[0m
                    [40m"-L ${quote $index} -L ${quote $index} "[0m
                    [40m"${quote $original} ${quote $input} > ${quote $output}; "[0m
                    [40m"test $? -le 1"";[0m
        [40mThis setting will cause the [4maepatch[24m(1) command to produce unified diff[0m
        [40mpatches instead of context diff patches.  As you can see from this[0m
        [40mcommand, the [4maepatch[24m(1) command is onlu of use if you have text source[0m
        [40mfiles; it produces less than ideal results for binary files.[0m

   [1m[40mOptions[0m
        [40mThe following options are understood by the send variant:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-COMPATibility [4m[22mversion-number[0m
                [40mThis option may be used to specify the version of [4maepatch[24m(1)[0m
                [40mwhich will be [4mreceiving[24m this change set.  This information is[0m
                [40mused to select which features to include in the data, and[0m
                [40mwhich to omit.  By default, the latest feature set will be[0m
                [40mused.[0m

        [1m[40m-compression-algorithm [4m[22mname[0m
                [40mThis option may be used to specify the compression to be used.[0m
                [40mThey are listed on order of compression effeciency.[0m

                [40mnone    Use no compression (not always meaningful for all[0m
                        [40mcommands).[0m

                [40mgzip    Use the compression used by the [4mgzip[24m(1) program.[0m

                [40mbzip2   Use the compression used by the [4mbzip2[24m(1) program.[0m

                [40mMore compression algorithms may be added in the future.[0m

        [1m[40m-COMPress[0m
                [40mThis option is deprecated in favour of the [1m-comp-alg=gzip [22mor[0m
                [1m[40m-comp-alg=bzip2 [22moptions.[0m

        [1m[40m-No_COMPress[0m
                [40mThis options is deprecated in favour of the [1m-comp-alg=none[0m
                [40moption.[0m

        [1m[40m-Content_Transfer_Encoding [4m[22mname[0m
                [40mThis option may be used to specify the content transfer[0m
                [40mencoding to be used.  It may take one of the following values:[0m

                [40mNone    No content transfer encoding is to be performed.[0m

                [40mBase64  The MIME base 64 encoding is to be used.  This is the[0m
                        [40mdefault.[0m

                [40mQuoted_Printable[0m
                        [40mThe MIME quoted printable encoding is to be used.[0m

                [40mUnix_to_Unix_encode[0m
                        [40mThe ancient unix-to-unix encoding is to be used.[0m

                [40mThese encodings may be abbreviated in the same way as comment[0m
                [40mline options.[0m

        [1m[40m-Ascii_Armor[0m
                [40mThis means the same as the "-cte=base64" option above.[0m

        [1m[40m-No_Ascii_Armor[0m
                [40mThis means the same as the "-cte=none" option above.[0m

        [1m[40m-DELta [4m[22mnumber[0m
                [40mThis option may be used to specify a particular delta in the[0m
                [40mproject's history to copy the file from, rather than the most[0m
                [40mcurrent version.  If the delta has been given a name (see[0m
                [4m[40maedn[24m(1) for how) you may use a delta name instead of a delta[0m
                [40mnumber.  It is an error if the delta specified does not exist.[0m
                [40mDelta numbers start from 1 and increase; delta 0 is a special[0m
                [40mcase meaning "when the branch started".[0m

        [1m[40m-DELta_Date [4m[22mstring[0m
                [40mThis option may be used to specify a particular date and time[0m
                [40min the project's history to copy the file from, rather than[0m
                [40mthe most current version.  It is an error if the string[0m
                [40mspecified cannot be interpreted as a valid date and time.[0m
                [40mQuote the string if you need to use spaces.[0m

        [1m[40m-DELta_From_Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular project delta[0m
                [40mfrom its change number.[0m

        [1m[40m-Output [4m[22mfilename[0m
                [40mThis option may be used to specify the output file.  The[0m
                [40moutput is sent to the standard output by default.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Signed_Off_By[0m
                [40mThis option may be used to have a Signed-off-by: line appended[0m
                [40mto the change set description.[0m

        [1m[40m-No_Signed_Off_By[0m
                [40mThis option may be used to prevent a Signed-off-by: line from[0m
                [40mbeing appended to the change set description.[0m

[1m[40mRECEIVE[0m
        [40mThe receive variant takes a patch and creates an Aegis change (see[0m
        [4m[40maenc[24m(1)) to implement the change within.  Files are added to the[0m
        [40mchange (see [4maenf[24m(1), [4maecp[24m(1), [4maerm[24m(1), [4maent[24m(1)) and then the patch[0m
        [40mcontents are unpackaged into the development directory, and the[0m
        [40mchanges applied to the files.[0m

        [40mThe patch does not have to be produced by the [4maepatch[24m(1) command.[0m
        [40mNormal patches produced by [4mdiff[24m(1) command are also valid input.  The[0m
        [40mintent is that you can particicate in normal open source development,[0m
        [40mand also use Aegis, even if your fellow developers are not.[0m

        [40mOnce unpacked, the change is then built (see [4maeb[24m(1)), differenced (see[0m
        [4m[40maed[24m(1)), and tested (see [4maet[24m(1)).  The automatic process stops at this[0m
        [40mpoint, so that you can confirm that the change is desired.[0m

   [1m[40mFile Names[0m
        [40mIt is common for patch files generated using the usual [4mdiff[24m [4m-r[0m
        [40mmechanism to contain extra path prefixes.  The [4maepatch[24m(1) command[0m
        [40mattempts to remove these automagically.  This is usually possible[0m
        [40mbecause patches usually modify files within the project, so the patch[0m
        [40mfile names are compared with project file names to guess which and how[0m
        [40mmuch path prefixes to remove.[0m

        [1m[40m-Remove_Path_Prefix [4m[22mstring[0m
                [40mThis option may be used to explicitly specify path prefixes to[0m
                [40mbe removed, if present.  It may be specified more than once.[0m

        [40mIf you have a complex project directory structure, from time to time[0m
        [40mpeople may send you patches relative to a sub-directory, rather than[0m
        [40mrelative to the project root.  The [4maepatch[24m(1) program can't guess this[0m
        [40mby itself.[0m

        [1m[40m-Add_Path_Prefix [4m[22mstring[0m
                [40mThis option may be used to specify the path of a project sub-[0m
                [40mdirectory in which to apply the patch.[0m

   [1m[40mNotification[0m
        [40mThe [4maepatch[24m command invokes various other Aegis commands.  The usual[0m
        [40mnotifications that these commands would issue are issued.[0m

   [1m[40mOptions[0m
        [40mThe following options are understood by the receive variant:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to choose the change number to be[0m
                [40mused, otherwise the change number in the patch (if present)[0m
                [40mwill be used if it is available, otherwise one will be chosen[0m
                [40mautomatically.[0m

        [1m[40m-DELta [4m[22mnumber[0m
                [40mThis option may be used to specify a particular delta in the[0m
                [40mproject's history to copy the file from, just as for the[0m
                [4m[40maecp[24m(1) command.  You may also use a delta name instead of a[0m
                [40mdelta number.[0m

        [1m[40m-DIRectory [4m[22mpath[0m
                [40mThis option may be used to specify which directory is to be[0m
                [40mused.  It is an error if the current user does not have[0m
                [40mappropriate permissions to create the directory path given.[0m
                [40mThis must be an absolute path.[0m

                [40mCaution: If you are using an automounter do not use `pwd` to[0m
                [40mmake an absolute path, it usually gives the wrong answer.[0m

        [1m[40m-File [4m[22mfilename[0m
                [40mRead the change set from the specified file.  The default is[0m
                [40mto read it from the standard input.  The filename `-' is[0m
                [40munderstood to mean the standard input.[0m

                [40mIf your system has [4mlibcurl[24m(3), and Aegis was configured to use[0m
                [40mit at compile time (this is the default if it is available)[0m
                [40myou will also be able to specify a Uniform Resource Locator[0m
                [40m(URL) in place of the file name.  The relevant data will be[0m
                [40mdownloaded.  (The [1m-Verbose [22moption will provide a progress[0m
                [40mbar.)[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to set the project name.  If not[0m
                [40mspecified the project name in the input package will be used[0m
                [40m(if present), otherwise the usual project name default will be[0m
                [40mused.[0m

        [1m[40m-Trojan [22mThis option may be used to treat the change set as if it had a[0m
                [40mTrojan horse attack in it.[0m

        [1m[40m-No_Trojan[0m
                [40mThis option may be used to treat the change set as if it[0m
                [40mdefinitely does not have a Trojan horse attack in it.  [4mUse[0m
                [4m[40mwith[24m [4mextreme[24m [4mcare.[24m  You need to have authenticated the message[0m
                [40mwith something like PGP first [1mand [22mknow the the author well.[0m

   [1m[40mSecurity[0m
        [40mReceiving changes by e-mail, and automatically committing them to the[0m
        [40mbaseline without checking them, would be a recipe for disaster.  A[0m
        [40mnumber of safeguards are provided:[0m

        [40m+o The format of the package is confirmed to be correct, and the[0m
          [40mpackage verified for internal consistency, before it is unpacked and[0m
          [40macted upon.[0m

        [40m+o The automatic portion of the process stops before development ends.[0m
          [40mThis ensures that the receiver validates the change before it is[0m
          [40mcommitted, and then it must also be reviewed, preventing accidental[0m
          [40mor malicious damage.[0m

        [40m+o The more you use Aegis' test management facilities (see [4maent[24m(1) and[0m
          [4m[40maet[24m(1)) the harder it is for an inadequate change to get into the[0m
          [40mbaseline.[0m

[1m[40mLIST[0m
        [40mThe list variant can be used to list the contents of a package without[0m
        [40mactually unpacking it first.  The output is reminiscent of the [4maegis[0m
        [4m[40m-list[24m [4mchange-details[24m output.[0m

   [1m[40mOptions[0m
        [40mThe following options are understood by the list variant:[0m

        [1m[40m-File [4m[22mfilename[0m
                [40mRead the change set from the specified file.  The default is[0m
                [40mto read it from the standard input.  The filename `-' is[0m
                [40munderstood to mean the standard input.[0m

                [40mIf your system has [4mlibcurl[24m(3), and Aegis was configured to use[0m
                [40mit at compile time (this is the default if it is available)[0m
                [40myou will also be able to specify a Uniform Resource Locator[0m
                [40m(URL) in place of the file name.  The relevant data will be[0m
                [40mdownloaded.  (The [1m-Verbose [22moption will provide a progress[0m
                [40mbar.)[0m

        [1m[40m-Output [4m[22mfilename[0m
                [40mThis option may be used to specify the output file.  The[0m
                [40moutput is sent to the standard output by default.  Only useful[0m
                [40mwith the -List option.[0m

[1m[40mOPTIONS[0m
        [40mThe following options to this command haven't been mentioned yet:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maepatch[24m program.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maepatch[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mFILE FORMAT[0m
        [40mThe file format re-uses existing formats, rather than introduce[0m
        [40manything new.  This means it is possible to extract the contents of a[0m
        [40mpackage even when aepatch is unavailable.[0m

        [40m+o On sending, the source files are generated using the [4mdiff[24m(1)[0m
          [40mprogram, in the same way a normal Unix patch  is generated.[0m
          [40mOn receiving, the differences are applied to the source files, in[0m
          [40mthe same manner as the normal [4mpatch[24m(1) program.[0m

        [40m+o On sending, the patch is compressed using the GNU gzip format.[0m
          [40mTypically primary source files are ASCII text, resulting in[0m
          [40msignificant compression.  (This is optional.)[0m
          [40mOn receiving, if the patch is compressed it will be automagically[0m
          [40muncompressed, detection is automatic, you do not need to do this[0m
          [40myourself.[0m

        [40m+o On sending, the compressed patch is encoded using the MIME base64[0m
          [40mencoding.  This makes the result approximately 33% larger than the[0m
          [40mcompressed binary would be, but still smaller than the primary[0m
          [40msources.  (This is optional.)[0m
          [40mOn receiving, if the patch is MIME64 encoded it will be[0m
          [40mautomatically decoded, detetcion is automatic, you do not need to do[0m
          [40mthis yourself.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maepatch[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maepatch[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maepatch version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aepatch program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maepatch[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maepatch[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aepromptcmd(1)                                                  aepromptcmd(1)



[40m[1mNAME[0m
        [40maepromptcmd - change prompt color by change state[0m

[1m[40mSYNOPSIS[0m
        [40mPROMPT_COMMAND="aepromptcmd"[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4mbash[24m(1) shell has an interesting property:  If the PROMPT_COMMAND[0m
        [40mvaiable is set, the value is executed as a command prior to issuing[0m
        [40meach primary prompt.  (Actually, it can be a seties of semicolon[0m
        [40mseparated commands.)[0m

        [40mIn order to change the text back to normal, the PS1 variable needs to[0m
        [40mhave "\33[0m" somewhere near the end, otherwise things can get a[0m
        [40mlittle difficult to read.  If you are using [4mbash[24m(1), you need to let[0m
        [40mit know these are unprintable (like this: "\[\33[0m\]") or it messes[0m
        [40mup command line editing.[0m

        [40mThe [4maepromptcmd[24m command is used to set the color of the prompt, based[0m
        [40mon the state of the current change.  This is an idea taken from Kent[0m
        [40mBeck's [4mTest[24m [4mDriven[24m [4mDevelopment[24m book.  If the change is in the [4mbeing[0m
        [4m[40mdeveloped[24m or [4mbeing[24m [4mintegrated[24m state and it needs to be built, the[0m
        [40mprompt is red; if it is built but it needs to be tested, the prompt is[0m
        [40mmagenta, otherwise it is green.[0m

[1m[40mExample[0m
        [40mHere is a short script you can put in your .bashrc file to turn on[0m
        [40mprompt coloring:[0m
                [40mif [ "$PS1" ] then[0m
                    [40mcase "$PROMPT_COMMAND" in[0m
                    [40m"" )      PROMPT_COMMAND="aepromptcmd"[0m
                     [40mPS1="$PS1^[[0m"      ;;[0m
                    [40m*aepromptcmd*)      ;;[0m
                    [40m*)      PROMPT_COMMAND="$PROMPT_COMMAND;aepromptcmd"[0m
                     [40mPS1="$PS1\[\33[0m\]"      ;;[0m
                    [40mesac[0m
                    [40mexport PROMPT_COMMAND[0m
                    [40mexport PS1 fi[0m
        [40mNote that this usually leaves your prompt default (black) when you are[0m
        [40mnot somewhere inside a development directory.[0m

   [1m[40mLimitations[0m
        [40mThe [4maepromptcmd[24m command uses the ANSI color escape sequences.  It[0m
        [40mreally should to use the [4mtigetstr[24m(3) function from [4mterminfo[24m(3) to do[0m
        [40mthis in a terminal independent way.  Code contributions welcome.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maepromptcmd[24m program.[0m

        [1m[40m-Verbose[0m
                [40mBy default error messages are supressed, so that the prompt[0m
                [40mwill be normal when you are outside an Aegis work area.  Use[0m
                [40mthis option to tuen error messages back on.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maepromptcmd[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maepromptcmd[24m command will exit with a status of 1 on any error.[0m
        [40mThe [4maepromptcmd[24m command will only exit with a status of 0 if there are[0m
        [40mno errors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maepromptcmd version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aepromptcmd program comes with ABSOLUTELY NO WARRANTY; for details[0m
        [40muse the '[4maepromptcmd[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software[0m
        [40mand you are welcome to redistribute it under certain conditions; for[0m
        [40mdetails use the '[4maepromptcmd[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aereport(1)                                                        aereport(1)



[40m[1mNAME[0m
        [40maegis report - report generator[0m

[1m[40mSYNOPSIS[0m
        [1m[40maereport [22m[ [4moption[24m...  ] [4mreport-name[0m
        [1m[40maereport [22m[ [4moption[24m...  ] [1m-File [4m[22mfilename[0m
        [1m[40maereport -RePorT -List[0m
        [1m[40maereport -Help[0m
        [1m[40maereport -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maereport[24m command is used to generate reports from aereport'[0m
        [40mdatabase.  Reports are specified in a C-like language described in the[0m
        [4m[40maer[24m(5) manual entry.[0m

        [40mFor a list of the reports available on your system, use the '[4maer[0m
        [4m[40m-list[24m' command.  These reports live in the[0m
        [4m[40m/usr/local/share/aegis/report[24m directory, and it initially contains the[0m
        [40mreports distributed with aereport, however sites are free to add their[0m
        [40mown here.[0m

[1m[40mWRITING REPORT SCRIPTS[0m
        [40mGetting started writing report scripts can be difficult.  You are best[0m
        [40mto have a look at the reports distributes with Aegis, and try to adapt[0m
        [40mthem.  The report script files are kept in the[0m
        [4m[40m/usr/local/share/aegis/report[24m directory.[0m

        [40mFor information about the data structures which may be accessed from a[0m
        [40mreport script, you need to see the relevant manual entries:[0m

        [40mthe projects list[0m
                [40mSee [4maegstate[24m(1) for the member fields.[0m

        [40ma specific project[0m
                [40mSee [4maepstate[24m(1) for the member fields.[0m

        [40ma specific change[0m
                [40mSee [4maecstate[24m(1) for the member fields.[0m

        [40ma specific file[0m
                [40mSee [4maefstate[24m(1) for the member fields.[0m

        [40mEach of the above man pages also contains a section towards the end[0m
        [40mwhich specifically addresses report generator use, usually with code[0m
        [40mfragments.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-BaseLine[0m
                [40mThis option may be used to specify that the project baseline[0m
                [40mis the subject of the command.[0m

        [1m[40m-BRanch [4m[22mnumber[0m
                [40mThis option may be used to specify a different branch for the[0m
                [40morigin file, rather than the baseline.  (See also [1m-TRunk[0m
                [40moption.  Please Note: the [1m-BRanch [22moption does not take a[0m
                [40mproject name, just the branch number suffix.[0m

        [1m[40m-GrandParent[0m
                [40mThis option may be used to specify the grandparent branch (one[0m
                [40mup from the current branch) for the origin file, rather than[0m
                [40mthe baseline.  (The -grandparent option is the same as the[0m
                [40m"-branch .." option.)[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-DELta [4m[22mnumber[0m
                [40mThis option may be used to specify a particular delta in the[0m
                [40mproject's history to copy the file from, rather than the most[0m
                [40mcurrent version.  If the delta has been given a name (see[0m
                [4m[40maedn[24m(1) for how) you may use a delta name instead of a delta[0m
                [40mnumber.  It is an error if the delta specified does not exist.[0m
                [40mDelta numbers start from 1 and increase; delta 0 is a special[0m
                [40mcase meaning "when the branch started".[0m

        [1m[40m-DELta_Date [4m[22mstring[0m
                [40mThis option may be used to specify a particular date and time[0m
                [40min the project's history to copy the file from, rather than[0m
                [40mthe most current version.  It is an error if the string[0m
                [40mspecified cannot be interpreted as a valid date and time.[0m
                [40mQuote the string if you need to use spaces.[0m

        [1m[40m-DELta_From_Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular project delta[0m
                [40mfrom its change number.[0m

        [1m[40m-File [4m[22mfilename[0m
                [40mTake the report script from the specified file, rather than[0m
                [40mlooking for the named report in the library of reports[0m
                [40mdistributed with Aegis.  The filename "-" is understood to[0m
                [40mmean the standard input.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maereport[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Output [4m[22mfilename[0m
                [40mThis option may be used to specify the output file.  The[0m
                [40moutput is sent to the standard output by default.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-TRunk[0m
                [40mThis option may be used to specify the project trunk for the[0m
                [40morigin file, rather than the baseline.  (See also [1m-BRanch[0m
                [40moption, the -trunk option is the same as the "-branch -"[0m
                [40moption.)[0m

        [1m[40m-UNFormatted[0m
                [40mThis option may be used with most listings to specify that the[0m
                [40mcolumn formatting is not to be performed.  This is useful for[0m
                [40mshell scripts.[0m

        [1m[40m-Page-Header[0m
                [40mThis option requests that page headings be present in listings[0m
                [40mand reports.  This is the default.[0m

        [1m[40m-No-Page-Header[0m
                [40mThis option requests that page headings be omitted from[0m
                [40mlistings and reports.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aereport to produce more[0m
                [40moutput.  By default aereport only produces output on errors.[0m
                [40mWhen used with the [1m-List [22moption this option causes column[0m
                [40mheadings to be added.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maereport[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aer 'aereport \!* -v'[0m
        [40msh$     aer(){aereport "$@" -v}[0m

[1m[40mSEE ALSO[0m
        [4m[40mael[24m(1)  list (possibly) interesting things[0m

        [4m[40maer[24m(5)  report script language definition[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maereport[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maereport[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maereport version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aereport program comes with ABSOLUTELY NO WARRANTY; for details[0m
        [40muse the '[4maereport[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software[0m
        [40mand you are welcome to redistribute it under certain conditions; for[0m
        [40mdetails use the '[4maereport[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Remove_Administrator(1)                  aegis -Remove_Administrator(1)



[40m[1mNAME[0m
        [40maegis remove administrator - remove administrators from a project[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Remove_Administrator [4m[22muser-name[24m [4m...[24m  [ [4moption[24m...  ][0m
        [1m[40maegis -Remove_Administrator -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Remove_Administrator -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Remove_Administrator[24m command is used to remove[0m
        [40madministrators from a project.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Descend_Project_Tree[0m
                [40mThis option may be used to request that the command should be[0m
                [40mapplied to the project and all its branches and sub-branches.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aera 'aegis -ra \!* -v'[0m
        [40msh$     aera(){aegis -ra "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the current user is not an administrator of the[0m
        [40mproject.[0m

        [40mIt is an error if an attempt is made to remove the last administrator[0m
        [40mfrom the project.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maena[24m(1) add new administrators to a project[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Review_Begin(1)                                  aegis -Review_Begin(1)



[40m[1mNAME[0m
        [40maegis review begin - begin a change review[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Review_Begin [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Review_Begin -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Review_Begin -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Review_Begin[24m command is used to notify aegis that you have[0m
        [40mbegun to review a change.[0m

        [40mThe change will be advanced from the [4mawaiting[24m [4mreview[24m state to the[0m
        [4m[40mbeing[24m [4mreviewed[24m state.[0m
[40m[0m
                                 [40mawaiting[0m
                                  [40mreview[0m
                                     [40m|[0m
                            [40mreview   |review[0m
                            [40mbegin    |begin[0m
                            [40mundo[0m
                                  [40mbeing[0m
                                 [40mreviewed[0m



   [1m[40mNotification[0m
        [40mIf the [4mreview_begin_notify_command[24m has been set in the project[0m
        [40mattributes, this command will be run.  This is usually used to tell[0m
        [40mother reviewers that you have started review, and they need not.  See[0m
        [4m[40maepattr[24m(5) and [4maepa[24m(1) for more information.[0m

        [40mIf used when the [4mdevelop_end_action[24m project attribute is set to[0m
        [4m[40mgoto_being_reviewed[24m, then only the notification message is sent.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-REAson [4m[22mtext[0m
                [40mThis option may be used to attach a comment to the change[0m
                [40mhistory generated by this command.  You will need to use[0m
                [40mquotes to insulate the spaces from the shell.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aerb 'aegis -rb \!* -v'[0m
        [40msh$     aerb(){aegis -rb "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mawaiting[24m [4mreview[24m state.[0m
        [40mIt is an error if the current user is not a reviewer of the project.[0m
        [40mIts is an error if the current user developed the change and the[0m
        [40mproject is configured to not permit developers to review their own[0m
        [40mchanges (default).[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maecd[24m(1) change directory[0m

        [4m[40maede[24m(1) complete development of a change[0m

        [4m[40maedeu[24m(1)[0m
                [40mrecall a change for further development[0m

        [4m[40maerpass[24m(1)[0m
                [40mpass review of a change[0m

        [4m[40maeib[24m(1) begin integrating a change[0m

        [4m[40maenrv[24m(1)[0m
                [40madd a reviewer to a project[0m

        [4m[40maerfail[24m(1)[0m
                [40mfail review of a change[0m

        [4m[40maerpu[24m(1)[0m
                [40mrescind a change review pass[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Review_Begin_Undo(1)                        aegis -Review_Begin_Undo(1)



[40m[1mNAME[0m
        [40maegis review begin undo - stop reviewing a change[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Review_Begin_Undo [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Help[0m
        [1m[40maegis -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Review_Begin_Undo[24m command is used to stop reviewing a[0m
        [40mchange.  It is moved from the [4mbeing[24m [4mreviewed[24m state back to the[0m
        [4m[40mawaiting[24m [4mreview[24m state.[0m
[40m[0m
                                 [40mawaiting[0m
                                  [40mreview[0m
                                     [40m|[0m
                            [40mreview   |review[0m
                            [40mbegin    |begin[0m
                            [40mundo[0m
                                  [40mbeing[0m
                                 [40mreviewed[0m



   [1m[40mNotification[0m
        [40mIf the [4mreview_begin_undo_notify_command[24m has been set in the project[0m
        [40mattributes, this command will be run.  This is usually used to tell[0m
        [40mother reviewers that you have stopped reviewing, and they may like to[0m
        [40mdo so instead.  See [4maepattr[24m(5) and [4maepa[24m(1) for more information.[0m

        [40mIf used when the [4mdevelop_end_action[24m project attribute is set to[0m
        [4m[40mgoto_being_reviewed[24m, then only the notification message is sent.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-REAson [4m[22mtext[0m
                [40mThis option may be used to attach a comment to the change[0m
                [40mhistory generated by this command.  You will need to use[0m
                [40mquotes to insulate the spaces from the shell.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aerbu 'aegis -rbu \!* -v'[0m
        [40msh$     aerbu(){aegis -rbu "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mbeing[24m [4mreviewed[24m state.[0m
        [40mIt is an error if the current user is not the reviewer of the change.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maecd[24m(1) change directory[0m

        [4m[40maede[24m(1) complete development of a change[0m

        [4m[40maedeu[24m(1)[0m
                [40mrecall a change for further development[0m

        [4m[40maerb[24m(1) begin review of a change[0m

        [4m[40maenrv[24m(1)[0m
                [40madd a reviewer to a project[0m

        [4m[40maerfail[24m(1)[0m
                [40mfail review of a change[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Remove_Developer(1)                          aegis -Remove_Developer(1)



[40m[1mNAME[0m
        [40maegis remove developer - remove developers from a project[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Remove_Developer [4m[22muser-name[24m...  [ [4moption[24m...  ][0m
        [1m[40maegis -Remove_Developer -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Remove_Developer -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Remove_Developer[24m command is used to remove developers from[0m
        [40ma project.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Descend_Project_Tree[0m
                [40mThis option may be used to request that the command should be[0m
                [40mapplied to the project and all its branches and sub-branches.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aerd 'aegis -rd \!* -v'[0m
        [40msh$     aerd(){aegis -rd "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the current user is not an administrator of the[0m
        [40mproject.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maend[24m(1) add a new developer to a project[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aerect(1)                                                            aerect(1)



[40m[1mNAME[0m
        [40maerect - draw a rectangle[0m

[1m[40mSYNOPSIS[0m
        [1m[40maerect [22m[ [4moption[24m...  ] [4mwidth[24m [4mheight[0m
        [1m[40maegis -Help[0m
        [1m[40maegis -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maerect[24m command is used to draw rectangles for use with the[0m
        [40mintranet interface.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Bevel [4m[22msize[0m
                [40mThis option may be used to specify the bevel size.  A size of[0m
                [40m0 may be use to specify no bevel.  Defaults to 3 if not[0m
                [40mspecified.[0m

        [1m[40m-Color [4m[22mred[24m [4mgreen[24m [4mblue[0m
                [40mThis option may be used to specify the color of the rectangle.[0m
                [40mThe components are specified in a range from 0 to 255.  If not[0m
                [40mspecified, the color will be based on the size of the[0m
                [40mrectangle.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-Output [4m[22mfilename[0m
                [40mThis option may be used to specify the output file.  The[0m
                [40moutput is sent to the standard output by default.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aerevml(1)                                                          aerevml(1)



[40m[1mNAME[0m
        [40maerevml - send and receive RevML change sets[0m

[1m[40mSYNOPSIS[0m
        [1m[40maerevml -Send [22m[ [4moption[24m... ][0m
        [1m[40maerevml -Receive [22m[ [4moption[24m... ][0m
        [1m[40maerevml -Help[0m
        [1m[40maerevml -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maerevml[24m command is used to send and receive change sets using the[0m
        [40mRevML format.  This format is independent of any particular VC/SCM[0m
        [40mtool or vendor.  It allows export from any RevML capable VC/SCM system[0m
        [40mand import into any other RevML capable VC/SCM system.[0m

        [40mThe basic function is to reproduce a change, so a command like[0m
                [40maerevml -send | aerevml -receive[0m
        [40mmay be used to clone a change, though less efficiently than[0m
        [4m[40maeclone[24m(1).  The file format used is designed to withstand mail[0m
        [40mservers, so activities such as[0m
                [40maerevml -send | [4me-mail[24m | aerevml -receive[0m
        [40m(where [4me-mail[24m represents sending, transporting and receiving your e-[0m
        [40mmail) will reproduce the change on a remote system.  With suitable[0m
        [40mtools (such as PGP) is it possible to[0m
                [40maerevml -send | encrypt | [4me-mail[24m | decrypt | aerevml -receive[0m
        [40mThe mechanism is also designed to allow web-based distribution such as[0m
                [40maerevml -send | [4mweb-server[24m [4m->[24m [4mweb-browser[24m | aerevml -receive[0m
        [40mby the use of appropriate CGI scripts and mailcap entries.[0m

        [40mIt is possible to support both a "push" model and a "pull" model using[0m
        [40mthis command.  For suggestions and ideas for various ways to do this,[0m
        [40msee the Aegis Users Guide.[0m

   [1m[40mRevML Project[0m
        [40mThe RevML format is used for copying revision controlled files and[0m
        [40mchange sets between various SCM repositories.  The RevML project may[0m
        [40mbe found at http://public.perforce.com/public/revml/index.html[0m

        [40mThe latest RevML DTD may be found at http://public.perforce.com/-[0m
        [40mpublic/revml/revml.dtd[0m

[1m[40mSEND[0m
        [40mThe send variant takes a specified change, or baseline, and constructs[0m
        [40ma distribution package containing all of the change attributes and[0m
        [40msource file attributes and source file contents.  The result is[0m
        [40mcompressed, and encoded into a text format which can be sent as e-mail[0m
        [40mwithout being corrupted by the mail transfer agents along the way.[0m

   [1m[40mOptions[0m
        [40mThe following options are understood by the send variant:[0m

        [1m[40m-BaseLine[0m
                [40mThis option may be used to specify the source of a project,[0m
                [40mrather than a change.  Implies the [4m-Entire_Source[24m option,[0m
                [40munless over-ridden.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-COMPATibility [4m[22mversion-number[0m
                [40mThis option may be used to specify the version of [4maerevml[24m(1)[0m
                [40mwhich will be [4mreceiving[24m this change set.  This information is[0m
                [40mused to select which features to include in the data, and[0m
                [40mwhich to omit.  By default, the latest feature set will be[0m
                [40mused.[0m

        [1m[40m-compression-algorithm [4m[22mname[0m
                [40mThis option may be used to specify the compression to be used.[0m
                [40mThey are listed on order of compression effeciency.[0m

                [40mnone    Use no compression (not always meaningful for all[0m
                        [40mcommands).[0m

                [40mgzip    Use the compression used by the [4mgzip[24m(1) program.[0m

                [40mbzip2   Use the compression used by the [4mbzip2[24m(1) program.[0m

                [40mMore compression algorithms may be added in the future.[0m

        [1m[40m-COMPress[0m
                [40mThis option is deprecated in favour of the [1m-comp-alg=gzip [22mor[0m
                [1m[40m-comp-alg=bzip2 [22moptions.[0m

        [1m[40m-No_COMPress[0m
                [40mThis options is deprecated in favour of the [1m-comp-alg=none[0m
                [40moption.[0m

        [1m[40m-Content_Transfer_Encoding [4m[22mname[0m
                [40mThis option may be used to specify the content transfer[0m
                [40mencoding to be used.  It may take one of the following values:[0m

                [40mNone    No content transfer encoding is to be performed.[0m

                [40mBase64  The MIME base 64 encoding is to be used.  This is the[0m
                        [40mdefault.[0m

                [40mQuoted_Printable[0m
                        [40mThe MIME quoted printable encoding is to be used.[0m

                [40mUnix_to_Unix_encode[0m
                        [40mThe ancient unix-to-unix encoding is to be used.[0m

                [40mThese encodings may be abbreviated in the same way as comment[0m
                [40mline options.[0m

        [1m[40m-Ascii_Armor[0m
                [40mThis means the same as the "-cte=base64" option above.[0m

        [1m[40m-No_Ascii_Armor[0m
                [40mThis means the same as the "-cte=none" option above.[0m

        [1m[40m-DELta [4m[22mnumber[0m
                [40mThis option may be used to specify a particular delta in the[0m
                [40mproject's history to copy the file from, rather than the most[0m
                [40mcurrent version.  If the delta has been given a name (see[0m
                [4m[40maedn[24m(1) for how) you may use a delta name instead of a delta[0m
                [40mnumber.  It is an error if the delta specified does not exist.[0m
                [40mDelta numbers start from 1 and increase; delta 0 is a special[0m
                [40mcase meaning "when the branch started".[0m

        [1m[40m-DELta_Date [4m[22mstring[0m
                [40mThis option may be used to specify a particular date and time[0m
                [40min the project's history to copy the file from, rather than[0m
                [40mthe most current version.  It is an error if the string[0m
                [40mspecified cannot be interpreted as a valid date and time.[0m
                [40mQuote the string if you need to use spaces.[0m

        [1m[40m-DELta_From_Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular project delta[0m
                [40mfrom its change number.[0m

        [1m[40m-Description_Header[0m
                [40mThis option may be used to add an RFC 822 style header to the[0m
                [40mchange description being sent, with a From and Date line.[0m
                [40mThis is the default.[0m

        [1m[40m-No_Description_Header[0m
                [40mThis option suppresses the description header.[0m

        [1m[40m-Entire_Source[0m
                [40mThis option may be used to send the entire source of the[0m
                [40mproject, as well as the change source files.[0m

        [1m[40m-Mime_Headers[0m
                [40mThis option may be use to force the presence of mime headers[0m
                [40min the output, in circumstances they would usually be absent.[0m

        [1m[40m-No_Mime_Headers[0m
                [40mThis option may be use to force the absence of mime headers in[0m
                [40mthe output, in circumstances where they would usually be[0m
                [40mpresent.[0m

        [1m[40m-Partial_Source[0m
                [40mThis option may be used to send only source files of a change.[0m
                [40mThis is the default, except for the [4m-BaseLine[24m option.[0m

        [1m[40m-Output [4m[22mfilename[0m
                [40mThis option may be used to specify the output file.  The[0m
                [40moutput is sent to the standard output by default.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Signed_Off_By[0m
                [40mThis option may be used to have a Signed-off-by: line appended[0m
                [40mto the change set description.[0m

        [1m[40m-No_Signed_Off_By[0m
                [40mThis option may be used to prevent a Signed-off-by: line from[0m
                [40mbeing appended to the change set description.[0m

[1m[40mRECEIVE[0m
        [40mThe receive variant takes a change package created by the send variant[0m
        [40mand creates an Aegis change (see [4maenc[24m(1)) to implement the change[0m
        [40mwithin.  Files are added to the change (see [4maerm[24m(1), [4maecp[24m(1), [4maenf[24m(1)[0m
        [40mand [4maent[24m(1)) and then the file contents are unpackaged into the[0m
        [40mdevelopment directory.[0m

        [40mThe change is then built (see [4maeb[24m(1)), differenced (see [4maed[24m(1)), and[0m
        [40mtested (see [4maet[24m(1)).  If all of this is successful, development of the[0m
        [40mchange is ended (see [4maed[24m(1)).  The automatic process stops at this[0m
        [40mpoint, so that a local reviewer can confirm that the change is[0m
        [40mdesired.[0m

   [1m[40mNotification[0m
        [40mThe [4maerevml[24m command invokes various other Aegis commands.  The usual[0m
        [40mnotifications that these commands would issue are issued.[0m

   [1m[40mOptions[0m
        [40mThe following options are understood by the receive variant:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to choose the change number to be[0m
                [40mused, otherwise one will be chosen automatically.[0m

        [1m[40m-DELta [4m[22mnumber[0m
                [40mThis option may be used to specify a particular delta in the[0m
                [40mproject's history to copy the file from, just as for the[0m
                [4m[40maecp[24m(1) command.  You may also use a delta name instead of a[0m
                [40mdelta number.[0m

        [1m[40m-DIRectory [4m[22mpath[0m
                [40mThis option may be used to specify which directory is to be[0m
                [40mused.  It is an error if the current user does not have[0m
                [40mappropriate permissions to create the directory path given.[0m
                [40mThis must be an absolute path.[0m

                [40mCaution: If you are using an automounter do not use `pwd` to[0m
                [40mmake an absolute path, it usually gives the wrong answer.[0m

        [1m[40m-File [4m[22mfilename[0m
                [40mRead the change set from the specified file.  The default is[0m
                [40mto read it from the standard input.  The filename `-' is[0m
                [40munderstood to mean the standard input.[0m

                [40mIf your system has [4mlibcurl[24m(3), and Aegis was configured to use[0m
                [40mit at compile time (this is the default if it is available)[0m
                [40myou will also be able to specify a Uniform Resource Locator[0m
                [40m(URL) in place of the file name.  The relevant data will be[0m
                [40mdownloaded.  (The [1m-Verbose [22moption will provide a progress[0m
                [40mbar.)[0m

        [1m[40m-Ignore_UUID[0m
                [40mThis option may be used to ignore the UUID, if present, of the[0m
                [40mincoming change set.[0m

        [1m[40m-No_Ignore_UUID[0m
                [40mThis option force the [4maerevml[24m command to use the change set's[0m
                [40mUUID.  This is the default.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to set the project name.  If not[0m
                [40mspecified, the project name in the input package will be used,[0m
                [40mrather than the usual project name defaulting mechanism.[0m

        [1m[40m-Trojan [22mThis option may be used to treat the change set as if it had a[0m
                [40mTrojan horse attack in it.[0m

        [1m[40m-No_Trojan[0m
                [40mThis option may be used to treat the change set as if it[0m
                [40mdefinitely does not have a Trojan horse attack in it.  [4mUse[0m
                [4m[40mwith[24m [4mextreme[24m [4mcare.[24m  You need to have authenticated the message[0m
                [40mwith something like PGP first [1mand [22mknow the the author well.[0m

   [1m[40mSecurity[0m
        [40mReceiving changes by e-mail, and automatically committing them to the[0m
        [40mbaseline without checking them, would be a recipe for disaster.  A[0m
        [40mnumber of safeguards are provided:[0m

        [40m+o The format of the package is confirmed to be correct, and the[0m
          [40mpackage verified for internal consistency, before it is unpacked and[0m
          [40macted upon.[0m

        [40m+o The automatic portion of the process stops when development ends.[0m
          [40mThis ensures that a local reviewer validates the change before it is[0m
          [40mcommitted, preventing accidental or malicious damage.[0m

        [40m+o If the change seeks to update the project [4mconfig[24m file, the automatic[0m
          [40mprocess terminates before the build or difference occurs.  This is[0m
          [40mbecause this file could contain trojans for these operations, so a[0m
          [40mhuman must examine the file before the change proceeds any further.[0m

        [40m+o There is a [4mpotential_trojan_horse[24m [4m=[24m [4m[[24m [4mstring[24m [4m];[24m field in the[0m
          [40mproject[4mconfig[24m file.  Nominate build configuration files, shell[0m
          [40mscripts, code generators, [4metc[24m here to specify files in addition to[0m
          [40mthe project configuration file which should cause the automatic[0m
          [40mprocessing to halt.[0m

        [40m+o The use of e-mail authentication and encryption systems, such as PGP[0m
          [40mand GPG, are encouraged.  However, it is expected that this[0m
          [40mprocessing will occur after [4maerevml[24m [4m--send[24m has constructed the[0m
          [40mpackage and before [4maerevml[24m [4m--receive[24m examines and acts on the[0m
          [40mpackage.  Verification of the sender is the surest defense against[0m
          [40mtrojan horses.[0m

        [40m+o Automatic sending and receiving of packages is supported, but not[0m
          [40mimplemented within the aerevml command.  It is expected that the[0m
          [40maerevml command will be used within shell scripts customized for[0m
          [40myour site and its unique security requirements.  See the Aegis User[0m
          [40mGuide for several different ways to do this.[0m

        [40m+o The more you use Aegis' test management facilities (see [4maent[24m(1) and[0m
          [4m[40maet[24m(1)) the harder it is for an inadequate change to get into the[0m
          [40mbaseline.[0m

   [1m[40mDuplicate Storms[0m
        [40mIn a distributed development environment, it is common for change sets[0m
        [40mto eventually be propagated back to the originator.  There are[0m
        [40msituations (particularly in some star topologies) where several copies[0m
        [40mof the package will return to the originator.[0m

        [40mIf these change sets are not detected at the review stage, and are[0m
        [40mpropagated out yet again, there is the possibility of an exponential[0m
        [40mexplosion of redundant change sets being distributed again and again.[0m

        [40mTo combat this, changes are checked after the files are unpacked, but[0m
        [40mbefore and build or difference or test is performed.  The "[4maecpu[0m
        [4m[40m--unchanged[24m" command is used to exclude all files that the local[0m
        [40mrepository already has in the desired form.  If no change files remain[0m
        [40mafter this, the change is dropped entirely (see [4maedbu[24m(1) and[0m
        [4m[40maencu[24m(1)).[0m

[1m[40mLIST[0m
        [40mThe list variant can be used to list the contents of a package without[0m
        [40mactually unpacking it first.  The output is reminiscent of the [4maegis[0m
        [4m[40m-list[24m [4mchange-details[24m output.[0m

   [1m[40mOptions[0m
        [40mThe following options are understood by the list variant:[0m

        [1m[40m-File [4m[22mfilename[0m
                [40mRead the change set from the specified file.  The default is[0m
                [40mto read it from the standard input.  The filename `-' is[0m
                [40munderstood to mean the standard input.[0m

                [40mIf your system has [4mlibcurl[24m(3), and Aegis was configured to use[0m
                [40mit at compile time (this is the default if it is available)[0m
                [40myou will also be able to specify a Uniform Resource Locator[0m
                [40m(URL) in place of the file name.  The relevant data will be[0m
                [40mdownloaded.  (The [1m-Verbose [22moption will provide a progress[0m
                [40mbar.)[0m

        [1m[40m-Output [4m[22mfilename[0m
                [40mThis option may be used to specify the output file.  The[0m
                [40moutput is sent to the standard output by default.  Only useful[0m
                [40mwith the -List option.[0m

[1m[40mOPTIONS[0m
        [40mThe following options to this command haven't been mentioned yet:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maerevml[24m program.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maerevml[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maerevml[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maerevml[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maerevml version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aerevml program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maerevml[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maerevml[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Review_FAIL(1)                                    aegis -Review_FAIL(1)



[40m[1mNAME[0m
        [40maegis review fail - fail a change review[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Review_FAIL -File [4m[22mreason-file[24m [ [4moption[24m...  ][0m
        [1m[40maegis -Review_FAIL -REAson [4m[22m'reason-text'[24m [ [4moption[24m...  ][0m
        [1m[40maegis -Review_FAIL -Edit [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Review_FAIL -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Review_FAIL -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Review_FAIL[24m command is used to inform aegis that a change[0m
        [40mhas failed review.[0m

        [40mThe change will be returned from the [4mbeing[24m [4mreviewed[24m state to the [4mbeing[0m
        [4m[40mdeveloped[24m state.  The change will cease to be assigned to the current[0m
        [40muser, and will be reassigned to the originating developer.[0m
[40m[0m
                             [40mbeing[0m
                           [40mdeveloped[0m
                                [40m|[0m
                                [40m|develop[0m
                                [40m|end[0m

                            [40mawaitingreview[0m
                             [40mreview  fail[0m
                                [40m|[0m
                                [40m|review[0m
                                [40m|begin[0m

                             [40mbeing[0m
                            [40mreviewed[0m



        [40mThe developer will be notified by mail.  See the[0m
        [40mreview_fail_notify_command in [4maepattr[24m(5) for more information.[0m

        [40mThe [4mreason-file[24m will contain a description of why the change was[0m
        [40mfailed.  The file is in plain text.  It is recommended that you only[0m
        [40muse newline to terminate paragraphs, (rather than to terminate lines)[0m
        [40mas this will result in better formatting in the various listings.[0m

   [1m[40mNotification[0m
        [40mOn successful completion of this command, the [4mreview_fail_notify_-[0m
        [4m[40mcommand[24m field of the project attributes is run, if set.  See[0m
        [4m[40maepattr[24m(5) and [4maepa[24m(1) for more information.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Edit[0m
                [40mEdit the attributes with a text editor, this is usually more[0m
                [40mconvenient than supplying a text file.  The [4mVISUAL[24m and then[0m
                [4m[40mEDITOR[24m environment variables are consulted for the name of the[0m
                [40meditor to use; defaults to [4mvi[24m(1) if neither is set.  See the[0m
                [4m[40mvisual_command[24m and [4meditor_command[24m fields in [4maeuconf[24m(1) for how[0m
                [40mto override this specifically for Aegis.[0m

                [40mWarning: Aegis tries to be well behaved when faced with[0m
                [40merrors, so the temporary file is left in your home directory[0m
                [40mwhere you can edit it further and re-use it with a [1m-file[0m
                [40moption.[0m

                [40mThe [1m-edit [22moption may not be used in the background, or when[0m
                [40mthe standard input is not a terminal.[0m

        [1m[40m-Edit_BackGround[0m
                [40mEdit the attributes with a dumb text editor, this is most[0m
                [40moften desired when edit commands are being piped into the[0m
                [40meditor via the standard input.  Only the [1mEDITOR [22menvironment[0m
                [40mvariable is consulted for the name of the editor to use; it is[0m
                [40ma fatal error if it is not set.  See the [4meditor_command[24m field[0m
                [40min [4maeuconf[24m(1) for how to override this specifically for Aegis.[0m

        [1m[40m-File [4m[22mfilename[0m
                [40mTake the attributes from the specified file.  The filename `-'[0m
                [40mis understood to mean the standard input.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-REAson [4m[22mtext[0m
                [40mThis option may be used to provide the failure reason on the[0m
                [40mcommand line, rather than in a file.  You will need to use[0m
                [40mquotes to insulate the spaces from the shell.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aerfail 'aegis -rfail \!* -v'[0m
        [40msh$     aerfail(){aegis -rfail "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mbeing[24m [4mreviewed[24m state.[0m
        [40mIt is an error if the current user is not a reviewer for the project.[0m
        [40mIt is an error if the current user developed the change and the[0m
        [40mproject is configured to disallow developers to review their own[0m
        [40mchanges (default).[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maecd[24m(1) change directory[0m

        [4m[40maede[24m(1) complete development of a change[0m

        [4m[40maedeu[24m(1)[0m
                [40mrecall a change for further development[0m

        [4m[40maenrv[24m(1)[0m
                [40madd a reviewer to a project[0m

        [4m[40maerpass[24m(1)[0m
                [40mpass review of a change[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Remove_Integrator(1)                        aegis -Remove_Integrator(1)



[40m[1mNAME[0m
        [40maegis remove integrator - remove integrators from a project[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Remove_Integrator [4m[22muser-name[24m...  [ [4moption[24m...  ][0m
        [1m[40maegis -Remove_Integrator -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Remove_Integrator -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Remove_Integrator[24m command is used to remove integrators[0m
        [40mfrom a project.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Descend_Project_Tree[0m
                [40mThis option may be used to request that the command should be[0m
                [40mapplied to the project and all its branches and sub-branches.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aeri 'aegis -ri \!* -v'[0m
        [40msh$     aeri(){aegis -ri "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the current user is not an administrator of the[0m
        [40mproject.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maeni[24m(1) add a new administrator to a project[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -ReMove_file(1)                                    aegis -ReMove_file(1)



[40m[1mNAME[0m
        [40maegis remove file - add files to be deleted to a change[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -ReMove_file [4m[22mfile-name[24m...  [ [4moption[24m...  ][0m
        [1m[40maegis -ReMove_file -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -ReMove_file -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-ReMove_file[24m command is used to add files to be deleted to a[0m
        [40mchange.  The file will be added to the list of files in the change,[0m
        [40mand will be removed from the baseline at integration time.[0m

        [40mThis command may be used to remove tests, not just source files.[0m
        [40mTests are treated just like any other source file, and are subject to[0m
        [40mthe same process.[0m

        [40mA file will be created in the development directory containing 1KB of[0m
        [40mrandom text.  The random text is sufficiently revolting that most[0m
        [40mcompilers will give error messages, should the file be referenced[0m
        [40maccidentally.  This is often very helpful when removing include files.[0m

        [40mYou may specify a directory name to remove all files in the named[0m
        [40mdirectory tree.  It is an error if there are no relevant files.[0m

   [1m[40mFile Name Interpretation[0m
        [40mThe aegis program will attempt to determine the project file names[0m
        [40mfrom the file names given on the command line.  All file names are[0m
        [40mstored within aegis projects as relative to the root of the baseline[0m
        [40mdirectory tree.  The development directory and the integration[0m
        [40mdirectory are shadows of this baseline directory, and so these[0m
        [40mrelative names apply here, too.  Files named on the command line are[0m
        [40mfirst converted to absolute paths if necessary.  They are then[0m
        [40mcompared with the baseline path, the development directory path, and[0m
        [40mthe integration directory path, to determine a baseline-relative name.[0m
        [40mIt is an error if the file named is outside one of these directory[0m
        [40mtrees.[0m

        [40mThe [1m-BAse_RElative [22moption may be used to cause relative filenames to[0m
        [40mbe interpreted as relative to the baseline path; absolute filenames[0m
        [40mwill still be compared with the various paths in order to determine a[0m
        [40mbaseline-relative name.[0m

        [40mThe [4mrelative_filename_preference[24m in the user configuration file may be[0m
        [40mused to modify this default behavior.  See [4maeuconf[24m(5) for more[0m
        [40minformation.[0m

   [1m[40mProcess Side Effects[0m
        [40mThis command will cancel any build or test registrations, because[0m
        [40madding a file logically invalidates them.[0m

        [40mWhen the change files are listed ([4maegis[24m [4m-List[24m [4mChange_Files[24m [4m-TERse[24m) the[0m
        [40mremoved files will not appear in the terse listing.  Similarly, when[0m
        [40mthe project files are listed with an explicit change number ([4maegis[0m
        [4m[40m-List[24m [4mProject_Files[24m [4m-TERse[24m [4m-Change[24m N) none of the change's files,[0m
        [40mincluding the the removed files, will not appear in the terse listing.[0m
        [40mThese two features are very helpful when calling aegis from within a[0m
        [40mDMT to generate the list of source files.[0m

   [1m[40mChanging the Type of a File[0m
        [40mIf you want to change the type of a file (say, from a test to a source[0m
        [40mfile, or [4mvice[24m [4mversa[24m) you could do it as two changes, by first using[0m
        [4m[40maerm[24m(1) in one change and then using [4maenf[24m(1) or [4maent[24m(1) in a second[0m
        [40mchange, or you can combine both steps in the same change.  Remember to[0m
        [40muse the [4maerm[24m [4m-nowhiteout[24m option or you will get a most peculiar new[0m
        [40mfile template.[0m

   [1m[40mNotification[0m
        [40mThe [4mremove_file_command[24m in the project [4mconfig[24m file is run, if set.[0m
        [40mThe [4mproject_file_command[24m is also run, if set, and if there has been an[0m
        [40mintegration recently.  See [4maepconf[24m(5) for more information.[0m

[1m[40mWHITEOUT[0m
        [40mAegis provides you with what is often called a "view path" which[0m
        [40mindicates to development tools (compilers, build systems, [4metc[24m) look[0m
        [40mfirst in the development directory, then in the branch baseline, and[0m
        [40mso on up to the trunk baseline.[0m

        [40mThe problem with view paths is that in order to remove files, you need[0m
        [40msome kind of "whiteout" to say "stop looking, it's been removed."[0m

        [40mWhen you user the [4maerm[24m(1) or [4maemv[24m(1) commands, this means "add[0m
        [40minformation to this change which will remove the file from the[0m
        [40mbaseline when this change is integrated".  [4mI.e.[24m while the change is in[0m
        [40mthe [4mbeing[24m [4mdeveloped[24m state, the file is only "removed" in the[0m
        [40mdevelopment directory - it's still present in the baseline, and will[0m
        [40mbe until the change is successfully integrated.[0m

        [40mWhen you use the [4maerm[24m(1) or [4maemv[24m(1) commands, Aegis will create a 1K[0m
        [40mfile to act as the whiteout.  It's contents are rather ugly so that if[0m
        [40myou compile or include the "removed" file accidentally, you get a[0m
        [40mfatal error.  This will remind you to remove obsolete references.[0m

        [40mWhen the change in integrated, the removed file is [4mnot[24m copied/linked[0m
        [40mfrom the baseline to the integration directory, and is [4mnot[24m copied from[0m
        [40mthe development directory.  At this time it is physically gone (no[0m
        [40mwhiteout).  It is assumed that because of the error inducing whiteout[0m
        [40mall old references were found and fixed while the change was in the[0m
        [4m[40mbeing[24m [4mdeveloped[24m state.[0m

   [1m[40mFile Manifests[0m
        [40mWhen generating list of files to be compiled or linked, it is[0m
        [40mimportant that the file manifest be generated from information known[0m
        [40mby Aegis, rather than from the file system.  This is for several[0m
        [40mreasons:[0m

        [40m(a) Aegis knows exactly what (source) files are where, whereas[0m
            [40meverything else is inferring Aegis' knowledge; and[0m

        [40m(b) looking in the file system is hard when the view path is longer[0m
            [40mthat 2 directories (and Aegis' branching method can make it[0m
            [40marbitrarily long); and[0m

        [40m(c) The whiteout files, and anything else left "lying around", will[0m
            [40mconfuse any method which interrogates the file system.[0m

        [40mThe easiest way to use Aegis' file knowledge is with something like an[0m
        [4m[40mawk[24m(1) script processing the Aegis file lists.  For example, you can[0m
        [40mdo this with [4mmake[24m(1) as follows:[0m
                [40m# generate the file manifest[0m
                [40mmanifest.make.inc: manifest.make.awk[0m
                     [40m( aegis -l cf -ter ; aegis -l pf -ter ) | \[0m
                     [40mawk -f manifest.make.awk > manifest.make.inc[0m
                [40m# now include the file manifest[0m
                [40minclude manifest.make.inc[0m
        [40mNote: this would be inefficient of you did it once per directory, but[0m
        [40mthere is nothing stopping you writing numerous assignments into the[0m
        [4m[40mmanifest.make.inc[24m file, all in one pass.[0m

        [40mIt is possible to do the same thing with Aegis' report generator (see[0m
        [4m[40maer[24m(1) for more information), but this is more involved than the[0m
        [4m[40mawk[24m(1) script.  However, with the information "straight from the[0m
        [40mhorse's mouth" as it were, it can also be much smarter.[0m

        [40mThis file manifest would become out-of-date without an interlock to[0m
        [40mAegis' file operations commands.  By using the [4mproject-file_command[0m
        [40mand [4mchange_file_command[24m fields of the project [4mconfig[24m file (see[0m
        [4m[40maepconf[24m(5) for more information), you can delete this file at[0m
        [40mstrategic times.[0m
                [40m/* run when the change file manifest is altered */[0m
                [40mchange_file_command = "rm -f manifest.make.inc";[0m
                [40m/* run when the project file manifest is altered */[0m
                [40mproject_file_command = "rm -f manifest.make.inc";[0m
        [40mThe new file manifest will thus be re-built during the next [4maeb[24m(1)[0m
        [40mcommand.[0m

   [1m[40mOptions and Preferences[0m
        [40mThere is a [1m-No-WhiteOut [22moption, which may be used to suppress whiteout[0m
        [40mfiles when you use the [4maerm[24m(1) and [4maemv[24m(1) commands.  There is a[0m
        [40mcorresponding [1m-WhiteOut [22moption, which is usually the default.[0m

        [40mThere is a [4mwhiteout_preference[24m field in the user preferences file (see[0m
        [4m[40maeuconf[24m(5) for more information) if you want to set this option more[0m
        [40mpermanently.[0m

   [1m[40mWhiteout File Templates[0m
        [40mThe [4mwhiteout_template[24m field of the project [4mconfig[24m file may be used to[0m
        [40mproduce language-specific error files.  If no whiteout template entry[0m
        [40mmatches, a very ugly 1KB file will be produced - it should induce[0m
        [40mcompiler errors for just about any language.[0m

        [40mIf you want a more human-readable error message, entries such as[0m
                [40mwhiteout_template =[0m
                [40m[[0m
                     [40m{[0m
                     [40mpattern = [ "*.[ch]" ];[0m
                     [40mbody = "#error This file has been removed.";[0m
                     [40m}[0m
                [40m];[0m
        [40mcan be very effective (this example assumes [4mgcc[24m(1) is being used).[0m

        [40mIf it is essential that [4mno[24m whiteout file be produced, say for C source[0m
        [40mfiles, you could use a whiteout template such as[0m
                [40mwhiteout_template =[0m
                [40m[[0m
                     [40m{ pattern = [ "*.c" ]; }[0m
                [40m];[0m
        [40mbecause an absent [4mbody[24m sub-field means generate no whiteout file at[0m
        [40mall.[0m

        [40mYou may have more than one whiteout template entry, but note that the[0m
        [40morder of the entries is important.  The first entry which matches will[0m
        [40mbe used.[0m

   [1m[40mFile Action Adjustment[0m
        [40mWhen this command runs, it first checks the change files against the[0m
        [40mprojects files.  If there are inconsistencies, the file actions will[0m
        [40mbe adjusted as follows:[0m

        [40mcreate  If a file is being created, but another change set is[0m
                [40mintegrated which also creates the file, the file action in the[0m
                [40mchange set still being developed will be adjusted to "modify".[0m

        [40mmodify  If a file is being modified, but another change set is[0m
                [40mintegrated which removes the file, the file action in the[0m
                [40mchange set still being developed will be adjusted to "create".[0m

        [40mremove  If a file is being removed, but another change set is[0m
                [40mintegrated which removes the file, the file will be dropped[0m
                [40mfrom the change set still being developed.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-BAse_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the base of the source tree.  See[0m
                [4m[40maeuconf[24m(5) for the corresponding user preference.[0m

        [1m[40m-CUrrent_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the current directory.  This is usually[0m
                [40mthe default.  See [4maeuconf[24m(5) for the corresponding user[0m
                [40mpreference.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Not_Logging[0m
                [40mThis option may be used to disable the automatic logging of[0m
                [40moutput and errors to a file.  This is often useful when[0m
                [40mseveral aegis commands are combined in a shell script.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-WhiteOut[0m
                [40mThis option may be used to request that deleted files be[0m
                [40mreplaced by a "whiteout" file in the development directory.[0m
                [40mThe idea is that compiling such a file will result in a fatal[0m
                [40merror, in order that all references may be found.  This is[0m
                [40musually the default.[0m

        [1m[40m-No_WhiteOut[0m
                [40mThis option may be used to request that no "whiteout" file be[0m
                [40mplaced in the development directory.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aerm 'aegis -rm \!* -v'[0m
        [40msh$     aerm(){aegis -rm "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mbeing[24m [4mdeveloped[24m state.[0m
        [40mIt is an error if the change is not assigned to the current user.[0m
        [40mIt is an error if the file does not exist in the baseline.[0m
        [40mIt is an error if the file is already part of the change.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maecp[24m(1) copy files into a change[0m

        [4m[40maedb[24m(1) begin development of a change[0m

        [4m[40maemv[24m(1) rename a file as part of a change[0m

        [4m[40maenf[24m(1) add files to be created to a change[0m

        [4m[40maermu[24m(1)[0m
                [40mremove files to be deleted from a change[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -ReMove_PRoject(1)                              aegis -ReMove_PRoject(1)



[40m[1mNAME[0m
        [40maegis remove project - remove project[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -ReMove_Project [4m[22mproject-name[24m [ [4moption[24m...  ][0m
        [1m[40maegis -ReMove_Project -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -ReMove_Project -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-ReMove_PRoject[24m command is used to remove a project, either[0m
        [40mentirely, or just from aegis' supervision.[0m

        [40mProject aliases to the removed project are also removed.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-Interactive[0m
                [40mSpecify that aegis should ask the user for confirmation before[0m
                [40mdeleting each file.  Answer the question [4myes[24m to delete the[0m
                [40mfile, or [4mno[24m to keep the file.  You can also answer [4mall[24m to[0m
                [40mdelete the file and all that follow, or [4mnone[24m to keep the file[0m
                [40mand all that follow.[0m

                [40mDefaults to the user's [4mdelete_file_preference[24m if not[0m
                [40mspecified, see [4maeuconf[24m(5) for more information.[0m

                [40mIf aegis is running in the background, the question will not[0m
                [40mbe asked, and the files will be deleted.[0m

        [1m[40m-Keep[0m
                [40mThis option may be used to retain files and/or directories[0m
                [40musually deleted or replaced by the command.  Defaults to the[0m
                [40muser's [4mdelete_file_preference[24m if not specified, see [4maeuconf[24m(5)[0m
                [40mfor more information.[0m

        [1m[40m-No_Keep[0m
                [40mThis option may be used to ensure that the files and/or[0m
                [40mdirectories are deleted or replaced by the command.  Defaults[0m
                [40mto the user's [4mdelete_file_preference[24m if not specified, see[0m
                [4m[40maeuconf[24m(5) for more information.[0m

        [1m[40m-LIBrary [4m[22mabspath[0m
                [40mThis option may be used to specify a directory to be searched[0m
                [40mfor global state files and user state files.  (See [4maegstate[24m(5)[0m
                [40mand [4maeustate[24m(5) for more information.)  Several library[0m
                [40moptions may be present on the command line, and are search in[0m
                [40mthe order given.  Appended to this explicit search path are[0m
                [40mthe directories specified by the [4mAEGIS_PATH[24m environment[0m
                [40mvariable (colon separated), and finally, [4m/usr/local/lib/aegis[0m
                [40mis always searched.  All paths specified, either on the[0m
                [40mcommand line or in the [4mAEGIS_PATH[24m environment variable, must[0m
                [40mbe absolute.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aermpr 'aegis -rmpr \!* -v'[0m
        [40msh$     aermpr(){aegis -rmpr "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the project has any changes between the [4mbeing[0m
        [4m[40mdeveloped[24m and [4mbeing[24m [4mintegrated[24m states, inclusive.[0m
        [40mIt is an error if the current user is not an administrator.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maenpr[24m(1)[0m
                [40mcreate a new project[0m

        [4m[40maenrls[24m(1)[0m
                [40mcreate a new project from an existing project[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -ReMove_file_Undo(1)                          aegis -ReMove_file_Undo(1)



[40m[1mNAME[0m
        [40maegis remove file undo - remove files to be deleted from a change[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -ReMove_file_Undo [4m[22mfile-name[24m...  [ [4moption[24m...  ][0m
        [1m[40maegis -ReMove_file_Undo -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -ReMove_file_Undo -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-ReMove_file_Undo[24m command is used to remove files to be[0m
        [40mdeleted from a change.  The files is removed from the list of files in[0m
        [40mthe change.[0m

        [40mYou may specify a directory name to delete from the change all files[0m
        [40mbeing removed in the named directory tree, other files in the tree[0m
        [40mwill be ignored.  It is an error if there are no relevant files.[0m

   [1m[40mFile Name Interpretation[0m
        [40mThe aegis program will attempt to determine the project file names[0m
        [40mfrom the file names given on the command line.  All file names are[0m
        [40mstored within aegis projects as relative to the root of the baseline[0m
        [40mdirectory tree.  The development directory and the integration[0m
        [40mdirectory are shadows of this baseline directory, and so these[0m
        [40mrelative names apply here, too.  Files named on the command line are[0m
        [40mfirst converted to absolute paths if necessary.  They are then[0m
        [40mcompared with the baseline path, the development directory path, and[0m
        [40mthe integration directory path, to determine a baseline-relative name.[0m
        [40mIt is an error if the file named is outside one of these directory[0m
        [40mtrees.[0m

        [40mThe [1m-BAse_RElative [22moption may be used to cause relative filenames to[0m
        [40mbe interpreted as relative to the baseline path; absolute filenames[0m
        [40mwill still be compared with the various paths in order to determine a[0m
        [40mbaseline-relative name.[0m

        [40mThe [4mrelative_filename_preference[24m in the user configuration file may be[0m
        [40mused to modify this default behavior.  See [4maeuconf[24m(5) for more[0m
        [40minformation.[0m

   [1m[40mNotification[0m
        [40mThe [4mremove_file_undo_command[24m in the project [4mconfig[24m file is run, if[0m
        [40mset.  The [4mproject_file_command[24m is also run, if set, and if there has[0m
        [40mbeen an integration recently.  See [4maepconf[24m(5) for more information.[0m

   [1m[40mProcess Side Effects[0m
        [40mThis command will cancel any build or test registrations, because[0m
        [40mdeleting a file logically invalidates them.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-BAse_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the base of the source tree.  See[0m
                [4m[40maeuconf[24m(5) for the corresponding user preference.[0m

        [1m[40m-CUrrent_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the current directory.  This is usually[0m
                [40mthe default.  See [4maeuconf[24m(5) for the corresponding user[0m
                [40mpreference.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Verify_Symbolic_Links[0m
                [40mThis option may be used to request that the symbolic links, or[0m
                [40mhard links, or file copies, in the work area be updated to[0m
                [40mreflect the current state of the baseline.  This is controlled[0m
                [40mby the [4mdevelopment_directory_style[24m field of the project[0m
                [40mconfiguration file.  Only files which are not involved in the[0m
                [40mchange are updated.  See also the "symbolic_links_preference"[0m
                [40mfield of [4maeuconf[24m(5).  This option is the default, if[0m
                [40mmeaningful for your configuration.  The name is an historical[0m
                [40maccident, hard links and file copies are included.[0m

        [1m[40m-Assume_Symbolic_Links[0m
                [40mThis option may be used to request that no update of baseline[0m
                [40mmirror files take place.  This options is useful when you[0m
                [4m[40mdefinitely[24m [4mknow[24m the files' up-to-date-ness isn't important[0m
                [40mright now; incorrect use of this option may have unanticipated[0m
                [40mbuild side-effects.  See also the "symbolic_links_preference"[0m
                [40mfield of [4maeuconf[24m(5).  This option is the default, if not[0m
                [40mmeaningful for your configuration.  The name is an historical[0m
                [40maccident, hard links and file copies are included.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aermu 'aegis -rmu \!* -v'[0m
        [40msh$     aermu(){aegis -rmu "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mbeing[24m [4mdeveloped[24m state.[0m
        [40mIt is an error if the change is not assigned to the current user.[0m
        [40mIt is an error if the file is not in the change.[0m
        [40mIt is an error if the was not added to the change using the [4maegis[0m
        [4m[40m-ReMove_file[24m command.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maerm[24m(1) add files to be deleted to a change[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Remove_Project_Alias(1)                  aegis -Remove_Project_Alias(1)



[40m[1mNAME[0m
        [40maegis remove project alias - remove a project alias[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Remove_Project_Alias [22m[ [4moption[24m...  ] [4mproject-alias[0m
        [1m[40maegis -Help[0m
        [1m[40maegis -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Remove_Project_Alias[24m command is used to remove a project[0m
        [40malias.[0m

        [40mThe project alias [4mmust[24m be given on the command line, the default[0m
        [40mproject is not sufficient.[0m

   [1m[40mExample[0m
        [40mAliases may be used in may ways.  The most common is to give a[0m
        [40mparticular release a code name.  You would do this by saying[0m
                [40maenpa example.4.2 sydney[0m
        [40mThis would make "sydney" an alias for the "example.4.2" branch.[0m

        [40mAnother use for aliases is to have a fixed alias for your active[0m
        [40mbranch, so that your developer team does not need to change their[0m
        [40mdefault project, even though the branch number moves on for each[0m
        [40mrelease.  You could say[0m
                [40maenpa example.4.2 example.cur[0m
        [40mThis would make "example.cur" an alias for the "example.4.2" branch.[0m
        [40mWhen this was finished, and 4.3 started, a project administrator could[0m
        [40msay[0m
                [40maerpa example.cur[0m
                [40maenpa example.4.3 example.cur[0m
        [40mNow "example.cur" is an alias for the "example.4.3" branch, but the[0m
        [40mdevelopers need only reference "example.cur" to always work on the[0m
        [40mright branch.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mERRORS[0m
        [40mIt is an error if the current user is not a project administrator.[0m
        [40mIt is an error if the given name is not a project alias.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maenpa[24m(1)[0m
                [40mCreate a new project alias.[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Review_PASS(1)                                    aegis -Review_PASS(1)



[40m[1mNAME[0m
        [40maegis review pass - pass a change review[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Review_PASS [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Review_PASS -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Review_PASS -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Review_PASS[24m command is used to notify aegis that a change[0m
        [40mhas passed review.[0m

        [40mThe default configuration requires only a single reviewer for each[0m
        [40mchange set.  It is possible to have more than one reviewer, and/or[0m
        [40mproject specific policies about who may review certain files, by[0m
        [40mconfiguring Aegis to use an external review policy command.[0m

        [40mThe state transition performed depends on the settings of the review_-[0m
        [40mpolicy_command field of the project configuration file and the[0m
        [40mdevelop_end_action field of the project attributes.[0m

        [40mreview_policy_command not set:[0m
            [40mThe change will be advanced from the [4mbeing[24m [4mreviewed[24m state to the[0m
            [4m[40mawaiting[24m [4mintegration[24m state.[0m

        [40mreview_policy_command set:[0m
            [40mThe command will be executed, and the exit status examined.[0m

            [40mZero:[0m
                [40mThe change will be advanced from the [4mbeing[24m [4mreviewed[24m state to[0m
                [40mthe [4mawaiting[24m [4mintegration[24m state.[0m

            [40mNon-Zero:[0m
                    [40mThe setting of the develop_end_action of the project[0m
                    [40mattributes is examined:[0m

                    [40mgoto_awaiting_review:[0m
                        [40mThe change will be advanced from the [4mbeing[24m [4mreviewed[0m
                        [40mstate to the [4mawaiting[24m [4mintegration[24m state.[0m

                    [40mOtherwise:[0m
                        [40mThe change will remain in the [4mbeing[24m [4mreviewed[24m state.[0m
                        [40mIt is expected that a future review_policy_command[0m
                        [40mexecution will satisfy the project criteria and exit[0m
                        [40mzero.[0m
[40m[0m
                                              [40mawaiting[0m
                                               [40mreview[0m

                                                     [40mreview[0m
                                                       [40mpass[0m

            [40mbeing          being review        being[0m
           [40mreviewed       reviewed pass       reviewed[0m
               [40m|[0m
               [40m|review[0m
               [40m|pass[0m

           [40mawaiting[0m
          [40mintegration[0m



        [40mIt is possible to avoid the [4mbeing[24m [4mreviewed[24m state altogether by setting[0m
        [40mthe [4mdevelop_end_action[24m field of the project confituration file to[0m
        [4m[40mgoto_awaiting_integration[24m.[0m

        [40mIf the project configuration file has specified the presence of[0m
        [40mSigned-off-by: lines, a suitable line containing the current user's[0m
        [40memail address will be appended to the change description.[0m

        [40mIf you use one of the -File, -Edit or -Reason options to add comments,[0m
        [40mthe file is to be in plain text, and it is recommended that you only[0m
        [40muse a newline to terminate paragraphs (rather than to terminate lines)[0m
        [40mas this will result in better formatting in the various listings.[0m

   [1m[40mNotification[0m
        [40mOn successful completion of this command, the [4mreview_pass_notify_-[0m
        [4m[40mcommand[24m field of the project attributes is run, if set.  See[0m
        [4m[40maepattr[24m(5) and [4maepa[24m(1) for more information.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Edit[0m
                [40mEdit the attributes with a text editor, this is usually more[0m
                [40mconvenient than supplying a text file.  The [4mVISUAL[24m and then[0m
                [4m[40mEDITOR[24m environment variables are consulted for the name of the[0m
                [40meditor to use; defaults to [4mvi[24m(1) if neither is set.  See the[0m
                [4m[40mvisual_command[24m and [4meditor_command[24m fields in [4maeuconf[24m(1) for how[0m
                [40mto override this specifically for Aegis.[0m

                [40mWarning: Aegis tries to be well behaved when faced with[0m
                [40merrors, so the temporary file is left in your home directory[0m
                [40mwhere you can edit it further and re-use it with a [1m-file[0m
                [40moption.[0m

                [40mThe [1m-edit [22moption may not be used in the background, or when[0m
                [40mthe standard input is not a terminal.[0m

        [1m[40m-Edit_BackGround[0m
                [40mEdit the attributes with a dumb text editor, this is most[0m
                [40moften desired when edit commands are being piped into the[0m
                [40meditor via the standard input.  Only the [1mEDITOR [22menvironment[0m
                [40mvariable is consulted for the name of the editor to use; it is[0m
                [40ma fatal error if it is not set.  See the [4meditor_command[24m field[0m
                [40min [4maeuconf[24m(1) for how to override this specifically for Aegis.[0m

        [1m[40m-File [4m[22mfilename[0m
                [40mTake the attributes from the specified file.  The filename `-'[0m
                [40mis understood to mean the standard input.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-REAson [4m[22mtext[0m
                [40mThis option may be used to attach a comment to the change[0m
                [40mhistory generated by this command.  You will need to use[0m
                [40mquotes to insulate the spaces from the shell.[0m

        [1m[40m-Signed_Off_By[0m
                [40mThis option may be used to have a Signed-off-by: line appended[0m
                [40mto the change set description.[0m

        [1m[40m-No_Signed_Off_By[0m
                [40mThis option may be used to prevent a Signed-off-by: line from[0m
                [40mbeing appended to the change set description.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aerpass 'aegis -rpass \!* -v'[0m
        [40msh$     aerpass(){aegis -rpass "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mbeing[24m [4mreviewed[24m state.[0m
        [40mIt is an error if the current user is not a reviewer of the project.[0m
        [40mIts is an error if the current user developed the change and the[0m
        [40mproject is configured to disallow developers to review their own[0m
        [40mchanges (default).[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maecd[24m(1) change directory[0m

        [4m[40maede[24m(1) complete development of a change[0m

        [4m[40maedeu[24m(1)[0m
                [40mrecall a change for further development[0m

        [4m[40maeib[24m(1) begin integrating a change[0m

        [4m[40maenrv[24m(1)[0m
                [40madd a reviewer to a project[0m

        [4m[40maerfail[24m(1)[0m
                [40mfail review of a change[0m

        [4m[40maerpu[24m(1)[0m
                [40mrescind a change review pass[0m

        [4m[40maepconf[24m(5)[0m
                [40mproject configuration file format[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Review_Pass_Undo(1)                          aegis -Review_Pass_Undo(1)



[40m[1mNAME[0m
        [40maegis review pass undo - rescind a change review pass[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Review_Pass_Undo [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Review_Pass_Undo -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Review_Pass_Undo -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Review_Pass_Undo[24m command is used to notify aegis that a[0m
        [40mchange review pass has been rescinded.[0m

        [40mThe change will be moved from the [4mawaiting[24m [4mintegration[24m state to the[0m
        [4m[40mbeing[24m [4mreviewed[24m state.[0m
[40m[0m
                             [40mbeing[0m
                            [40mreviewed[0m
                                [40m|[0m
                                [40m|revrieevwiew[0m
                                [40m|passpass[0m
                                     [40mundo[0m
                            [40mawaiting[0m
                           [40mintegration[0m



   [1m[40mNotification[0m
        [40mOn successful completion of this command, the [4mreview_pass_undo_-[0m
        [4m[40mnotify_command[24m field of the project attributes is run, if set.  See[0m
        [4m[40maepattr[24m(5) and [4maepa[24m(1) for more information.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-REAson [4m[22mtext[0m
                [40mThis option may be used to attach a comment to the change[0m
                [40mhistory generated by this command.  You will need to use[0m
                [40mquotes to insulate the spaces from the shell.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aerpu 'aegis -rp \!* -v'[0m
        [40msh$     aerpu(){aegis -rp "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in the [4mawaiting[24m [4mintegration[24m state.[0m
        [40mIt is an error if the current user is not the reviewer of the change.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maerpass[24m(1)[0m
                [40mpass review of a change[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Remove_ReViewer(1)                            aegis -Remove_ReViewer(1)



[40m[1mNAME[0m
        [40maegis remove reviewer - remove reviewers from a project[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Remove_ReViewer [4m[22muser-name[24m...  [ [4moption[24m...  ][0m
        [1m[40maegis -Remove_ReViewer -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Remove_ReViewer -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Remove_ReViewer[24m command is used to remove reviewers from a[0m
        [40mproject.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Descend_Project_Tree[0m
                [40mThis option may be used to request that the command should be[0m
                [40mapplied to the project and all its branches and sub-branches.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aerrv 'aegis -rrv \!* -v'[0m
        [40msh$     aerrv(){aegis -rrv "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the current user is not an administrator of the[0m
        [40mproject.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maenrv[24m(1)[0m
                [40madd a new reviewer to a project[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aesub(1)                                                              aesub(1)



[40m[1mNAME[0m
        [40maesub - substitute and echo strings[0m

[1m[40mSYNOPSIS[0m
        [1m[40maesub [22m[ [4moption[24m...  ] string ...[0m
        [1m[40maesub -Help[0m
        [1m[40maesub -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maesub[24m command is used to perform the usual [4maesub[24m(5) substitutions[0m
        [40mon its command line arguments, and then echo them to the standard[0m
        [40moutput.[0m

   [1m[40mShell Script Quoting[0m
        [40mThe [4maesub[24m(1) command is often used in shell scripts.  It is important[0m
        [40mto remember that the shell will do its own substitutions on the[0m
        [40mcommand line argument [4mbefore[24m it invokes the [4maesub[24m(1) command.[0m
        [40mUsually, you don't want this to happen, so you need to use [4msingle[24m (')[0m
        [40mquotes to do this.  (The shell continues to substitute inside double[0m
        [40m(") quotes.)[0m

        [40mQuote [4maesub[24m(1) arguments using ' [4msingle[24m ' quotes.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-BaseLine[0m
                [40mThis option may be used to specify that the project baseline[0m
                [40mis the subject of the command.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-File [4m[22mfilename[0m
                [40mTake the text to be substituted from the specified file.  The[0m
                [40mfilename `-' is understood to mean the standard input.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maesub[24m program.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maesub[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maesub[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maesub[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [1m[40maesub[22m(5)[0m
                [40mAvailable string substitutions.[0m

[1m[40mCOPYRIGHT[0m
        [40maesub version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aesub program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maesub[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maesub[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aesubunit(1)                                                      aesubunit(1)



[40m[1mNAME[0m
        [40maesubunit - run SubUnit tests[0m

[1m[40mSYNOPSIS[0m
        [1m[40maesubunit [22m[ [4moption[24m...  ] [4mfilename[24m...[0m
        [1m[40maesubunit -Help[0m
        [1m[40maesubunit -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [1maesubunit [22mcommand is used to invoke tests via the http://-[0m
        [40mwww.robertcollins.net/unittest/subunit unit testing interface.[0m

        [40mThe shape of the external unittest should not need to be known a-[0m
        [40mpriori.  After the test has run, tests should still exist as discrete[0m
        [40mobjects, so that anything taking a reference to them doesn't get 50[0m
        [40mcopies of the same object.[0m

        [40mThe [4maesubunit[24m command may be used to replace the [4mtest_command[24m or[0m
        [4m[40mbatch_test_command[24m fields of the project configuration file.[0m

   [1m[40mControl Protocol[0m
        [40mThe results of the test are obtained by examining the standard output[0m
        [40mof the tests as they run.  The text is meant to be human readable, so[0m
        [40mthat tests may run stand-alone.[0m

        [40mTests should ideally print a header of the form[0m
                [40mtest[0m
                [40mtesting[0m
                [40mtest: [4mtest[24m [4mlabel[0m
                [40mtesting: [4mtest[24m [4mlabel[0m
        [40mA successful test will produce lines of the form[0m
                [40msuccess[0m
                [40msuccess:[0m
                [40msuccessful [4mtest[24m [4mlabel[0m
                [40msuccessful: [4mtest[24m [4mlabel[0m
        [40mA test failure will produce text of the form[0m
                [40mfailure [4mtest[24m [4mlabel[24m failure: [4mtest[24m [4mlabel[24m failure [4mtest[24m [4mlabel[24m [ ][0m
                [40mfailure: [4mtest[24m [4mlabel[24m [ ][0m
        [40mThe square brackets indicate text which may describe the test in more[0m
        [40mdetail.  It will be printed on the standartd output by the [4maesubunit[0m
        [40mprogram.[0m

        [40mA test which produces no result (neither succes nor failure) uses the[0m
        [40mfollowing forms[0m
                [40merror: [4mtest[24m [4mlabel[24m error: [4mtest[24m [4mlabel[24m [ ][0m
        [40mIn general, unexpected output from the test will be sent through to[0m
        [40mthe [4maesubunit[24m standard output.[0m

        [40mIf a subunit test terminates with an exit status other than zero, this[0m
        [40mis taken to be a no result indication for that test.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Batch  [22mThis option may be useed to specify that a batch test should[0m
                [40mbe performed, and produce results in the appropriate form.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maesubunit[24m program.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maesubunit[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maesubunit[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maesubunit[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maesubunit version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aesubunit program comes with ABSOLUTELY NO WARRANTY; for details[0m
        [40muse the '[4maesubunit[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software[0m
        [40mand you are welcome to redistribute it under certain conditions; for[0m
        [40mdetails use the '[4maesubunit[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aesvt(1)                                                              aesvt(1)



[40m[1mNAME[0m
        [40maesvt - simple version tool[0m

[1m[40mSYNOPSIS[0m
        [1m[40maesvt -CHeck_Out -HIstory [4m[22mfile[24m [1m-File [4m[22moutput-file[24m [ [1m-e [4m[22medit[24m ][0m
        [1m[40maesvt -CHeck_In -HIstory [4m[22mfile[24m [1m-File [4m[22minput-file[24m [ [1m-e [4m[22medit[24m ] [[0m
        [4m[40mname[24m[1m=[4m[22mvalue[24m ...][0m
        [1m[40maesvt -List -HIstory [4m[22mfile[0m
        [1m[40maesvt -Query -HIstory [4m[22mfile[0m
        [1m[40maesvt -Version[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maesvt[24m program may be used to manage history version files.  This[0m
        [40mis a minimalist history tool, which makes no provision for managing a[0m
        [40mwork area.[0m

        [40mIt is able to cope with binary files, and with reasonable efficiently[0m
        [40mif they are not too large.[0m

        [40mIt has good end-to-end properties because it keeps a checksum for each[0m
        [40mfile version, and a checksum for the whole history file.[0m

        [40mThere is no provision for keyword substitution of any kind.  A check-[0m
        [40mout will exactly reproduce the input file.  A check-in will never[0m
        [40malter the input file.[0m


[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-History [4m[22mhistory-file[0m
                [40mThis option is used to specify the name of the history file.[0m

        [1m[40m-File [4m[22mfile-name[0m
                [40mThis option is used to specify the name of the input or output[0m
                [40mfile.  On check-out, the file name "-" is understood to mean[0m
                [40mthe standard output.  There is [1mno [22mequivalent for check-in.[0m

        [1m[40m-Edit [4m[22medit-number[0m
                [40mThis option is used to specify the edit number (version[0m
                [40mnumber).  On check-out, if no version number is specified, the[0m
                [40mmost recent version is given.  On check-in, if no version[0m
                [40mnumber is specifiued (and it usually isn't), the previous[0m
                [40mversion will have one added to it, or version 1 will be used[0m
                [40mif this is the first check-in.[0m

        [1m[40m-CHeck_In[0m
                [40mThis option is used to check a file into the history.[0m

        [1m[40m-CHeck_Out[0m
                [40mThis option is used to check-out a file from the history.[0m

        [1m[40m-compression-algorithm [4m[22mname[0m
                [40mThis option may be used to specify the compression to be used.[0m
                [40mThey are listed on order of compression effeciency.[0m

                [40mnone    Use no compression (not always meaningful for all[0m
                        [40mcommands).[0m

                [40mgzip    Use the compression used by the [4mgzip[24m(1) program.[0m

                [40mbzip2   Use the compression used by the [4mbzip2[24m(1) program.[0m

                [40mMore compression algorithms may be added in the future.[0m

        [1m[40m-COMPress[0m
                [40mThis option is deprecated in favour of the [1m-comp-alg=gzip [22mor[0m
                [1m[40m-comp-alg=bzip2 [22moptions.[0m

        [1m[40m-No_COMPress[0m
                [40mThis options is deprecated in favour of the [1m-comp-alg=none[0m
                [40moption.[0m

        [1m[40m-List   [22mThis option is used to list the file's history.[0m

        [1m[40m-Query  [22mThis option is used to query edit number of most recent check-[0m
                [40min.[0m

        [1m[40m-Version[0m
                [40mThis option is used to print version number.[0m

        [40mAll other options will produce a diagnostic error.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maesvt[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maesvt[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maesvt[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mFILE FORMAT[0m
        [40mEach version in the history file consists of an RFC822 header, plus[0m
        [40mthe file contents.  The header includes (at least) the Content-Length,[0m
        [40mused to remember the length of the file data in bytes; the Checksum,[0m
        [40mused to remember the Adler32 checksum of the file data; and Version,[0m
        [40mused to remember the version number.  The file data can be text or[0m
        [40mbinary, because its length is determined by the header.  There is no[0m
        [40mquoting mechanism of any kind for the data.  Except for the mandatory[0m
        [40mfields, additional user-defined us-ascii meta-data may also be stored[0m
        [40min the header.  There is no diff or delta of any kind for any version.[0m

        [40mThis combination of header and data has good end-to-end behaviour,[0m
        [40mbecause there is a checksum to validate the file data against.  Bad[0m
        [40mblocks in the data will be detected then next time a check-in or[0m
        [40mcheck-out is attempted.[0m

        [40mThe format of the history file consists of one or more file versions[0m
        [40mwith the above layout, joined head-to-tail with no separators or[0m
        [40mboundary indicators of any kind.  The versions are in descending[0m
        [40morder, from most recent (greatest edit number) to least recent[0m
        [40m(version number one).  To determine where one version stops and the[0m
        [40mnext version starts, use the Content-Length field in the header.  The[0m
        [40mentire history file is then compressed using the bunzip2 algorithm[0m
        [40m(via libbz2).  There is no diff or delta of any kind in the history[0m
        [40mfile.[0m

        [40mThe advantage of compressing the file is that there is usually a very[0m
        [40mhigh redundancy between file versions.  For example, if two identical[0m
        [40mversions are checked in (not necessarily sequentially) the second copy[0m
        [40mwill compress to only a few bytes.  Unlike [4mdiff[24m(1) style deltas, this[0m
        [40malso copes very will with moving blocks of data within the file.  The[0m
        [40muse of bunzip2 formatting means there is also a checksum for the whole[0m
        [40mhistory file, which allows you to detect bad blocks in the header[0m
        [40mportions; it also means there is a simple way to extract the data from[0m
        [40ma history file even without the [4maesvt[24m program, or for testing, or[0m
        [40mbecause you are curious.[0m

        [40mYou can actually choose from a number of compression algorithms,[0m
        [40mincluding GNU Zip and bunzip2, via the -compression-algorithm option.[0m
        [40mMore copmpresison algoritthms may be added in the future.  The best[0m
        [40mavailable comression is used, because this results in the most compact[0m
        [40mhistory files.  Future versions will always be able to access the[0m
        [40mcompression used by earlier versions.[0m

   [1m[40mEnd-To-End Issues[0m
        [40mSee also Saltzer, J.H. [4met[24m [4mal[24m (1981) [4mEnd-to-end[24m [4marguments[24m [4min[24m [4msystem[0m
        [4m[40mdesign[24m, http://web.mit.edu/Saltzer/www/publications/endtoend/-[0m
        [40mendtoend.pdf[0m

   [1m[40mXdelta[0m
        [40mThis style of history file was inspired by RFC 3284 - [4mThe[24m [4mVCDIFF[0m
        [4m[40mGeneric[24m [4mDifferencing[24m [4mand[24m [4mCompression[24m [4mData[24m [4mFormat[24m.  While the [4maesvt[0m
        [40mformat does not use RFC3284 internally, the arguments for compression[0m
        [40macross file versions are just as relevant.[0m

[1m[40mCOPYRIGHT[0m
        [40maesvt version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aesvt program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maesvt[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maesvt[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -Test(1)                                                  aegis -Test(1)



[40m[1mNAME[0m
        [40maegis test - run tests[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -Test [22m[ [4moption[24m...  ][ [4mname[24m[1m=[4m[22mvalue[24m ][ [4mfile-name[24m...  ][0m
        [1m[40maegis -Test -INDependent [22m[ [4moption[24m...  ][ [4mname[24m[1m=[4m[22mvalue[24m ][ [4mfile-name[24m...  ][0m
        [1m[40maegis -Test -List [22m[ [4moption[24m...  ][0m
        [1m[40maegis -Test -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-Test[24m command is used to run tests.  If no files are named,[0m
        [40mall relevant tests are run.  By default both automatic and manual[0m
        [40mtests are run.[0m

        [40mYou may name directories on the command line, and all relevant tests[0m
        [40min that directory tree in the change will be run.  It is an error if[0m
        [40mthere are no relevant tests.[0m

        [40mEach architecture must be tested separately.  This is because there[0m
        [40mmay be subtle problems that are only revealed on some architectures.[0m
        [40mSome projects may also have different code for different[0m
        [40marchitectures.[0m

        [40mThe status of the last test run is remembered so that tests are not[0m
        [40mrun if there is no need.  (This does not apply to [4m-REGression[24m tests,[0m
        [40munfortunately.)  Tests must be re-run if the test previously failed,[0m
        [40mif the test file has changed, if there has been a build, and for each[0m
        [40marchitecture.[0m

   [1m[40mname=value[0m
        [40mYou can add [4mname[24m[1m=[4m[22mvalue[24m pairs to the command line, these will be passed[0m
        [40munchanged to the test command.  Usually on the end of the command[0m
        [40mline, but this can be changed in the project configuration file.[0m

        [40mThe [1m-force [22moption results in an implicit force=1 variable being added[0m
        [40mto the list of variable assignments, and thus added to the end of the[0m
        [40mcommand.  This is of most use when using the [4mbatch_test_command[24m filed[0m
        [40mof the project configuration file.[0m

        [40mThis may initially look like a development process end-run, allowing[0m
        [40mtest scripts to be written so that they give all the right answers[0m
        [40mwithout actually doing anything.  You have always been able to do this[0m
        [40mwith environment variables, so this isn't anything new.[0m

        [40mIt is possible to get all of the variable assignments to turn into[0m
        [40menvironment variables by putting $var at the [4mstart[24m of the command,[0m
        [40mbefore the name of the shell, rather than at the default location at[0m
        [40mthe end of the command.[0m

   [1m[40mFile Name Interpretation[0m
        [40mThe aegis program will attempt to determine the project file names[0m
        [40mfrom the file names given on the command line.  All file names are[0m
        [40mstored within aegis projects as relative to the root of the baseline[0m
        [40mdirectory tree.  The development directory and the integration[0m
        [40mdirectory are shadows of this baseline directory, and so these[0m
        [40mrelative names apply here, too.  Files named on the command line are[0m
        [40mfirst converted to absolute paths if necessary.  They are then[0m
        [40mcompared with the baseline path, the development directory path, and[0m
        [40mthe integration directory path, to determine a baseline-relative name.[0m
        [40mIt is an error if the file named is outside one of these directory[0m
        [40mtrees.[0m

        [40mThe [1m-BAse_RElative [22moption may be used to cause relative filenames to[0m
        [40mbe interpreted as relative to the baseline path; absolute filenames[0m
        [40mwill still be compared with the various paths in order to determine a[0m
        [40mbaseline-relative name.[0m

        [40mThe [4mrelative_filename_preference[24m in the user configuration file may be[0m
        [40mused to modify this default behavior.  See [4maeuconf[24m(5) for more[0m
        [40minformation.[0m

[1m[40mTEST PROCESS[0m
        [40mEach change is required to be accompanied by tests, and those tests[0m
        [40mare required to be run against the built development directory, and[0m
        [40mthey must pass.  This ensures that new functionality is accompanied by[0m
        [40mtests to verify its correctness, and bug fixes are accompanied by[0m
        [40mtests which confirm that the bug has been fixed.[0m

   [1m[40mRegression Tests[0m
        [40mTests are treated as any other source file, and are maintained in the[0m
        [40mbaseline and history with all other source files.  The tests which[0m
        [40mmust accompany every change accumulate in the project baseline,[0m
        [40mproviding a definition of correct function for the baseline.  These[0m
        [40maccumulated tests may be executed using an "aegis -REGression"[0m
        [40mcommand, to verify that the project will not "regress" as a result of[0m
        [40ma change.[0m

   [1m[40mBaseline Tests[0m
        [40mBug fixes are required to have their tests [4mfail[24m against the project[0m
        [40mbaseline (in contrast to the development directory).  This ensures[0m
        [40mthat the test actually demonstrates the bug in the baseline, as well[0m
        [40mas demonstrating that it is fixed by the change.  New functionality[0m
        [40mtrivially fails against the baseline, and so aegis does not attempt to[0m
        [40mguess if a test is a bug fix test or new functionality test, it simply[0m
        [40mrequires tests to fail against the baseline.[0m

        [40mThis requirement applies both to new tests being created by a change[0m
        [40mand also to tests which have been copied into a change for[0m
        [40mmodification.[0m

   [1m[40mReviewing Tests[0m
        [40mReviewers may be confident that aegis has enforced the test[0m
        [40mrequirements; that a change must have tests, that the change must[0m
        [40mbuild, that the tests pass against the development directory, and that[0m
        [40mthe tests fail against the baseline.  These conditions are enforced by[0m
        [4m[40maede[24m(1) and the change will not be advanced to the [4mbeing[24m [4mreviewed[0m
        [40mstate until these conditions are met.  Reviewers should thus review[0m
        [40mtests for [4mcompleteness[24m of coverage of the code in the change, and[0m
        [40minsensitivity to changes in the execution environment (e.g. not date[0m
        [40msensitive).  Reviewers should also use "aegis -list change_details" to[0m
        [40mverify that a change does or does not have testing exemptions.[0m

   [1m[40mExemptions[0m
        [40mVarious test exemptions may be granted by project administrators, see[0m
        [4m[40maepa[24m(1) and [4maepattr[24m(5) for more information.  Copying tests into a[0m
        [40mchange, or adding new tests to a change, may cancel those exemptions.[0m

[1m[40mTEST COMMAND CONFIGURATION[0m
        [40mThe command used to execute tests is defined by the [4mtest_command[24m field[0m
        [40min the project configuration file (see [4maepconf[24m(5) for more[0m
        [40minformation), this defaults to using the Bourne shell if not set.  The[0m
        [40mcurrent directory will be the top of the appropriate directory tree.[0m
        [40mIf tests require temporary files, they should create them in [4m/tmp[24m, as[0m
        [40ma test cannot expect to have write permission in the current[0m
        [40mdirectory.[0m

        [40mIf you want to use a more sophisticated test engine, rather than a[0m
        [40msimple shell script, but this test engine does not return result codes[0m
        [40msuitable for use with aegis, you could wrap it in a shell script which[0m
        [40mre-writes the exit status into the values aegis expects.  You could[0m
        [40malso achieve the same results by writing a more complex [4mtest_command[0m
        [40min the project [4mconfig[24m file.[0m

        [40mIt is also possible to write test commands which are able to test more[0m
        [40mthan one file at once.  This is controlled by the [4mbatch_test_command[0m
        [40mfield of the project [4mconfig[24m file.  In this case, the ${output}[0m
        [40msubstitution indicates the name of a file the test command must[0m
        [40mcreate, in [4maetest[24m(5) format, to contain the results of the tests run.[0m
        [40mThis is often used on systems with multiple CPUs or the ability to[0m
        [40mdistribute jobs across several computers on a network.[0m

   [1m[40mSubstitutions[0m
        [40mAll of the [4maesub[24m(5) substitutions are available in the test commands.[0m
        [40mSome of them are of particular note:[0m

        [4m[40mARCHitecture[0m
                [40mThis substitution is replaced by the name of the architecture[0m
                [40mto be tested.[0m

        [4m[40mSearch_Path[0m
                [40mThis substitution is replaced by a colon separated list of[0m
                [40mabsolute paths to search when looking for test support files.[0m

        [4m[40mSearch_Path_Executable[0m
                [40mThis substitution is replaced by a colon separated list of[0m
                [40mabsolute paths to search when looking for executable support[0m
                [40mfiles (library files and sub-commands).[0m

        [40mMost of the time [4m$Search_Path_Executable[24m are exactly the same.[0m
        [40mHowever, during "aegis -t -bl" they will be different, with[0m
        [4m[40m$Seach_Path[24m starting at the development directory (the test being run)[0m
        [40mand [4m$Seach_Path_Executable[24m starting at the baseline (the executable[0m
        [40mbeing run).[0m

   [1m[40mTest Result Codes[0m
        [40mAs each test is run (via the [4mtest_command[24m field in the project [4mconfig[0m
        [40mfile), aegis determines whether the test succeeded or failed by[0m
        [40mlooking at its exit status.  This exit status is mostly as expected[0m
        [40mfor UNIX commands.[0m

        [40mSuccess[0m
            [40mA test should exit 0 to indicate success, i.e. that the specific[0m
            [40mfunction under test worked as expected.[0m

        [40mFailure[0m
            [40mA test should exit 1 to indicate failure, i.e. that the specific[0m
            [40mfunction under test did not work as expected.[0m

        [40mNo Result[0m
            [40mA test should exit 2 to indicate no result, [4mi.e.[24m that the specific[0m
            [40mfunction under test could not be exercised because something else[0m
            [40mwent wrong.  For example, running out of disk space when creating[0m
            [40mthe test input files in the [4m/tmp[24m directory.[0m

        [40mSkipped[0m
            [40mA test should exit 77 to indicate that it was skipped.  This is[0m
            [40musually to do with the current architecture not being meaningful.[0m
            [40mWhenever possible, use "No Result" instead.  (The value was chosen[0m
            [40mfor compatibility with other test systems.)[0m

        [40mActually, any exit code other than 0, 1 or 77 will be interpreted as[0m
        [40m"no result".  However, always using 0, 1, 2 or 77 means that if a new[0m
        [40mresult code is required by a later release of Aegis your existing[0m
        [40mtests will continue to work.[0m

[1m[40mTEST CORRELATIONS[0m
        [40mThe "aegis -Test -SUGgest" command may be used to have aegis suggest[0m
        [40msuitable regression tests for your change, based on the source files[0m
        [40min your change.  This automatically focuses testing effort to relevant[0m
        [40mtests, reducing the number of regression tests necessary to be[0m
        [40mconfident that you have not introduced a bug.[0m

        [40mThe test correlations are generated by the "aegis -Integrate_Pass"[0m
        [40mcommand, which associates each test in the change with each source[0m
        [40mfile in the change.  Thus, each source file accumulates a list of[0m
        [40mtests which have been associated with it in the past.  This is not as[0m
        [40mexact as code coverage analysis, but is a reasonable approximation in[0m
        [40mpractice.[0m

        [40mThe [4maecp[24m(1) and [4maenf[24m(1) commands are used to associate files with a[0m
        [40mchange.  While they do not actively perform the association, these are[0m
        [40mthe files used by [4maeipass[24m(1) and [4maet[24m(1) to determine which source[0m
        [40mfiles are associated with which tests.[0m

   [1m[40mTest Correlation Accuracy[0m
        [40mAssuming that the testing correlations are accurate and that the tests[0m
        [40mare evenly distributed across the function space, there will be a less[0m
        [40mthan [4m1/number[24m chance that a relevant test has not been run by the[0m
        [40m"aegis -Test -SUGgest [4mnumber[24m" command.  A small amount of noise is[0m
        [40madded to the test weighting, so that unexpected things are sometimes[0m
        [40mtested, and the same tests are not run every time.[0m

        [40mTest correlation accuracy can be improved by ensuring that:[0m

        [40m+o Each change should be strongly focused, with no gratuitous file[0m
          [40minclusions.  This avoids spurious correlations.[0m

        [40m+o Each item of new functionality should be added in an individual[0m
          [40mchange, rather than several together.  This strongly correlates[0m
          [40mtests with functionality.[0m

        [40m+o Each bug should be fixed in an individual change, rather than[0m
          [40mseveral together.  This strongly correlates tests with[0m
          [40mfunctionality.[0m

        [40m+o Test correlations will be lost if files are moved.  This is because[0m
          [40mcorrelations are by name.[0m

        [40mThe best way for tests to correlate accurately with source files is[0m
        [40mwhen a change contains a test and exactly those files relating to the[0m
        [40mfunctionality under test.  Too many spurious files will weaken the[0m
        [40musefulness of the testing correlations.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-AUTOmatic[0m
                [40mThis option may be used to specify automatic tests.  Automatic[0m
                [40mtests require no human assistance.[0m

        [1m[40m-BaseLine[0m
                [40mThis option may be used to specify that the project baseline[0m
                [40mis the subject of the command.[0m

        [1m[40m-BAse_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the base of the source tree.  See[0m
                [4m[40maeuconf[24m(5) for the corresponding user preference.[0m

        [1m[40m-CUrrent_RElative[0m
                [40mThis option may be used to cause relative filenames to be[0m
                [40mconsidered relative to the current directory.  This is usually[0m
                [40mthe default.  See [4maeuconf[24m(5) for the corresponding user[0m
                [40mpreference.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-FOrce  [22mThis option may be used to specify that all tests should be[0m
                [40mrun, even if the status of the last test run indicates that[0m
                [40mthere is no need to run a specific test.[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [1m[40m-INDependent[0m
                [40mThis option is used to specify that the test is to be run[0m
                [40mindependent of any particular change.  If no tests are named,[0m
                [40mall tests in the baseline will be run.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable subjects[0m
                [40mfor this command.  The list may be more general than expected.[0m

        [1m[40m-MANual [22mThis option may be used to specify manual tests.  Manual tests[0m
                [40mrequire some human intervention,  e.g.: confirmation of some[0m
                [40mscreen behavior (X11, for instance), or some user action,[0m
                [40m"unplug ethernet cable now".[0m

        [1m[40m-Not_Logging[0m
                [40mThis option may be used to disable the automatic logging of[0m
                [40moutput and errors to a file.  This is often useful when[0m
                [40mseveral aegis commands are combined in a shell script.[0m

        [1m[40m-PErsevere[0m
                [40mThis option may be used to specify that all tests should be[0m
                [40mrun, even if some fail.  Defaults to the user's[0m
                [4m[40mpersevere_preference[24m if not specified, see [4maeuconf[24m(5) for more[0m
                [40minformation.[0m

        [1m[40m-No_PErsevere[0m
                [40mThis option may be used to specify that the test run should[0m
                [40mstop after the first failure.  Defaults to the user's[0m
                [4m[40mpersevere_preference[24m if not specified, see [4maeuconf[24m(5) for more[0m
                [40minformation.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-PROGress[0m
                [40mThis option may be used to specify that progress messages[0m
                [40mshould be issued before each test run or before each batch[0m
                [40mtest run in case [4mbatch_test_command[24m field specified in project[0m
                [4m[40mconfig[24m file (see [4maeuconf[24m(5) for more information).[0m

        [1m[40m-No_PROGress[0m
                [40mThis option may be used to specify that progress messages[0m
                [40mshould be suppressed.  This is the default.[0m

        [1m[40m-REGression[0m
                [40mThis option is used to specify that the regression test suite[0m
                [40mis to be run.  The regression test suite consists of all tests[0m
                [40min the baseline which do not appear in the change.  It is an[0m
                [40merror if there are no regression tests.  You may not name[0m
                [40mtests on the command line when using the -REGression option.[0m
                [40mYou may name individual tests to be run on the command line,[0m
                [40mwithout using the -REGression option; if they are not part of[0m
                [40mthe change, the tests of the same name in the baseline will be[0m
                [40mrun.[0m

        [1m[40m-SUGgest [22m[ [4mnumber[24m ][0m
                [40mThe "[4maegis[24m [4m-Integrate_Pass[24m" command collects test correlation[0m
                [40mstatistics when changes are integrated.  This option may be[0m
                [40mused to request that aegis suggest which tests should be run,[0m
                [40musing these testing correlations.  If no number is specified,[0m
                [40m10 tests will be suggested.  This option implies the[0m
                [1m[40m-REGression [22moption.[0m

        [1m[40m-SUGgest_Limit [4m[22mminutes[0m
                [40mThis option may be used to limit the number of tests to a[0m
                [40mcertain number of minutes.  They will be run from most[0m
                [40mrelevant to least relevant.[0m

        [1m[40m-SUGgest_Noise [4m[22mnumber[0m
                [40mThis option may be used to control the amount of noise[0m
                [40minjected into the test selection performed by the [1m-SUGgest[0m
                [40moption.  The number is a percentage of noise to be injected.[0m
                [40mDefaults to 10 if not specified.  The injection of noise[0m
                [40mensures that a variety of tests are run on subsequent runs,[0m
                [40mand also some from left-field as a sanity check.[0m

        [1m[40m-TERse[0m
                [40mThis option may be used to cause listings to produce the bare[0m
                [40mminimum of information.  It is usually useful for shell[0m
                [40mscripts.[0m

        [1m[40m-Verbose[0m
                [40mThis option may be used to cause aegis to produce more output.[0m
                [40mBy default aegis only produces output on errors.  When used[0m
                [40mwith the [1m-List [22moption this option causes column headings to be[0m
                [40madded.[0m

        [1m[40m-Wait   [22mThis option may be used to require Aegis commands to wait for[0m
                [40maccess locks, if they cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [1m[40m-No_Wait[0m
                [40mThis option may be used to require Aegis commands to emit a[0m
                [40mfatal error if access locks cannot be obtained immediately.[0m
                [40mDefaults to the user's [4mlock_wait_preference[24m if not specified,[0m
                [40msee [4maeuconf[24m(5) for more information.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aet 'aegis -t \!* -v'[0m
        [40msh$     aet(){aegis -t "$@" -v}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the change is not in one of the [4mbeing[24m [4mdeveloped[24m or[0m
        [4m[40mbeing[24m [4mintegrated[24m states.[0m
        [40mIt is an error if the change is not assigned to the current user.[0m
        [40mIt is an error if your have no relevant tests and no relevant[0m
        [40mexemption.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maeb[24m(1)  build a change[0m

        [4m[40maeca[24m(1) modify the attributes of a change[0m

        [4m[40maedb[24m(1) begin development of a change[0m

        [4m[40maeib[24m(1) begin integration of a change[0m

        [4m[40maent[24m(1) add a new test to a change[0m

        [4m[40maecp[24m(1) copy an existing test into a change[0m

        [4m[40maepconf[24m(5)[0m
                [40mproject configuration file format[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aetar(1)                                                              aetar(1)



[40m[1mNAME[0m
        [40maetar - remotely distribute a change via tar[0m

[1m[40mSYNOPSIS[0m
        [1m[40maetar -Send [22m[ [4moption[24m...  ][0m
        [1m[40maetar -Receive [22m[ [4moption[24m...  ][0m
        [1m[40maetar -List [22m[ [4moption[24m...  ][0m
        [1m[40maetar -Help[0m
        [1m[40maetar -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maetar[24m command is used to send and receive change sets via [4mtar[24m(1)[0m
        [40mto facilitate geographically distributed development.[0m

        [40mThe basic function is to reproduce a change, so a command like[0m
                [40maetar -send | aetar -receive[0m
        [40mmay be used to clone a change, though less efficiently than[0m
        [4m[40maeclone[24m(1).  The file format used is an ordinary [4mgzip[24m(1) compressed[0m
        [4m[40mtar[24m(1) archive.[0m

[1m[40mSEND[0m
        [40mThe send variant takes a specified change, or baseline, and constructs[0m
        [40ma distribution package containing all of the source file contents.  No[0m
        [40mchange meta-data is included.[0m

        [40mIt is not necessary for the recipient to have the [4maetar[24m(1) command.[0m
        [40mIt is possible to use the regular [4mtar[24m [4mxzf[24m command to extract the files[0m
        [40mfrom the archive.[0m

   [1m[40mOptions[0m
        [40mThe following options are understood by the send variant:[0m

        [1m[40m-BaseLine[0m
                [40mThis option may be used to specify the source of a project,[0m
                [40mrather than a change.[0m

        [1m[40m-Add_Path_Prefix [4m[22mstring[0m
                [40mThis option may be used to specify a path prefix to be added[0m
                [40mto every filename in the archive.  This means that when the[0m
                [40marchive is unpacked, it will all be placed in the one[0m
                [40mdirectory.[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-COMPATibility [4m[22mversion-number[0m
                [40mThis option may be used to specify the version of [4maetar[24m(1)[0m
                [40mwhich will be [4mreceiving[24m this change set.  This information is[0m
                [40mused to select which features to include in the data, and[0m
                [40mwhich to omit.  By default, the latest feature set will be[0m
                [40mused.[0m

        [1m[40m-compression-algorithm [4m[22mname[0m
                [40mThis option may be used to specify the compression to be used.[0m
                [40mThey are listed on order of compression effeciency.[0m

                [40mnone    Use no compression (not always meaningful for all[0m
                        [40mcommands).[0m

                [40mgzip    Use the compression used by the [4mgzip[24m(1) program.[0m

                [40mbzip2   Use the compression used by the [4mbzip2[24m(1) program.[0m

                [40mMore compression algorithms may be added in the future.[0m

        [1m[40m-COMPress[0m
                [40mThis option is deprecated in favour of the [1m-comp-alg=gzip [22mor[0m
                [1m[40m-comp-alg=bzip2 [22moptions.[0m

        [1m[40m-No_COMPress[0m
                [40mThis options is deprecated in favour of the [1m-comp-alg=none[0m
                [40moption.[0m

        [1m[40m-DELta [4m[22mnumber[0m
                [40mThis option may be used to specify a particular delta in the[0m
                [40mproject's history to copy the file from, rather than the most[0m
                [40mcurrent version.  If the delta has been given a name (see[0m
                [4m[40maedn[24m(1) for how) you may use a delta name instead of a delta[0m
                [40mnumber.  It is an error if the delta specified does not exist.[0m
                [40mDelta numbers start from 1 and increase; delta 0 is a special[0m
                [40mcase meaning "when the branch started".[0m

        [1m[40m-DELta_Date [4m[22mstring[0m
                [40mThis option may be used to specify a particular date and time[0m
                [40min the project's history to copy the file from, rather than[0m
                [40mthe most current version.  It is an error if the string[0m
                [40mspecified cannot be interpreted as a valid date and time.[0m
                [40mQuote the string if you need to use spaces.[0m

        [1m[40m-DELta_From_Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular project delta[0m
                [40mfrom its change number.[0m

        [1m[40m-Entire_Source[0m
                [40mThis option may be used to send the entire source of the[0m
                [40mproject, as well as the change source files.  This is the[0m
                [40mdefault.[0m

        [1m[40m-Partial_Source[0m
                [40mThis option may be used to send only source files of a change.[0m

        [1m[40m-Include_Build[0m
                [40mThis option may be used to send also build files.[0m

        [1m[40m-Not_Include_Build[0m
                [40mThis option may be used to send only source (source, test,[0m
                [40mconfig but not build) files.  This is the default.[0m

        [1m[40m-Output [4m[22mfilename[0m
                [40mThis option may be used to specify the output file.  The[0m
                [40moutput is sent to the standard output by default.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

[1m[40mRECEIVE[0m
        [40mThe receive variant takes a tarball and creates an Aegis change (see[0m
        [4m[40maenc[24m(1)) to implement the change within.  Files are added to the[0m
        [40mchange (see [4maenf[24m(1), [4maecp[24m(1), [4maerm[24m(1), [4maent[24m(1)) and then the file[0m
        [40mcontents are unpackaged into the development directory.[0m

        [40mIt is not necessary for the sender to have the [4maetar[24m(1) command.  It[0m
        [40mis possible to use the regular [4mtar[24m [4mczf[24m command to create the the[0m
        [40mtarball.  You may want to use the [4mtardy[24m(1) command to manipulate the[0m
        [40mfilenames before extraction.[0m

   [1m[40mFile Names[0m
        [40mIt is common for tar files generated to distribute open source[0m
        [40mprojects to contain a path prefix.[0m

        [1m[40m-Remove_Path_Prefix [4m[22mstring[0m
                [40mThis option may be used to explicitly specify path prefixes to[0m
                [40mbe removed, if present.  It may be specified more than once.[0m

        [1m[40m-Remove_Path_Prefix [4m[22mnumber[0m
                [40mStrip the smallest prefix containing num leading slashes from[0m
                [40meach file name found in the patch file.  A sequence of one or[0m
                [40mmore adjacent slashes is counted as a single slash.[0m

        [40mIf you have a complex project directory structure, from time to time[0m
        [40mpeople may send you tarballs relative to a sub-directory, rather than[0m
        [40mrelative to the project root.[0m

        [1m[40m-Add_Path_Prefix [4m[22mstring[0m
                [40mThis option may be used to specify the path of a project sub-[0m
                [40mdirectory in which to apply the tarball.[0m

   [1m[40mNotification[0m
        [40mThe [4maetar[24m command invokes various other Aegis commands.  The usual[0m
        [40mnotifications that these commands would issue are issued.[0m

   [1m[40mOptions[0m
        [40mThe following options are understood by the receive variant:[0m

        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to choose the change number to be[0m
                [40mused, otherwise one will be chosen automatically.[0m

        [1m[40m-DELta [4m[22mnumber[0m
                [40mThis option may be used to specify a particular delta in the[0m
                [40mproject's history to copy the file from, just as for the[0m
                [4m[40maecp[24m(1) command.  You may also use a delta name instead of a[0m
                [40mdelta number.[0m

        [1m[40m-DIRectory [4m[22mpath[0m
                [40mThis option may be used to specify which directory is to be[0m
                [40mused.  It is an error if the current user does not have[0m
                [40mappropriate permissions to create the directory path given.[0m
                [40mThis must be an absolute path.[0m

                [40mCaution: If you are using an automounter do not use `pwd` to[0m
                [40mmake an absolute path, it usually gives the wrong answer.[0m

        [1m[40m-EXCLude[0m
                [40mThis option may be used to exclude certain files in the[0m
                [40mtarball from consideration.[0m

                [40mYou can also add more exclusions using the [4mproject_specific[0m
                [40mfield of the project configuration, using the aetar:exclude[0m
                [40mattribute listing file names to exclude separated by spaces.[0m

        [1m[40m-Exclude_Auto_Tools[0m
                [40mThis option may be used to exclude files common to tarballs of[0m
                [40mopen source projects which used GNU Autoconf or GNU Automake.[0m
                [40mThis is triggered by the presence of [4mconfigure.ac[24m,[0m
                [4m[40mconfigure.in[24m or [4mMakefile.am[24m files.  This only works for simple[0m
                [40mprojects, more complex projects will need to use the project[0m
                [40mexclude attributes.[0m

                [40mYou can set this automatically using the boolean[0m
                [40maetar:exclude-auto-tools attribute in the [4mproject_specific[0m
                [40mfield of the project configuration file.[0m

        [1m[40m-Exclude_CVS[0m
                [40mThis option may be used to exclude files common to CVS[0m
                [40mrepositories, which implement the repository functions, rather[0m
                [40mthan contain source code.  It will also look inside .cvsignore[0m
                [40mfiles for additional files to ignore.[0m

                [40mYou can set this automatically using the boolean[0m
                [40maetar:exclude-cvs attribute in the [4mproject_specific[24m field of[0m
                [40mthe project configuration file.[0m

        [1m[40m-File [4m[22mfilename[0m
                [40mRead the change set from the specified file.  The default is[0m
                [40mto read it from the standard input.  The filename `-' is[0m
                [40munderstood to mean the standard input.[0m

                [40mIf your system has [4mlibcurl[24m(3), and Aegis was configured to use[0m
                [40mit at compile time (this is the default if it is available)[0m
                [40myou will also be able to specify a Uniform Resource Locator[0m
                [40m(URL) in place of the file name.  The relevant data will be[0m
                [40mdownloaded.  (The [1m-Verbose [22moption will provide a progress[0m
                [40mbar.)[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

        [1m[40m-Trojan [22mThis option may be used to treat the change set as if it had a[0m
                [40mTrojan horse attack in it.[0m

        [1m[40m-No_Trojan[0m
                [40mThis option may be used to treat the change set as if it[0m
                [40mdefinitely does not have a Trojan horse attack in it.  [4mUse[0m
                [4m[40mwith[24m [4mextreme[24m [4mcare.[24m  You need to have authenticated the message[0m
                [40mwith something like PGP first [1mand [22mknow the the author well.[0m

   [1m[40mSecurity[0m
        [40mDownloading a tarball and automatically committing it to the baseline[0m
        [40mwithout checking it would be a recipe for disaster.  A number of[0m
        [40msafeguards are provided:[0m

        [40m+o The file sare unpacked into a new change.  You need to edit the[0m
          [40mchange description.  You need to uncopy unchanged files.  You need[0m
          [40mto difference the change.  You need to build and test the change.[0m
          [40mThis ensures that a local reviewer validates the change before it is[0m
          [40mcommitted, preventing accidental or malicious damage.[0m

        [40m+o The use of authentication and encryption systems, such as PGP and[0m
          [40mGPG, are encouraged.  However, it is expected that this processing[0m
          [40mwill occur after [4maetar[24m [4m--send[24m has constructed the package and before[0m
          [4m[40maetar[24m [4m--receive[24m examines and acts on the package.  Verification of[0m
          [40mthe sender is the surest defense against trojan horses.[0m

        [40m+o Automatic sending and receiving of packages is supported, but not[0m
          [40mimplemented within the aetar command.  It is expected that the aetar[0m
          [40mcommand will be used within shell scripts customized for your site[0m
          [40mand its unique security requirements.  See the Aegis User Guide for[0m
          [40mseveral different ways to do this.[0m

        [40m+o The more you use Aegis' test management facilities (see [4maent[24m(1) and[0m
          [4m[40maet[24m(1)) the harder it is for an inadequate change to get into the[0m
          [40mbaseline.[0m

[1m[40mLIST[0m
        [40mThe list variant can be used to list the contents of a tarball without[0m
        [40mactually unpacking it first.[0m

   [1m[40mOptions[0m
        [40mThe following options are understood by the list variant:[0m

        [1m[40m-File [4m[22mfilename[0m
                [40mRead the change set from the specified file.  The default is[0m
                [40mto read it from the standard input.  The filename `-' is[0m
                [40munderstood to mean the standard input.[0m

                [40mIf your system has [4mlibcurl[24m(3), and Aegis was configured to use[0m
                [40mit at compile time (this is the default if it is available)[0m
                [40myou will also be able to specify a Uniform Resource Locator[0m
                [40m(URL) in place of the file name.  The relevant data will be[0m
                [40mdownloaded.  (The [1m-Verbose [22moption will provide a progress[0m
                [40mbar.)[0m

        [1m[40m-Output [4m[22mfilename[0m
                [40mThis option may be used to specify the output file.  The[0m
                [40moutput is sent to the standard output by default.  Only useful[0m
                [40mwith the -List option.[0m

[1m[40mOPTIONS[0m
        [40mThe following options to this command haven't been mentioned yet:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maetar[24m program.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maetar[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mFILE FORMAT[0m
        [40mThe file format re-uses existing formats, rather than introduce[0m
        [40manything new.  This means it is possible to extract the contents of a[0m
        [40mpackage even when aetar is unavailable.[0m

        [40m+o The source files and other information is stored as a normal Unix[0m
          [4m[40mtar[24m(1) archive.[0m

        [40m+o On sending, the tarball is compressed using the GNU gzip format.[0m
          [40mTypically primary source files are ASCII text, resulting in[0m
          [40msignificant compression.  (This is optional.)[0m
          [40mOn receiving, if the tarball is compressed it will be automagically[0m
          [40muncompressed, detection is automatic, you do not need to do this[0m
          [40myourself.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maetar[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maetar[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maetar version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aetar program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maetar[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maetar[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis -VERSion(1)                                            aegis -VERSion(1)



[40m[1mNAME[0m
        [40maegis version - give version information[0m

[1m[40mSYNOPSIS[0m
        [1m[40maegis -VERSion [22m[ [4minfo-name[24m ][0m
        [1m[40maegis -VERSion -Help[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maegis[24m [4m-VERSion[24m command is used to give version information and[0m
        [40mconditions of use.[0m

        [40mThere are a number of possible [4minfo-name[24ms, as follow (abbreviations as[0m
        [40mfor command line options):[0m

        [40mCopyright[0m
                [40mThe copyright notice for the aegis program.  Version[0m
                [40minformation will also be printed.  This is the default.[0m

        [40mRedistribution[0m
                [40mPrint the conditions of use and redistribution.[0m

        [40mWarranty[0m
                [40mPrint the limited warranty.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m

        [1m[40m-Help[0m
                [40mThis option may be used to obtain more information about how[0m
                [40mto use the [4maegis[24m program.[0m

        [40mAll options may be abbreviated; the abbreviation is documented as the[0m
        [40mupper case letters, all lower case letters and underscores (_) are[0m
        [40moptional.  You must use consecutive sequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper case or[0m
        [40mlower case or a combination of both, case is not important.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj" will not[0m
        [40mbe understood, because consecutive optional characters were not[0m
        [40msupplied.[0m

        [40mOptions and other command line arguments may be mixed arbitrarily on[0m
        [40mthe command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option names for[0m
        [4m[40maegis[24m are long, this means ignoring the extra leading '-'.  The[0m
        [40m"[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also understood.[0m

[1m[40mRECOMMENDED ALIAS[0m
        [40mThe recommended alias for this command is[0m
        [40mcsh%    alias aev 'aegis -vers \!*'[0m
        [40msh$     aev(){aegis -vers "$@"}[0m

[1m[40mERRORS[0m
        [40mIt is an error if the [4minfo-name[24m given is unknown.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maegis[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maegis[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aexml(1)                                                              aexml(1)



[40m[1mNAME[0m
        [40maexml - Aegis database to XML[0m

[1m[40mSYNOPSIS[0m
        [1m[40maexml [22m[ [4moption[24m...  ] [4mlistname[0m
        [1m[40maexml -Help[0m
        [1m[40maexml -List[0m
        [1m[40maexml -VERSion[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maexml[24m command is used to extract portions of Aegis' database in[0m
        [40mXML format.[0m

   [1m[40mList Names[0m
        [40mThe following list names may be given[0m

        [40mChange_Files[0m
                [40mInternal change file state.  See [4maefstate[24m(5) for structure.[0m

        [40mChange_State[0m
                [40mInternal change state.  See [4maecstate[24m(5) for structure.[0m

        [40mProjects[0m
                [40mList of projects.  See [4maegstate[24m(5) for structure.[0m

        [40mProject_Change_State[0m
                [40mInternal project change state.  See [4maecstate[24m(5) for structure.[0m

        [40mProject_Config_File[0m
                [40mThe project configuration file.  See [4maepconf[24m(5) for structure.[0m

        [40mProject_Files[0m
                [40mInternal project file state.  See [4maefstate[24m(5) for structure.[0m

        [40mProject_State[0m
                [40mInternal project state.  See [4maepstate[24m(5) for structure.[0m

        [40mThe abbreviations foe the list names follows the same rules as for[0m
        [40mcommand line options.[0m

[1m[40mOPTIONS[0m
        [40mThe following options are understood:[0m



                [1m[40m-Help[0m
                [40mThis option may be used to obtain more information[0m
                [40mabout how to use the [4maexml[24m program.[0m

        [1m[40m-List[0m
                [40mThis option may be used to obtain a list of suitable[0m
                [40msubjects for this command.  The list may be more[0m
                [40mgeneral than expected.[0m

        [1m[40m-Output [4m[22mfilename[0m
                [40mThis option may be used to specify the output file.[0m
                [40mThe output is sent to the standard output by default.[0m
                [40mIf the file name ends with ".gz" it will be compressed[0m
                [40mwith the [4mgzip[24m(1) algorithm, if it ends with ".bz" or[0m
                [40m".bz2" it will be compressed with the [4mbzip2[24m(1)[0m
                [40malgorithm.[0m

        [40mAll options may be abbreviated; the abbreviation is documented[0m
        [40mas the upper case letters, all lower case letters and[0m
        [40munderscores (_) are optional.  You must use consecutive[0m
        [40msequences of optional letters.[0m

        [40mAll options are case insensitive, you may type them in upper[0m
        [40mcase or lower case or a combination of both, case is not[0m
        [40mimportant.[0m

        [40mFor example: the arguments "-project, "-PROJ" and "-p" are all[0m
        [40minterpreted to mean the [1m-Project [22moption.  The argument "-prj"[0m
        [40mwill not be understood, because consecutive optional[0m
        [40mcharacters were not supplied.[0m

        [40mOptions and other command line arguments may be mixed[0m
        [40marbitrarily on the command line, after the function selectors.[0m

        [40mThe GNU long option names are understood.  Since all option[0m
        [40mnames for [4maexml[24m are long, this means ignoring the extra[0m
        [40mleading '-'.  The "[1m--[4m[22moption[24m[1m=[4m[22mvalue[24m" convention is also[0m
        [40munderstood.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maexml[24m command will exit with a status of 1 on any error.[0m
        [40mThe [4maexml[24m command will only exit with a status of 0 if there[0m
        [40mare no errors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may[0m
        [40maffect this command.  See [4maepconf[24m(5) for the project[0m
        [40mconfiguration file's [4mproject_specific[24m field for how to set[0m
        [40menvironment variables for all commands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maexml version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,[0m
        [40m1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,[0m
        [40m2009, 2010 Peter Miller[0m

        [40mThe aexml program comes with ABSOLUTELY NO WARRANTY; for[0m
        [40mdetails use the '[4maexml[24m [4m-VERSion[24m [4mLicense[24m' command.  This is[0m
        [40mfree software and you are welcome to redistribute it under[0m
        [40mcertain conditions; for details use the '[4maexml[24m [4m-VERSion[0m
        [4m[40mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aexver(1)                                                            aexver(1)



[40m[1mNAME[0m
        [40maexver - graphical file history[0m

[1m[40mSYNOPSIS[0m
        [1m[40maexver[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4maexver[24m command is used to to view historical versions of files in[0m
        [40man Aegis repository.[0m

        [40mA list box is displayed with all project filenames in it.  When ther[0m
        [40muser double-clicks on a file, another box is displayed listing all the[0m
        [40mrevisions of that file.  Selecting any two revisions will bring up a[0m
        [40mdiff comparing those revisions to each other.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mAE2DIFF The name of the program to perform the 2-way diff.  Default to[0m
                [40mxidff if not set.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4maexver[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40maexver[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mCOPYRIGHT[0m
        [40maexver version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aexver program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maexver[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maexver[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



tkaeca(1)                                                            tkaeca(1)



[40m[1mNAME[0m
        [40mtkaeca - GUI interface for aeca, using TCL/TK[0m

[1m[40mSYNOPSIS[0m
        [1m[40mtkaeca[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4mtkaeca[24m command is used to provide a GUI interface to [4maeca[24m(1).  Its[0m
        [40muse should be self-evident to anyone familiar with Aegis.[0m

        [40mThe top line of the screen contains button for selecting the project[0m
        [40mand the change.  They will be defaulted whenever possible, using the[0m
        [40musual Aegis defaulting rules.  Click on the buttons to obtain a pick[0m
        [40mlist if you want to change; then double-click an item to select it.[0m
        [40m(I would have used tk_optionMenu, but it doesn't have a scroll bar,[0m
        [40meven when all the items don't fit on the screen.)[0m

        [40mThe middle section contains text entry areas, for editing the[0m
        [4m[40mbrief_description[24m and [4mdescription[24m fields of the change attributes.[0m
        [40mThe text wraps in a natural way, both here and in (say) the "[4mtkaeca[0m
        [4m[40m-list[24m [4mchand[24m [4mdetails[24m" listing, so only use newlines to indicate end-of-[0m
        [40mparagraph.[0m

        [40mThe lower section contains two boxes.  The first is the testing[0m
        [40mrequired for the change - select as many or as few as is appropriate.[0m
        [40mThe second a set of radio buttons to select the change cause - pick[0m
        [40mone.[0m

        [40mThe "OK" and "Cancel" buttons do what you expect.  The cancel button[0m
        [40msimply quits.  The OK button runs the [4maeca[24m(1) command - if anything[0m
        [40mgoes wrong ([4me.g.[24m asking for testing exemptions you can't have) then[0m
        [40mthe error message will be displayed in the message area at the bottom[0m
        [40mof the window.[0m

[1m[40mOPTIONS[0m
        [40mThere are no command line options.  It is best to run this command in[0m
        [40mthe background.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4mtkaeca[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40mtkaeca[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maeca[24m(1) View and edit change attributes, from the command line.[0m

        [4m[40mtkaegis[24m(1)[0m
                [40mGUI interface for Aegis, using TCL/TK[0m

[1m[40mCOPYRIGHT[0m
        [40mtkaeca version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe tkaeca program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4mtkaeca[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4mtkaeca[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



tkaegis(1)                                                          tkaegis(1)



[40m[1mNAME[0m
        [40mtkaegis - GUI interface for Aegis, using TCL/TK[0m

[1m[40mSYNOPSIS[0m
        [1m[40mtkaegis[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4mtkaegis[24m command is used to provide a GUI interface to Aegis.  Its[0m
        [40muse should be self-evident to anyone familiar with Aegis.[0m

        [40mThere are some areas where tkaegis is still missing functionality;[0m
        [40mthese are primarily related to project and change attributes that are[0m
        [40mnot yet included in the dialogs, and also issues such as configuring[0m
        [40mthe change and history tools, the architectures, and so on.[0m

[1m[40mINSTALLATION[0m
        [40mFirst, you will need Tcl/Tk installed, and will need to modify the[0m
        [40mpath in the first line of tkaegis to reflect the path of your Tk wish[0m
        [40minterpreter.  Hopefully, the [4m./configure[24m script took care of this.[0m

        [40mNext, you may need to modify some important variables that occur[0m
        [40mimmediately below these comments, to specify the architecture, project[0m
        [40mbase directory, and the editor you are using (if you leave that blank,[0m
        [40mtkaegis will try to determine the editor to use from the EDITOR[0m
        [40menvironment variable; if that fails, it will fall back to emacs or[0m
        [40mvi).[0m

[1m[40mNAVIGATION[0m
        [40mWhen you run tkaegis, a window will appear with a menu at the top.[0m
        [40mThe window is used to display the output of aegis commands and some[0m
        [40mother feedback.  The menu will initially have only two items, Project[0m
        [40mand Help.  At this stage the Help menu only has an About dialog box.[0m

        [40mThe Project menu will allow you to create new projects, select from[0m
        [40myour existing projects, clear the contents of the feedback window, or[0m
        [40mexit the program.  If you create a new project, a dialog box will[0m
        [40mappear allowing you to enter the project name, directory, and initial[0m
        [40mbranch number.  When you press OK the project will be created and[0m
        [40mshould then appear in the Project menu.[0m

        [40mIf you select an existing project, a new option will be added to the[0m
        [40mProject menu, allowing you to delete the project.  A Branch menu will[0m
        [40malso appear.  This is similar to the Project menu, but allows you to[0m
        [40mcreate, delete, or select project branches.[0m

        [40mIf you select a branch in the branch menu, a Role menu will appear.[0m
        [40mThis will allow you to choose the role that you will be playing,[0m
        [40mnamely one of administrator, developer, reviewer, or integrator.[0m
        [40mtkaegis uses your UNIX login name and the names of the roleplayers[0m
        [40massociated with the project and branch, to determine which of the[0m
        [40mroles it will allow you to choose.  If you create a new project, only[0m
        [40mthe administrator role will appear.[0m

        [40mSelecting a role will put you in a `mode', which will determine what[0m
        [40mother menus appear and what you can do next.  Each mode will now be[0m
        [40mdescribed in turn, by giving a brief description of the role-specific[0m
        [40mmenu hierarchy.  Following the name of each menu item is the[0m
        [40mcorresponding aegis command, where applicable.[0m

[1m[40mADMINISTRATOR MODE[0m
        [40mIn this mode, you can modify the staff and roles associated with the[0m
        [40mbranch, and create, remove, and change the attributes of change[0m
        [40mrequests, and view all the change requests.[0m

        [40mAdmin:[0m

            [40mEdit Branch Attributes (aepa) -[0m
                    [40mChange the attributes for the branch[0m

        [40mStaff:[0m

            [40mAdministrators:[0m

                [40mAdd (aena) -[0m
                        [40mAdd an administrator for the branch[0m

                [40mView (ael a) -[0m
                        [40mView the administrators for the branch[0m

                [40mRemove (aera) -[0m
                        [40mRemove an administrator for the branch[0m

            [40mDevelopers:[0m

                [40mAdd (aend) -[0m
                        [40mAdd a developer for the branch[0m

                [40mView (ael d) -[0m
                        [40mView the developers for the branch[0m

                [40mRemove (aerd) -[0m
                        [40mRemove a developer for the branch[0m

            [40mReviewers:[0m

                [40mAdd (aenrv) -[0m
                        [40mAdd a reviewer for the branch[0m

                [40mView (ael r) -[0m
                        [40mView the reviewers for the branch[0m

                [40mRemove (aerrv) -[0m
                        [40mRemove a reviewer for the branch[0m

            [40mIntegrators:[0m

                [40mAdd (aeni) -[0m
                        [40mAdd an integrator for the branch[0m

                [40mView (ael i) -[0m
                        [40mView the integrators for the branch[0m

                [40mRemove (aeri) -[0m
                        [40mRemove an integrator for the branch[0m

            [40mChange:[0m

                [40mAdd New Change (aenc) -[0m
                        [40mAdd a new change request[0m

                [40mNew Change Undo (aencu) -[0m
                        [40mUndo the addition of a change request[0m

                [40mEdit Change Attributes (aeca) -[0m
                        [40mModify the attributes of a change request[0m

                [40mView Changes (ael c) -[0m
                        [40mView the set of changes[0m

[1m[40mDEVELOPER MODE[0m
        [40mThis mode is used by developers.  When entering this mode, the Develop[0m
        [40mmenu will appear, but no others.  A change must be selected after[0m
        [40mwhich the other menus will appear.  If there is only one change[0m
        [40mawaiting development, this will be auto-selected.[0m

        [40mDevelop:[0m

            [40mView Changes (ael c) -[0m
                    [40mView all the change requests[0m

            [40mBegin Change (aedb) -[0m
                    [40mStart work on a new change[0m

            [40mContinue Change -[0m
                    [40mContinue work on a change in development[0m

            [40mView Differences (aediff) -[0m
                    [40mShow all the diffs for this change[0m

            [40mAbort Change (aedbu) -[0m
                    [40mAbort working on the change[0m

            [40mEnd Change (aede) -[0m
                    [40m(Attempt to) end working on the change[0m

            [40mResume Change (aedeu) -[0m
                    [40mResume work on a change awaiting review[0m

        [40mFile:[0m

            [40mEdit Files -[0m
                    [40mAllow files to be loaded into an editor[0m

            [40mAdd New File (aenf) -[0m
                    [40mAdd a new file to the project[0m

            [40mDiscard New File (aenfu) -[0m
                    [40mDiscard a newly added file[0m

            [40mRemove Existing File (aerm) -[0m
                    [40mDiscard a previously existing file[0m

            [40mRestore Existing File (aermu) -[0m
                    [40mUndo discard of a previously existing file[0m

            [40mChange Existing File (aecp) -[0m
                    [40mAllow an existing file to be edited[0m

            [40mUndo Changes to Existing File (aecpu) -[0m
                    [40mLose changes to an existing file[0m

        [40mBuild:[0m

            [40mBuild Project (aeb) -[0m
                    [40mAttempt to build the project[0m

        [40mTest:[0m

            [40mAdd New Test Script (aent) -[0m
                    [40mAdd a new test script to the project[0m

            [40mDiscard New Test Script (aentu) -[0m
                    [40mRemove a new test script[0m

            [40mRun New Tests (aet) -[0m
                    [40mRun the new tests[0m

            [40mRun Regression Tests (aet -reg) -[0m
                    [40mRun the old tests[0m

            [40mRun Baseline Test (aet -bl) -[0m
                    [40mRun the baseline test[0m

[1m[40mREVIEWER MODE[0m
        [40mIn this mode you are able to review changes.[0m

        [40mReview:[0m

            [40mView Changes (ael c) -[0m
                    [40mView all the changes[0m

            [40mBegin Review (aerb) -[0m
                    [40mStart reviewing a change[0m

            [40mAbort Review (aerbu) -[0m
                    [40mAbort reviewing a change[0m

            [40mPass (aerpass) -[0m
                    [40mPass a change review[0m

            [40mFail (aerfail) -[0m
                    [40mFail a change review[0m

            [40mUndo Pass (aerpu) -[0m
                    [40mUndo a previously passed review[0m

[1m[40mINTEGRATOR MODE[0m
        [40mIn this mode you can perform integration activities.[0m

        [40mIntegrate:[0m

            [40mView Changes (ael c) -[0m
                    [40mView all the changes[0m

            [40mStart Integration (aeib) -[0m
                    [40mStart integrating a change[0m

            [40mResume Integration -[0m
                    [40mResume an integration in progress[0m

            [40mCancel Integration (aeibu) -[0m
                    [40mCancel an integration[0m

            [40mView Differences (aediff) -[0m
                    [40mShow the file differences for the change[0m

            [40mBuild (aeb) -[0m
                    [40mBuild the project[0m

            [40mNew Tests (aet) -[0m
                    [40mRun the new tests[0m

            [40mBaseline Test (aet -bl) -[0m
                    [40mRun the baseline test[0m

            [40mRegression Test (aet -reg) -[0m
                    [40mRun the regression tests[0m

            [40mPass (aeipass) -[0m
                    [40mPass the integration[0m

            [40mFail (aeifail) -[0m
                    [40mFail the integration[0m

[1m[40mSEE ALSO[0m
        [4m[40mtkaeca[24m(1)[0m
                [40mGUI interface for the [4maeca[24m(1) command.[0m

        [4m[40mtkaenc[24m(1)[0m
                [40mGUI interface for the [4maenc[24m(1) command.[0m

        [4m[40mtkaepa[24m(1)[0m
                [40mGUI interface for the [4maepa[24m(1) command.[0m

[1m[40mCOPYRIGHT[0m
        [40mtkaegis version 4.24.3[0m
        [40mCopyright (C) 1995, 1999 Graham Wheeler[0m

[1m[40mAUTHOR[0m
        [40mGraham Wheeler <gram@cdsec.com>[0m
        [40mCitadel Data Security[0m



tkaenc(1)                                                            tkaenc(1)



[40m[1mNAME[0m
        [40mtkaenc - GUI interface for aenc, using TCL/TK[0m

[1m[40mSYNOPSIS[0m
        [1m[40mtkaenc[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4mtkaenc[24m command is used to provide a GUI interface to [4maenc[24m(1).  Its[0m
        [40muse should be self-evident to anyone familiar with Aegis.[0m

        [40mThe top line of the screen contains button for selecting the project.[0m
        [40mIt will be defaulted using the usual Aegis defaulting rules.  Click on[0m
        [40mthe buttons to obtain a pick list if you want to change it; then[0m
        [40mdouble-click an item to select it.  (I would have used tk_optionMenu,[0m
        [40mbut it doesn't have a scroll bar, even when all the items don't fit on[0m
        [40mthe screen.)[0m

        [40mThe middle section contains text entry areas, for editing the[0m
        [4m[40mbrief_description[24m and [4mdescription[24m fields of the change attributes.[0m
        [40mThe text wraps in a natural way, both here and in (say) the "[4mtkaenc[0m
        [4m[40m-list[24m [4mchange_details[24m" listing, so only use newlines to indicate end-[0m
        [40mof-paragraph.[0m

        [40mThe lower section contains three boxes.  The first is the testing[0m
        [40mrequired for the change - select as many or as few as is appropriate.[0m
        [40mThe second a set of radio buttons to select the change cause - pick[0m
        [40mone.[0m

        [40mThe third box is whether to begin development immediately (it will[0m
        [40malso run the [4maedb[24m(1) command), or whether to leave the change in[0m
        [4m[40mawaiting[24m [4mdevelopment[24m.[0m

        [40mThe "OK" and "Cancel" buttons do what you expect.  The cancel button[0m
        [40msimply quits.  The OK button runs the [4maenc[24m(1) command - if anything[0m
        [40mgoes wrong ([4me.g.[24m asking for testing exemptions you can't have) then[0m
        [40mthe error message will be displayed in the message area at the bottom[0m
        [40mof the window.[0m

        [40mThe number of the change will be printed on a message on the standard[0m
        [40moutput, just as for a normal [4maenc[24m(1) command.[0m

[1m[40mOPTIONS[0m
        [40mThere are no command line options.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4mtkaenc[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40mtkaenc[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maenc[24m(1) Create new changes from the command line.[0m

        [4m[40maedb[24m(1) Begin development of changes from the command line.[0m

        [4m[40mtkaegis[24m(1)[0m
                [40mGUI interface for Aegis, using TCL/TK[0m

[1m[40mCOPYRIGHT[0m
        [40mtkaenc version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe tkaenc program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4mtkaenc[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4mtkaenc[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



tkaepa(1)                                                            tkaepa(1)



[40m[1mNAME[0m
        [40mtkaepa - GUI interface for aeca, using TCL/TK[0m

[1m[40mSYNOPSIS[0m
        [1m[40mtkaepa[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4mtkaepa[24m command is used to provide a GUI interface to [4maepa[24m(1).  Its[0m
        [40muse should be self-evident to anyone familiar with project[0m
        [40madministration under Aegis.[0m

        [40mThe top line of the screen contains button for selecting the project[0m
        [40mThe project will be defaulted whenever possible, using the usual[0m
        [40mAegis.  defaulting rules.  Click on the buttons to obtain a pick list[0m
        [40mif you want to change; then double-click an item to select it.[0m

        [40mThere is a text entry areas for editing the [4mdescription[24m attribute.[0m
        [40mThe lower section contains a number of checks boxes for the various[0m
        [40mattributes.[0m

        [40mThe "OK" and "Cancel" buttons do what you expect.  The cancel button[0m
        [40msimply quits.  The OK button runs the [4maepa[24m(1) command - if anything[0m
        [40mgoes wrong the error message will be displayed in the message area at[0m
        [40mthe bottom of the window.[0m

[1m[40mOPTIONS[0m
        [40mThere are no command line options.  It is best to run this command in[0m
        [40mthe background.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4mtkaepa[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40mtkaepa[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maepa[24m(1) View and edit project attributes, from the command line.[0m

        [4m[40mtkaegis[24m(1)[0m
                [40mGUI interface for Aegis, using TCL/TK[0m

[1m[40mCOPYRIGHT[0m
        [40mtkaepa version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe tkaepa program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4mtkaepa[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4mtkaepa[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



tkaer(1)                                                              tkaer(1)



[40m[1mNAME[0m
        [40mtkaer - GUI tool for reviewing Aegis change sets, using TCL/TK[0m

[1m[40mSYNOPSIS[0m
        [1m[40mtkaer[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4mtkaer[24m command is used to provide an easy and convenient way to[0m
        [40mreview Aegis change sets. It provides a front-end to other tools which[0m
        [40mare used to view the modifications.[0m

        [40mFiles in the change set are shown in one of four lists. The choice of[0m
        [40mlist is based on the operation performed on the file by the change[0m
        [40m(create, modify, move or remove). Empty lists are not shown. The[0m
        [40mchange details, as provided by [4mael[24m(1) may be displayed by clicking on[0m
        [40mthe "Details" button.[0m

[1m[40mMODIFIED AND MOVED FILES[0m
        [4m[40mtkdiff[24m is used to show the differenceces between the change and[0m
        [40mbaseline versions of modified and moved files. (In the case of moved[0m
        [40mfiles, the original name is used to access the baseline version.)[0m

        [40mDouble-clicking button 1 on a filename (or pressing the space key when[0m
        [40mthe filename is highlighted) will show the differences between the[0m
        [40mchange and the current branch baseline. Holding down button 3 (or[0m
        [40mpressing the "a" key) will invoke a pop-up menu presenting the[0m
        [40mreviewer with a list of grandparent branches which also contain the[0m
        [40mfile. This is particularly useful when rolling in branches.[0m

[1m[40mNEW AND REMOVED FILES[0m
        [40mNew files are viewed by opening a new [4mxterm[24m and using [4mvi[24m (in read-only[0m
        [40mmode) to display its contents. This method is also used for removed[0m
        [40mfiles, however it is the baseline version that is displayed (so that[0m
        [40mthe reviewer can see what has been removed).[0m

[1m[40mADDITIONAL FEATURES FOR REVIEWERS.[0m
        [40mIf the change is in the [4mbeing[24m [4mreviewed[24m state, the reviewer may open[0m
        [40mthe comments editor by clicking on the "Comments" button. These[0m
        [40mcomments will be submitted should the reviewer decide that the review[0m
        [40mhas failed. An outline of the files included in the change is[0m
        [40mautomatically created.[0m

        [40mOnce the review is complete, clicking the "Finished" button results in[0m
        [40ma dialog box which will allow the reviewer to pass or fail (via the[0m
        [4m[40maerpass[24m(1) and [4maerfail[24m(1) commands) the change. Alternatively, the[0m
        [40mreviewer may resume reviewing or quit, leaving the change state[0m
        [40munmodified. If the change was not in the [4mbeing[24m [4mreviewed[24m state, the[0m
        [40m"Finished" button simply causes [4mtkaer[24m to exit.[0m

[1m[40mCONFIGURING TKAER[0m
        [4m[40mtkaer[24m may be customised by the .tkaer file. This file is created by[0m
        [4m[40mtkaer[24m in the users home directory when it is first run. This newly[0m
        [40mcreated file contains the default configuration as described above,[0m
        [40msuch as the choice of tools used in reviewing. The configuration file[0m
        [40mitself is a tcl script which is executed by the [4mtkaer[24m script using the[0m
        [4m[40mtcl[24m "source" command. Each entry takes the form of a "set" statement[0m
        [40mwhich adds an item to the pref array.  Items currently supported are:[0m


        [1m[40mpref(diff_command)[0m
                [40mThis is the tool used to visually display the difference[0m
                [40mbetween a changes modified or moved file and the baseline[0m
                [40mversion.  The default setting is[0m
                [40mset pref(diff_command) "tkdiff"[0m
        [40mYou can change it to[0m
                [40mset pref(diff_command) "mgdiff"[0m
        [40mIf you have the [4mmgdiff[24m(1) command installed.[0m

        [1m[40mpref(view_command)[0m
                [40mThis is the tool used to visually display a new file or a[0m
                [40mremoved files, prior contents. The default is [4mvi[24m(1)[0m

        [1m[40mpref(view_edit_font)[0m
                [40mThis is the font used by both the change details viewer and[0m
                [40mthe review comments editor. Any available X11 font may be[0m
                [40mused.[0m


[1m[40mOPTIONS[0m
        [1m[40m-Change [4m[22mnumber[0m
                [40mThis option may be used to specify a particular change within[0m
                [40ma project.  See [4maegis[24m(1) for a complete description of this[0m
                [40moption.[0m

        [1m[40m-Project [4m[22mname[0m
                [40mThis option may be used to select the project of interest.[0m
                [40mWhen no [1m-Project [22moption is specified, the [4mAEGIS_PROJECT[0m
                [40menvironment variable is consulted.  If that does not exist,[0m
                [40mthe user's [4m$HOME/.aegisrc[24m file is examined for a default[0m
                [40mproject field (see [4maeuconf[24m(5) for more information).  If that[0m
                [40mdoes not exist, when the user is only working on changes[0m
                [40mwithin a single project, the project name defaults to that[0m
                [40mproject.  Otherwise, it is an error.[0m

[1m[40mEXIT STATUS[0m
        [40mThe [4mtkaer[24m command will exit with a status of 1 on any error.  The[0m
        [4m[40mtkaer[24m command will only exit with a status of 0 if there are no[0m
        [40merrors.[0m

[1m[40mENVIRONMENT VARIABLES[0m
        [40mSee [4maegis[24m(1) for a list of environment variables which may affect this[0m
        [40mcommand.  See [4maepconf[24m(5) for the project configuration file's[0m
        [4m[40mproject_specific[24m field for how to set environment variables for all[0m
        [40mcommands executed by Aegis.[0m

[1m[40mSEE ALSO[0m
        [4m[40maerpass[24m(1)[0m
                [40mpass review of a change[0m

        [4m[40maerfail[24m(1)[0m
                [40mfail review of a change[0m

        [4m[40mtkaegis[24m(1)[0m
                [40mGUI interface for Aegis, using TCL/TK[0m

        [4m[40mtkdiff[24m  by John M. Klassa. TkDiff Home Page[0m
                [40mhttp://www.accurev.com/free/tkdiff[0m

[1m[40mAUTHOR[0m
        [4m[40mtkaer[24m contributed by Scott Finneran <sfinneran@lucent.com>[0m



aecattr(5)                                                          aecattr(5)



[40m[1mNAME[0m
        [40maecattr - aegis change attributes file[0m

[1m[40mDESCRIPTION[0m
        [40mA change attributes file is used to describe the modifiable portion of[0m
        [40ma change.[0m

[1m[40mCONTENTS[0m
        [40mA change attributes file contains the following fields:[0m

        [40mdescription = string;[0m
                [40mThis field contains a detailed description of the change.[0m

        [40mbrief_description = string;[0m
                [40mThis field contains a brief description of the change.[0m

        [40mcause = ( ... );[0m
                [40mThis field describes the cause which motivated the change.[0m

                [40mexternal_bug[0m
                        [40mThe change was created in response to a bug report[0m
                        [40mfrom outside the development team.  This repairs[0m
                        [40mexisting functionality.[0m

                [40mexternal_enhancement[0m
                        [40mThe change was created in response to an enhancement[0m
                        [40mrequest from outside the development team.  This adds[0m
                        [40mnew functionality.[0m

                [40mexternal_improvement[0m
                        [40mThe change was created in response to an improvement[0m
                        [40mrequest from outside the development team.  This[0m
                        [40mimproves existing functionality.[0m

                [40minternal_bug[0m
                        [40mThe change was created in response to a bug report[0m
                        [40mfrom inside the development team.  This repairs[0m
                        [40mexisting functionality.[0m

                [40minternal_enhancement[0m
                        [40mThe change was created in response to an enhancement[0m
                        [40mrequest from inside the development team.  This adds[0m
                        [40mnew functionality.[0m

                [40minternal_improvement[0m
                        [40mThe change was created in response to an improvement[0m
                        [40mrequest from inside the development team.  This[0m
                        [40mimproves existing functionality.[0m

                [40mchain[0m
                        [40mThis cause is where you have a fix to fix a fix;[0m
                        [40mtracking these is an interesting quality metric.[0m

        [40mtest_exempt = boolean;[0m
                [40mThis field is true if it is not necessary to test the change.[0m
                [40mIt is, in general, desirable to test all changes, whether new[0m
                [40mfunctionality or a bug fix.  This is, however, a project[0m
                [40mmanagement issue.[0m

        [40mtest_baseline_exempt = boolean;[0m
                [40mThis field is true if it is not necessary to test the change[0m
                [40magainst the baseline before it is changed.  The test of the[0m
                [40mbaseline is required to fail; this is to establish that the[0m
                [40mtest has isolated the bug, and that the change has fixed that[0m
                [40misolated bug.[0m

        [40mregression_test_exempt = boolean;[0m
                [40mThis field is true if it is not necessary to perform a full[0m
                [40mregression test on the change.  If absent, defaults to true[0m
                [40mfor all causes except improvements.[0m

        [40marchitecture = [ string ];[0m
                [40mThis field is a list of names of system and machine[0m
                [40marchitectures on which the change must successfully build and[0m
                [40mtest.[0m

        [40mcopyright_years = [ integer ];[0m
                [40mThis field details the years in which the change was worked[0m
                [40mon.  This field is present in trunk, branch and leaf nodes.[0m

                [40mAs a change is edited, years in which the change was worked on[0m
                [40maccumulate in this field automatically.  Branches accumulate[0m
                [40myears as integrations occur.  You may need to manually edit[0m
                [40mthis, though it should be rare.[0m

        [40mversion_previous = string;[0m
                [40mThis field records the "previous" version, mostly to simplify[0m
                [40mpatch generation.  It is only meaningful for trunks and[0m
                [40mbranches.  It is set automatically when a branch is started or[0m
                [40mintegrated.[0m

        [40mattribute = [ { ... } ];[0m
                [40mThis is a list of [4m(name,value)[24m pairs, defining user specified[0m
                [40mattributes.[0m

                [40mname = string;[0m
                        [40mThe name of the attribute.  By convention, names which[0m
                        [40mstart with an upper-case letter will appear in[0m
                        [40mlistings, and lower-case will not.  Attribute names[0m
                        [40mare case-insensitive.[0m

                [40mvalue = string;[0m
                        [40mThe value of the attribute.[0m

                [40mArguably, most change attributes which may be altered by the[0m
                [40muser (and some that can't) should be of this form.  Due to an[0m
                [40maccident of history, this is not the case.[0m

[1m[40mSEE ALSO[0m
        [4m[40maenc[24m(1) create a new change[0m

        [4m[40maeca[24m(1) modify the attributes of a change[0m

        [4m[40maegis[24m(5)[0m
                [40maegis file format syntax[0m

        [4m[40maecstate[24m(5)[0m
                [40mchange state file format[0m

        [4m[40maepattr[24m(5)[0m
                [40mproject attributes file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aecstate(5)                                                        aecstate(5)



[40m[1mNAME[0m
        [40maecstate - aegis change state file[0m

[1m[40mSYNOPSIS[0m
        [4m[40mproject[24m/info/change/[4m[0-9][24m/[4m[0-9][0-9][0-9][0m

[1m[40mDESCRIPTION[0m
        [40mA change state file is used to store information about a change.[0m
        [40mThese files are created and maintained by aegis.  These files should[0m
        [40mnot be edited by humans.  These files is owned by the project owner[0m
        [40mand group.[0m

        [40mThe change number is at least 3 digits, zero padded if necessary.[0m
        [40m(More digits will be used if a project has a thousand or more changes[0m
        [40min any one release, although this is rare.)  The files are spread[0m
        [40macross a directory tree, 100 per subdirectory, to improve the[0m
        [40mdirectory search times, and to avoid various systems' directory length[0m
        [40mlimitations.[0m

[1m[40mCONTENTS[0m
        [40mdescription = string;[0m
                [40mThis field contains a detailed description of the change.[0m

        [40mbrief_description = string;[0m
                [40mThis field contains a brief description of the change.[0m

        [40mcause = ( ... );[0m
                [40mThis field describes the cause which motivated the change.[0m

                [40mexternal_bug[0m
                        [40mThe change was created in response to a bug report[0m
                        [40mfrom outside the development team.  This repairs[0m
                        [40mexisting functionality.[0m

                [40mexternal_enhancement[0m
                        [40mThe change was created in response to an enhancement[0m
                        [40mrequest from outside the development team.  This adds[0m
                        [40mnew functionality.[0m

                [40mexternal_improvement[0m
                        [40mThe change was created in response to an improvement[0m
                        [40mrequest from outside the development team.  This[0m
                        [40mimproves existing functionality.[0m

                [40minternal_bug[0m
                        [40mThe change was created in response to a bug report[0m
                        [40mfrom inside the development team.  This repairs[0m
                        [40mexisting functionality.[0m

                [40minternal_enhancement[0m
                        [40mThe change was created in response to an enhancement[0m
                        [40mrequest from inside the development team.  This adds[0m
                        [40mnew functionality.[0m

                [40minternal_improvement[0m
                        [40mThe change was created in response to an improvement[0m
                        [40mrequest from inside the development team.  This[0m
                        [40mimproves existing functionality.[0m

                [40mchain[0m
                        [40mThis cause is where you have a fix to fix a fix;[0m
                        [40mtracking these is an interesting quality metric.[0m

        [40mtest_exempt = boolean;[0m
                [40mThis field is true if it is not necessary to test the change.[0m
                [40mIt is, in general, desirable to test all changes, whether new[0m
                [40mfunctionality or a bug fix.  This is, however, a project[0m
                [40mmanagement issue.[0m

        [40mtest_baseline_exempt = boolean;[0m
                [40mThis field is true if it is not necessary to test the change[0m
                [40magainst the baseline before it is changed.  The test of the[0m
                [40mbaseline is required to fail; this is to establish that the[0m
                [40mtest has isolated the bug, and that the change has fixed that[0m
                [40misolated bug.[0m

        [40mregression_test_exempt = boolean;[0m
                [40mThis field is true if it is not necessary to perform a full[0m
                [40mregression test on the change.  If absent, defaults to true[0m
                [40mfor all causes except improvements.[0m

        [40marchitecture = [ string ];[0m
                [40mThis field is a list of names of system and machine[0m
                [40marchitectures on which the change must successfully build and[0m
                [40mtest.[0m

        [40mcopyright_years = [ integer ];[0m
                [40mThis field details the years in which the change was worked[0m
                [40mon.  This field is present in trunk, branch and leaf nodes.[0m

                [40mAs a change is edited, years in which the change was worked on[0m
                [40maccumulate in this field automatically.  Branches accumulate[0m
                [40myears as integrations occur.  You may need to manually edit[0m
                [40mthis, though it should be rare.[0m

        [40mversion_previous = string;[0m
                [40mThis field records the "previous" version, mostly to simplify[0m
                [40mpatch generation.  It is only meaningful for trunks and[0m
                [40mbranches.  It is set automatically when a branch is started or[0m
                [40mintegrated.[0m

        [40mattribute = [ { ... } ];[0m
                [40mThis is a list of [4m(name,value)[24m pairs, defining user specified[0m
                [40mattributes.[0m

                [40mname = string;[0m
                        [40mThe name of the attribute.  By convention, names which[0m
                        [40mstart with an upper-case letter will appear in[0m
                        [40mlistings, and lower-case will not.  Attribute names[0m
                        [40mare case-insensitive.[0m

                [40mvalue = string;[0m
                        [40mThe value of the attribute.[0m

                [40mArguably, most change attributes which may be altered by the[0m
                [40muser (and some that can't) should be of this form.  Due to an[0m
                [40maccident of history, this is not the case.[0m

        [40mstate = ( ... );[0m
                [40mThis field is used to describe what state the change is in.[0m
                [40mThe state determines what operations may be performed on the[0m
                [40mchange.[0m

                [40mawaiting_development[0m
                        [40mThe change has been created, but has yet to be worked[0m
                        [40mon.[0m

                [40mbeing_developed[0m
                        [40mThe change is being developed.[0m

                [40mawaiting_review[0m
                        [40mThe change has been developed, and is waiting to be[0m
                        [40mreview.  (Optional, controlled by the [4mdevelop[24m [4mend[0m
                        [4m[40maction[24m project attribute.)[0m

                [40mbeing_reviewed[0m
                        [40mThe change has been developed, and is being reviewed.[0m
                        [40m(Optional, controlled by the [4mdevelop[24m [4mend[24m [4maction[0m
                        [40mproject attribute.)[0m

                [40mawaiting_integration[0m
                        [40mThe change has passed review, and is queued ready for[0m
                        [40mintegration.[0m

                [40mbeing_integrated[0m
                        [40mThe change is being integrated.[0m

                [40mcompleted[0m
                        [40mThe change has been completed and is now part of the[0m
                        [40mbaseline.  Changes in this state can not be reversed.[0m

        [40mgiven_test_exemption = boolean;[0m
                [40mThis field is the value of test_exemption (see [4maecattr[24m(5))[0m
                [40mwhen the change was created.[0m

        [40mgiven_regression_test_exemption = boolean;[0m
                [40mThis field is the value of regression_test_exemption (see[0m
                [4m[40maecattr[24m(5)) when the change was created.[0m

        [40mdelta_number = integer;[0m
                [40mThis field records the delta number for this change.  It is[0m
                [40monly present if the change is in one of the [4mbeing_integrated[0m
                [40mor [4mcompleted[24m states.[0m

        [40mdelta_uuid = string;[0m
                [40mThis field records a universally unique identifier for this[0m
                [40mconfiguration.  It is supplements the [4mdelta_number[24m field in[0m
                [40mthat it is unique across all replicas of the project, whereas[0m
                [40mthe delta number is ambiguous across replicas.  It is only[0m
                [40mpresent in the [4mbeing_integrated[24m and [4mcompleted[24m states.[0m

        [40mminimum_integration = boolean;[0m
                [40mThis field records whether the change was placed into the[0m
                [4m[40mbeing_integrated[24m state using the -minimum option (or that[0m
                [40moption was implicitly set due to a file being removed).  It is[0m
                [40monly present if the change is in the [4mbeing_integrated[24m state.[0m

        [40mproject_file_command_sync = integer;[0m
                [40mThis field records the last change integrated into the[0m
                [40mproject.  If it disagrees with the project, a[0m
                [40m'project_file_command' (from pconf) needs to be executed at[0m
                [40mthe next build.[0m

        [40mtest_time = time;[0m
                [40mThis field records the time the last successful [4maegis[24m [4m-Test[0m
                [40mcommand was run for all architectures.  It is only present in[0m
                [40mthe [4mbeing_developed[24m and [4mbeing_integrated[24m states.[0m

        [40mtest_baseline_time = time;[0m
                [40mThis field records the time the last successful [4maegis[24m [4m-Test[0m
                [4m[40m-BaseLine[24m command was run for all architectures.  It is only[0m
                [40mpresent in the [4mbeing_developed[24m and [4mbeing_integrated[24m states.[0m

        [40mregression_test_time = time;[0m
                [40mThis field records the time the last successful [4maegis[24m [4m-Test[0m
                [4m[40m-REGression[24m command was run for all architectures.  It is only[0m
                [40mpresent in the [4mbeing_developed[24m and [4mbeing_integrated[24m states.[0m

        [40mbuild_time = time;[0m
                [40mThis field records the last time the last successful [4maegis[0m
                [4m[40m-Build[24m command was run for all architectures.  It is only[0m
                [40mpresent in the [4mbeing_developed[24m and [4mbeing_integrated[24m states.[0m

        [40marchitecture_times = [{ ... }];[0m
                [40mThis field records the time of various operations for each[0m
                [40mvariant named in the [4marchitecture[24m field.  It is only present[0m
                [40min the [4mbeing_developed[24m and [4mbeing_integrated[24m states.[0m

                [40mvariant = string;[0m
                        [40mThis field is one of the patterns named in the[0m
                        [4m[40marchitecture[24m field.[0m

                [40mnode = string;[0m
                        [40mThis field is the computer on which the command was[0m
                        [40mrun which last changed this structure.[0m

                [40mtest_time = time;[0m
                        [40mThis field records the last time the last successful[0m
                        [4m[40maegis[24m [4m-Test[24m command was run for this specific pattern[0m
                        [40minstance.[0m

                [40mtest_baseline_time = time;[0m
                        [40mThis field records the last time the last successful[0m
                        [4m[40maegis[24m [4m-Test[24m [4m-BaseLine[24m command was run for this[0m
                        [40mspecific pattern instance.[0m

                [40mregression_test_time = time;[0m
                        [40mThis field records the last time the last successful[0m
                        [4m[40maegis[24m [4m-Test[24m [4m-REGression[24m command was run for this[0m
                        [40mspecific pattern instance.[0m

                [40mbuild_time = time;[0m
                        [40mThis field records the last time the last successful[0m
                        [4m[40maegis[24m [4m-Build[24m command was run for this specific pattern[0m
                        [40minstance.[0m

        [40mdevelopment_directory = string;[0m
                [40mThis field is the absolute path of a change's development[0m
                [40mdirectory.  It is only present of the change is in a state[0m
                [40mbetween [4mbeing_developed[24m and [4mbeing_integrated[24m inclusive.[0m

                [40mHowever, branches are treated slightly differently to changes.[0m
                [40mThe directory is relative to the root of the project tree, in[0m
                [40morder to facilitate moving the project without rewriting any[0m
                [40mof the database.  Note that its doesn't point to the branch[0m
                [40mbaseline, but one level up; just as the project root doesn't[0m
                [40mpoint to the trunk baseline, but rather one level up.[0m

        [40mintegration_directory = string;[0m
                [40mThis field is the absolute path of the change's integration[0m
                [40mdirectory.  It is only present of the change is in the[0m
                [4m[40mbeing_integrated[24m state.[0m

        [40mhistory = [ { ... }, ... ];[0m
                [40mThis field records the history of the change, in the form of[0m
                [40mstate transitions.  The history records have the form[0m

                [40mwhen = time;[0m
                        [40mThis field records the time the state transition[0m
                        [40moccurred.[0m

                [40mwhat = ( ... );[0m
                        [40mThis field records what happened.  Valid value names[0m
                        [40mecho the various aegis functions.[0m

                [40mwho = string;[0m
                        [40mThis field records the user name of the user who[0m
                        [40mcaused the state transition.[0m

                [40mwhy = string;[0m
                        [40mThis field is optional.  It is a comment of some sort.[0m
                        [40mIn the cases of [4mreview_fail[24m and [4mintegrate_fail[24m, this[0m
                        [40mfield will contain why the change failed.[0m

        [40muuid = string;[0m
                [40mThis field provides a globally unique identifier for the[0m
                [40mchange set, even when geographically distributed development[0m
                [40mis happening.[0m

        [40mbranch = { ... };[0m
                [40mThis field is only present for branches (long transactions).[0m

                [40mumask = integer;[0m
                        [40mFile permission mode mask.  See [4mumask[24m(2) for more[0m
                        [40minformation.  This value will always be OR'ed with[0m
                        [40m022, because [4maegis[24m is paranoid.[0m

                [40mdeveloper_may_review = boolean;[0m
                        [40mIf this field is true, then a developer may review her[0m
                        [40mown change.  This is probably only a good idea for[0m
                        [40mprojects of less than 3 people.  The idea is for as[0m
                        [40mmany people as possible to critically examine a[0m
                        [40mchange.[0m

                        [40mNote that the [4mdevelop_end_action[24m field may not[0m
                        [40mcontradict the [4mdeveloper_may_review[24m field.  If[0m
                        [40mdevelopers may not review their own work, then their[0m
                        [40mchanges may not goto directly to the [4mbeing[24m [4mintegrated[0m
                        [40mstate (as this means much the same thing).[0m

                [40mdeveloper_may_integrate = boolean;[0m
                        [40mIf this field is true, then a developer may integrate[0m
                        [40mher own change.  This is probably only a good idea for[0m
                        [40mprojects of less than 3 people.  The idea is for as[0m
                        [40mmany people as possible to critically examine a[0m
                        [40mchange.[0m

                [40mreviewer_may_integrate = boolean;[0m
                        [40mIf this field is true, then a reviewer may integrate a[0m
                        [40mchange she reviewed.  This is probably only a good[0m
                        [40midea for projects of less than 3 people.  The idea is[0m
                        [40mfor as many people as possible to critically examine a[0m
                        [40mchange.[0m

                [40mdevelopers_may_create_changes = boolean;[0m
                        [40mThis field is true if developers may created changes,[0m
                        [40min addition to administrators.  This tends to be a[0m
                        [40mvery useful thing, since developers find most of the[0m
                        [40mbugs.[0m

                [40mforced_develop_begin_notify_command = string;[0m
                        [40mThis command is used to notify a developer that a[0m
                        [40mchange requires developing; it is issued when a[0m
                        [40mproject administrator uses an [4maedb[24m [4m-User[24m command to[0m
                        [40mforce development of a change by a specific user.  All[0m
                        [40mof the substitutions described in [4maesub[24m(5) are[0m
                        [40mavailable.  This field is optional.[0m

                        [40mExecuted as: the new developer.  Current directory:[0m
                        [40mthe development directory of the change for the new[0m
                        [40mdeveloper.  Exit status: ignored.[0m

                [40mdevelop_end_notify_command = string;[0m
                        [40mThis command is used to notify that a change is ready[0m
                        [40mfor review.  It will probably use mail, or it could be[0m
                        [40man in-house bulletin board.  This field is optional,[0m
                        [40mif not present no notification will be given.  This[0m
                        [40mcommand could also be used to notify other management[0m
                        [40msystems, such as progress and defect tracking.  All of[0m
                        [40mthe substitutions described by [4maesub[24m(5) are available.[0m

                        [40mExecuted as: the developer.  Current directory: the[0m
                        [40mdevelopment directory of the change.  Exit status:[0m
                        [40mignored.[0m

                [40mdevelop_end_undo_notify_command = string;[0m
                        [40mThis command is used to notify that a change had been[0m
                        [40mwithdrawn from review for further development.  It[0m
                        [40mwill probably use mail, or it could be an in-house[0m
                        [40mbulletin board.  This field is optional, if not[0m
                        [40mpresent no notification will be given.  This command[0m
                        [40mcould also be used to notify other management systems,[0m
                        [40msuch as progress and defect tracking.  All of the[0m
                        [40msubstitutions described by [4maesub[24m(5) are available.[0m

                        [40mExecuted as: the developer.  Current directory: the[0m
                        [40mdevelopment directory of the change.  Exit status:[0m
                        [40mignored.[0m

                [40mreview_begin_notify_command = string;[0m
                        [40mThis command is used to notify that a review has[0m
                        [40mbegun.  It will probably use mail, or it could be an[0m
                        [40min-house bulletin board.  This field is optional, if[0m
                        [40mnot present no notification will be given.  This[0m
                        [40mcommand could also be used to notify other management[0m
                        [40msystems, such as progress and defect tracking.  All of[0m
                        [40mthe substitutions described by [4maesub[24m(5) are available.[0m

                        [40mExecuted as: the reviewer.  Current directory: the[0m
                        [40mdevelopment directory of the change.  Exit status:[0m
                        [40mignored.[0m

                [40mreview_begin_undo_notify_command = string;[0m
                        [40mThis command is used to notify that a review is no[0m
                        [40mlonger in progress, the reviewer has withdrawn.  It[0m
                        [40mwill probably use mail, or it could be an in-house[0m
                        [40mbulletin board.  This field is optional, if not[0m
                        [40mpresent no notification will be given.  This command[0m
                        [40mcould also be used to notify other management systems,[0m
                        [40msuch as progress and defect tracking.  All of the[0m
                        [40msubstitutions described by [4maesub[24m(5) are available.[0m

                        [40mExecuted as: the reviewer.  Current directory: the[0m
                        [40mdevelopment directory of the change.  Exit status:[0m
                        [40mignored.[0m

                [40mreview_pass_notify_command = string;[0m
                        [40mThis command is used to notify that a review has[0m
                        [40mpassed.  It will probably use mail, or it could be an[0m
                        [40min-house bulletin board.  This field is optional, if[0m
                        [40mnot present no notification will be given.  This[0m
                        [40mcommand could also be used to notify other management[0m
                        [40msystems, such as progress and defect tracking.  All of[0m
                        [40mthe substitutions described by [4maesub[24m(5) are available.[0m

                        [40mExecuted as: the reviewer.  Current directory: the[0m
                        [40mdevelopment directory of the change.  Exit status:[0m
                        [40mignored.[0m

                [40mreview_pass_undo_notify_command = string;[0m
                        [40mThis command is used to notify that a review has[0m
                        [40mpassed.  It will probably use mail, or it could be an[0m
                        [40min-house bulletin board.  This field is optional, if[0m
                        [40mnot present no notification will be given.  This[0m
                        [40mcommand could also be used to notify other management[0m
                        [40msystems, such as progress and defect tracking.[0m
                        [40mDefaults to the same action as the[0m
                        [4m[40mdevelop_end_notify_command[24m field.  All of the[0m
                        [40msubstitutions described by [4maesub[24m(5) are available.[0m

                        [40mExecuted as: the reviewer.  Current directory: the[0m
                        [40mdevelopment directory of the change.  Exit status:[0m
                        [40mignored.[0m

                [40mreview_fail_notify_command = string;[0m
                        [40mThis command is used to notify that a review has[0m
                        [40mfailed.  It will probably use mail, or it could be an[0m
                        [40min-house bulletin board.  This field is optional, if[0m
                        [40mnot present no notification will be given.  This[0m
                        [40mcommand could also be used to notify other management[0m
                        [40msystems, such as progress and defect tracking.  All of[0m
                        [40mthe substitutions described by [4maesub[24m(5) are available.[0m

                        [40mExecuted as: the reviewer.  Current directory: the[0m
                        [40mdevelopment directory of the change.  Exit status:[0m
                        [40mignored.[0m

                [40mintegrate_pass_notify_command = string;[0m
                        [40mThis command is used to notify that an integration has[0m
                        [40mpassed.  It will probably use mail, or it could be an[0m
                        [40min-house bulletin board.  This field is optional, if[0m
                        [40mnot present no notification will be given.  This[0m
                        [40mcommand could also be used to notify other management[0m
                        [40msystems, such as progress and defect tracking.  All of[0m
                        [40mthe substitutions described by [4maesub[24m(5) are available.[0m

                        [40mSome compilers bury absolute path names into object[0m
                        [40mfiles and executables.  The renaming of the[0m
                        [40mintegration directory to become the new baseline[0m
                        [40mbreaks these paths.  This command is passed an[0m
                        [40menvironment variable called AEGIS_INTEGRATION_-[0m
                        [40mDIRECTORY so that the appropriate symlink may be[0m
                        [40mplaced, if desired.[0m

                        [40mExecuted as: the project owner.  Current directory:[0m
                        [40mthe new project baseline.  Exit status: ignored.[0m

                [40mintegrate_fail_notify_command = string;[0m
                        [40mThis command is used to notify that an integration has[0m
                        [40mfailed.  It will probably use mail, or it could be an[0m
                        [40min-house bulletin board.  This field is optional, if[0m
                        [40mnot present no notification will be given.  This[0m
                        [40mcommand could also be used to notify other management[0m
                        [40msystems, such as progress and defect tracking.  All of[0m
                        [40mthe substitutions described by [4maesub[24m(5) are available.[0m

                        [40mExecuted as: the integrator.  Current directory: the[0m
                        [40mdevelopment directory of the change.  Exit status:[0m
                        [40mignored.[0m

                [40mdefault_test_exemption = boolean;[0m
                        [40mThis field contains what to do when a change is[0m
                        [40mcreated with no test exemption specified.[0m

                [40mdefault_test_regression_exemption = boolean;[0m
                        [40mThis field contains what to do when a change is[0m
                        [40mcreated with no regression test exemption specified.[0m

                [40mhistory = [{ ... }];[0m
                        [40mThis field contains a history of integrations for the[0m
                        [40mproject.  Updated by each successful 'aegis[0m
                        [40m-Integrate_Pass' command.[0m

                        [40mdelta_number = integer;[0m
                                [40mThe delta number of the integration.[0m

                        [40mchange_number = integer;[0m
                                [40mThe number of the change which was integrated.[0m

                        [40mname = [ string ];[0m
                                [40mThe names by which this delta is known.[0m

                [40mchange = [integer];[0m
                        [40mThe list of changes which have been created on this[0m
                        [40mbranch to date.[0m

                [40msub_branch = [integer];[0m
                        [40mThe list of branches which have been created on this[0m
                        [40mbranch to date.  This will be a subset of the above[0m
                        [40m(possibly empty, possibly complete, never larger).[0m

                [40madministrator = [string];[0m
                        [40mThe list of administrators of the branch.[0m

                [40mdeveloper = [string];[0m
                        [40mThe list of developers of the branch.[0m

                [40mreviewer = [string];[0m
                        [40mThe list of reviewers of the branch.[0m

                [40mintegrator = [string];[0m
                        [40mThe list of integrators of the branch.[0m

                [40mcurrently_integrating_change = integer;[0m
                        [40mThe change currently being integrated.  Only one[0m
                        [40mchange (within a branch) may be integrated at a time.[0m
                        [40mOnly set when an integration is in progress.[0m

                [40mdefault_development_directory = string;[0m
                        [40mThe pathname of where to place new development[0m
                        [40mdirectories.  The pathname must be absolute.  This[0m
                        [40mfield is only consulted if the field of the same name[0m
                        [40min the user configuration file is not set.[0m

                [40mminimum_change_number = integer;[0m
                        [40mThe minimum change number for [4maenc(1),[24m if no change[0m
                        [40mnumber is specified.  This allows the low-numbered[0m
                        [40mchange numbers to be used for branches later in the[0m
                        [40mproject.  Defaults to 10 if not set, may not be less[0m
                        [40mthan 1.[0m

                [40mreuse_change_numbers = boolean;[0m
                        [40mThis controls whether the automatically selected[0m
                        [4m[40maenc[24m(1) change numbers "fill in" any gaps.  Defaults[0m
                        [40mto true if not set.[0m

                [40mminimum_branch_number = integer;[0m
                        [40mThe minimum branch number for [4maenbr(1),[24m if no branch[0m
                        [40mnumber is specified.  Defaults to 1 if not set.[0m

                [40mskip_unlucky = boolean;[0m
                        [40mThis field may be set to true if you want to skip[0m
                        [40mvarious unlucky numbers for changes, branches and[0m
                        [40mtests.  Various traditions are avoided, both Eastern[0m
                        [40mand Western.  Defaults to false if not set.[0m

                [40mcompress_database = boolean;[0m
                        [40mThis field may be set to true if you want to compress[0m
                        [40mthe database on writing.  (It is always uncompress on[0m
                        [40mreading if necessary.)  Defaults to false if not set.[0m

                        [40mUnless you have an exceptionally large project,[0m
                        [40mcoupled with fast CPUs and high network latency, there[0m
                        [40mis probably very little benefit in using this feature.[0m
                        [40m(The database is usually less than 5% of the size of[0m
                        [40mthe repository.)  On slow networks, however, this can[0m
                        [40mimprove the performance of file-related commands.[0m

                [40mdevelop_end_action = (...);[0m
                        [40mThis field controls the state the change enters after[0m
                        [40ma successful [4maede[24m(1) action.[0m

                        [4m[40mgoto_being_reviewed[0m
                                [40mThis means that the change goes from the[0m
                                [4m[40mbeing_developed[24m state to the [4mbeing_reviewed[0m
                                [40mstate.  The [4maerb[24m(1) command only sends[0m
                                [40minformative email.[0m

                        [4m[40mgoto_awaiting_review[0m
                                [40mThis means that the change goes from the[0m
                                [4m[40mbeing_developed[24m state to the [4mawaiting_review[0m
                                [40mstate.  The [4maerb[24m(1) command is now mandatory.[0m

                        [4m[40mgoto_awaiting_integration[0m
                                [40mThis means that the change goes from the[0m
                                [4m[40mbeing_developed[24m state into the [4mawaiting_-[0m
                                [4m[40mintegration[24m state.  Code review is skipped[0m
                                [40mentirely.[0m

                        [40mNote that the [4mdevelop_end_action[24m field may not[0m
                        [40mcontradict the [4mdeveloper_may_review[24m field.  If[0m
                        [40mdevelopers may not review their own work, then their[0m
                        [40mchanges may not goto directly to the [4mbeing[24m [4mintegrated[0m
                        [40mstate (as this means much the same thing).  A[0m
                        [40mcontradictory setting will be replaced with [4mgoto_-[0m
                        [4m[40mbeing_reviewed[24m.[0m

   [1m[40mObsolete Fields[0m
        [40mThe following fields are only present is old projects.  They will be[0m
        [40mmoved to an appropriate file state when the change is next modified.[0m
        [40mSee [4maefstate[24m(5) for more information.[0m

        [40msrc = [ { ... }, ... ];[0m
                [40mThis field is a list of all the files in the change.  The[0m
                [40mrecords have the form[0m

                [40mfile_name = string;[0m
                        [40mThis file names the file.  The name is relative to the[0m
                        [40mroot of the baseline directory tree.[0m

                [40muuid = string;[0m
                        [40mThis field uniquely identifies the file for its entire[0m
                        [40mlifetime.  This field remains constant across file[0m
                        [40mrenames.  The value of this field shall be formatted[0m
                        [40mas a valid UUID, all in lower case.[0m

                [40maction = (create, modify, remove);[0m
                        [40mThis field describes what is being done with the file.[0m

                [40medit_number = string;[0m
                        [40mThis field records the edit number of the file when it[0m
                        [40mwas added to the change (or updated using the [4maegis[0m
                        [4m[40m-DIFFerence[24m command).  This field is not present for[0m
                        [40mnew files.[0m

                [40musage = (source, config, build, test, manual_test);[0m
                        [40mThis field describes what function the file serves.[0m

                [40mdiff_time = time;[0m
                        [40mThis field records the last time modified of the[0m
                        [40mchange file when the last [4maegis[24m [4m-DIFFerence[24m command[0m
                        [40mwas run.  It is only present between the[0m
                        [4m[40mbeing_developed[24m and [4mbeing_integrated[24m states,[0m
                        [40minclusive.  It is not present for files which are[0m
                        [40mbeing deleted.  This field is used to determine if a[0m
                        [40mdifference has been done, and if the file has been[0m
                        [40mtampered with before state transitions.[0m

                [40mdiff_file_time = time;[0m
                        [40mThis field records the last time modified of the[0m
                        [40mdifference file when the last [4maegis[24m [4m-DIFFerence[0m
                        [40mcommand was run.  It is only present between the[0m
                        [4m[40mbeing_developed[24m and [4mbeing_integrated[24m states,[0m
                        [40minclusive.  This field is used to determine if a[0m
                        [40mdifference has been done, and if the difference file[0m
                        [40mhas been tampered with before state transitions.[0m

                [40mmove = string;[0m
                        [40mTo change the name of a file, a combination of[0m
                        [40mdeleting the old name and creating the new name is[0m
                        [40mused.  With deleted files, this field is used to say[0m
                        [40mwhere it went.  With new files, this field is used to[0m
                        [40msay where it came from.[0m

[1m[40mWRITING REPORT SCRIPTS[0m
        [40mWhen attempting to access these fields from within the report[0m
        [40mgenerator, you need a code fragment similar to the following:[0m
                [40mauto ps;[0m
                [40mps = project[project_name()].state;[0m
                [40mauto cs;[0m
                [40mcs = ps.branch.change[change_number()];[0m
        [40mAll of the fields mentioned in the man page can now be accessed as[0m
        [40mmembers of the cs variable.  For example, cs.state contains the state[0m
        [40mthe change is in.[0m

        [40mIf this change state refers to a branch, when you access a member of[0m
        [40mthe [4mbranch.change[24m field, you are given access to the change state data[0m
        [40mof that change on the branch.[0m

        [40mWhen you index the [4msrc[24m field by a filename string, you may obtain[0m
        [40maccess the the relevant file state (see [4maefstate[24m(5) for more[0m
        [40minformation).[0m

[1m[40mSEE ALSO[0m
        [4m[40maenc[24m(1) create a new change[0m

        [4m[40maegis[24m(5)[0m
                [40maegis file format syntax[0m

        [4m[40maecattr[24m(5)[0m
                [40mchange attributes file format[0m

        [4m[40maefstate[24m(5)[0m
                [40mfile state file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aedir(5)                                                              aedir(5)



[40m[1mNAME[0m
        [40maedir - aegis directory structures[0m

[1m[40mDESCRIPTION[0m
        [40mThe project directory structure is dictated by [4maegis[24m at the top level,[0m
        [40mbut is completely under the project's control from various points[0m
        [40mbelow the top level.[0m

        [40mThe project directory has the following contents[0m
                [4m[40mproject[24m/[0m
                        [40mbaseline/[0m
                                [40maegis.conf[0m
                                [4m[40m...project[24m [4mspecific...[0m
                                [40mtest/[0m
                                        [4m[40m[0-9][0-9][24m/[0m
                                                [40mt[4m[0-9][0-9][0-9][0-9][24ma.sh[0m
                                                [40mt[4m[0-9][0-9][0-9][0-9][24mm.sh[0m
                        [40mhistory/[0m
                                [4m[40m...echo[24m [4mof[24m [4mbaseline...[0m
                        [40mdelta.[4m[0-9][0-9][0-9][24m/[0m
                                [4m[40m...echo[24m [4mof[24m [4mbaseline...[0m
                        [40minfo/[0m
                                [40mstate[0m
                                [40mchange/[0m
                                        [4m[40m[0-9][24m/[0m
                                                [4m[40m[0-9][0-9][0-9][0m

        [40mThe directory is structured in this way so that it is possible to pick[0m
        [40man entire project up off the disk, and be confident that you got it[0m
        [40mall.[0m

        [40mThe location of the root of this tree is configurable, and may even be[0m
        [40mchanged during the life of a project.[0m

        [40mThe contents of the [4mbaseline[24m subdirectory, other than those given, are[0m
        [40mdefined by the project, and not dictated by aegis.[0m

        [40mThe contents of the [4mdelta.NNN[24m directory, when it exists, are an image[0m
        [40mof the [4mbaseline[24m directory.  It is frequently linked with the baseline,[0m
        [40mrather than a copy of it; see the [4mlink_integration_directory[24m field[0m
        [40mdescription in [4maepconf[24m(5) for more information.[0m

        [40mThe contents of the [4mhistory[24m contains the edit histories of the[0m
        [4m[40mbaseline[24m directory, and is in all other ways an image of it.  Note[0m
        [40mthat [4mbaseline[24m always contains the latest source; the [4mhistory[24m directory[0m
        [40mis just history.  The actual files in the history directory tree will[0m
        [40mnot always have names the same as those in the baseline; compare the[0m
        [40mmethods used by SCCS and RCS.[0m

        [40mThe contents of the [4mbaseline/test[24m directory are the tests which are[0m
        [40mcreated by changes.  Test histories are also stored in the [4mhistory[0m
        [40msubdirectory.  Tests are treated as project source.[0m

        [40mThe edit histories are separated out to simplify the task of taking a[0m
        [40m"snapshot" of the source of a project, without airing all the dirty[0m
        [40mlaundry.[0m

        [40mThe [4mbaseline[24m directory always contains the latest source, and so the[0m
        [4m[40mhistory[24m directory need not be readily accessible, because the build[0m
        [40mmechanism (something like [4mmake[24m(1), but preferably better) does not[0m
        [40mneed to know anything about it.  Similarly for tests.[0m

        [40mThe [4mbaseline/aegis.conf[24m file is used to tell aegis everything else it[0m
        [40mneeds to know about a project.  See [4maepconf[24m(5) for more information.[0m
        [40mThis file  is a source file of the project, and is treated in the same[0m
        [40mway as all source files.  The name of this file is not mandatory.[0m

[1m[40mSEE ALSO[0m
        [4m[40maenc[24m(1) create a new change[0m

        [4m[40maenpr[24m(1)[0m
                [40mcreate a new project[0m

        [4m[40maegis[24m(5)[0m
                [40maegis file format syntax[0m

        [4m[40maepconf[24m(5)[0m
                [40mproject configuration file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aefattr(5)                                                          aefattr(5)



[40m[1mNAME[0m
        [40maefattr - aegis file attribute file format[0m

[1m[40mSYNOPSIS[0m
        [1m[40maefa -edit  [4m[22mfilename[0m

[1m[40mDESCRIPTION[0m
        [40mThis file format is used to set or edit file attributes.[0m

[1m[40mCONTENTS[0m
        [40mattribute = [ { ... } ];[0m
                [40mThis is a list of [4m(name,value)[24m pairs, defining user specified[0m
                [40mattributes.[0m

                [40mname = string;[0m
                        [40mThe name of the attribute.  By convention, names which[0m
                        [40mstart with an upper-case letter will appear in[0m
                        [40mlistings, and lower-case will not.[0m

                [40mvalue = string;[0m
                        [40mThe value of the attribute.[0m

[1m[40mSEE ALSO[0m
        [4m[40maegis[24m(5)[0m
                [40maegis file format syntax[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aefstate(5)                                                        aefstate(5)



[40m[1mNAME[0m
        [40maefstate - aegis file state file[0m

[1m[40mSYNOPSIS[0m
        [4m[40mproject[24m/info/change/[4m[0-9][24m/[4m[0-9][0-9][0-9][24m.fs[0m

[1m[40mDESCRIPTION[0m
        [40mA file state file is used to store information about the files in a[0m
        [40mtransaction.  These files are created and maintained by aegis.  These[0m
        [40mfiles should not be edited by humans.  These files is owned by the[0m
        [40mproject owner and group.[0m

[1m[40mCONTENTS[0m
        [40msrc = [ { ... }, ... ];[0m
                [40mThis field is a list of all the files in the change.  The[0m
                [40mrecords have the form[0m

                [40mfile_name = string;[0m
                        [40mThis file names the file.  The name is relative to the[0m
                        [40mroot of the baseline directory tree.[0m

                [40muuid = string;[0m
                        [40mThis field uniquely identifies the file for its entire[0m
                        [40mlifetime.  This field remains constant across file[0m
                        [40mrenames.  The value of this field shall be formatted[0m
                        [40mas a valid UUID, all in lower case.[0m

                [40maction = (create, modify, remove, insulate, transparent);[0m
                        [40mThis field describes what is being done with the file.[0m

                        [40mcreate  The file is being created.  Once integrated,[0m
                                [40mthe edit fields record the file version[0m
                                [40mcreated and stored in the history.[0m

                        [40mmodify  The file is being created.  Once integrated,[0m
                                [40mthe edit fields record the file version stored[0m
                                [40min the history.[0m

                        [40mremove  The file is being created.  The edit field is[0m
                                [40monly informational, and describes the file[0m
                                [40mversion at the time it was removed from the[0m
                                [40mrepository.[0m

                        [40minsulate[0m
                                [40mThe file is insulating a development directory[0m
                                [40mfrom changes to the baseline, it shall be[0m
                                [40muncopied before development may end.  This[0m
                                [40maction shall only be present in changes.  It[0m
                                [40mshall never  be present in branch change state[0m
                                [40mfiles.[0m

                        [40mtransparent[0m
                                [40mThe file wasonce present in the branch,[0m
                                [40mhowever it is desired that the ancestor[0m
                                [40mversion "show through".  This is the[0m
                                [40mequivalent of "uncopy" for branches.  When the[0m
                                [40mbranch is integrated, this file will be[0m
                                [40momitted.[0m

                [40medit = { ... };[0m
                        [40mFor a project or an active branch, this field records[0m
                        [40mthe head revision of the file.  For a completed change[0m
                        [40mor branch, this field records the revision number[0m
                        [40mafter integrate pass.[0m

                        [40mrevision = string;[0m
                                [40mThis is the edit number, as reported by the[0m
                                [4m[40mhistory_get_command[24m in the project [4mconfig[24m file[0m
                                [40mat integrate pass time.[0m

                        [40mencoding = (none, quoted_printable, base64);[0m
                                [40mThis field records the encoding used when the[0m
                                [40mfile was added to the history at integrate[0m
                                [40mpass time, as configured by one of the[0m
                                [4m[40mhistory_put_command[24m or [4mhistory_get_command[24m and[0m
                                [4m[40mhistory_content_limitation[24m fields of the[0m
                                [40mproject [4mconfig[24m file.[0m

                                [40mnone    No encoding was applied to the file.[0m
                                        [40mEither it had no binary characters, or[0m
                                        [40mthe history tool is able to cope with[0m
                                        [40mbinary files.[0m

                                [40mquoted_printable[0m
                                        [40mThe MIME Quoted Printable encoding[0m
                                        [40m(see RFC 1521) has been used to escape[0m
                                        [40mthe binary characters of the file[0m
                                        [40mcontent.[0m

                                [40mbase64  The MIME Base 64 encoding (see RFC[0m
                                        [40m1521) has been used to encode the file[0m
                                        [40mcontent.[0m

                                [40mThe [4mhistory_content_limitation[24m field of the[0m
                                [40mproject [4mconfig[24m file is used to determine which[0m
                                [40mfiles need encoding.  The size of the encoded[0m
                                [40mfile is compared to determine which of quoted[0m
                                [40mprintable and base 64 encodings is used; the[0m
                                [40msmaller is chosen.[0m

                [40medit_number = string;[0m
                        [40mThis field is obsolescent.  It is only present for[0m
                        [40mbackwards compatibility.  It has been replaced by the[0m
                        [4m[40medit[24m field.[0m

                [40medit_origin = { ... };[0m
                        [40mThis field records the edit number of the file when it[0m
                        [40mwas added to the change or branch.  In changes, this[0m
                        [40mfield is not present for new files.  (A change file is[0m
                        [40mout of date if it's edit number_origin field does not[0m
                        [40mequal the edit_number field in the project.)[0m

                        [40mIt has the same fields, with the same meaning, as the[0m
                        [4m[40medit[24m field, above.[0m

                [40medit_number_origin = string;[0m
                        [40mThis field is obsolescent.  It is only present for[0m
                        [40mbackwards compatibility.  It has been replaced by the[0m
                        [4m[40medit_origin[24m field.[0m

                [40medit_origin_new = { ... };[0m
                        [40mThis field records the edit number of the file to[0m
                        [40mreplace the edit_number_origin field in the branch at[0m
                        [40mintegrate pass time.  This is used to perform cross[0m
                        [40mbranch merging.  This field cleared at integrate pass[0m
                        [40mtime.[0m

                        [40mIt has the same fields, with the same meaning, as the[0m
                        [4m[40medit[24m field, above.[0m

                [40medit_number_origin_new = string;[0m
                        [40mThis field is obsolescent.  It is only present for[0m
                        [40mbackwards compatibility.  It has been replaced by the[0m
                        [4m[40medit_origin_new[24m field.[0m

                [40musage = (source, config, build, test, manual_test);[0m
                        [40mThis field describes what function the file serves.[0m

                [40mfile_fp = fingerprint;[0m
                        [40mThis field records the last time modified of the[0m
                        [40msource file.  It is only present between the[0m
                        [4m[40mbeing_developed[24m and [4mbeing_integrated[24m states, inclusive[0m
                        [40m(for both changes and branches).  It is not present[0m
                        [40mfor files which are being deleted.  This field is used[0m
                        [40mto determine if a difference has been done, or a test[0m
                        [40mhas been done if the source file is a test, and if the[0m
                        [40mfile has been tampered with before state transitions.[0m

                        [40mThe fingerprint consists of the following fields:[0m

                        [40myoungest = time;[0m
                                [40mThe youngest time see for this file with this[0m
                                [40mfingerprint.[0m

                        [40moldest = time;[0m
                                [40mThe oldest time see for this file with this[0m
                                [40mfingerprint.[0m

                        [40mcrypto = string;[0m
                                [40mThis field records a cryptographically strong[0m
                                [40mfingerprint for the file.  There is no known[0m
                                [40mmethod of constructing a file to match a given[0m
                                [40mfingerprint, and there is less than 1 in[0m
                                [40m2**200 chance that two files will have the[0m
                                [40msame fingerprint.  Thus if the fingerprint is[0m
                                [40mthe same, the file can reliably assumed to be[0m
                                [40mthe same.[0m

                [40mdiff_file_fp = fingerprint;[0m
                        [40mThis field records the last time modified of the[0m
                        [40mdifference file when the last [4maegis[24m [4m-DIFFerence[0m
                        [40mcommand was run.  It is only present between the[0m
                        [4m[40mbeing_developed[24m and [4mbeing_integrated[24m states, inclusive[0m
                        [40m(for both changes and branches).  This field is used[0m
                        [40mto determine if a difference has been done, and if the[0m
                        [40mdifference file has been tampered with before state[0m
                        [40mtransitions.[0m

                [40midiff_file_fp = fingerprint;[0m
                        [40mThis field records the last time modified of the[0m
                        [40mintegration difference file when the last [4maegis[0m
                        [4m[40m-DIFFerence[24m command was run.  It is only present in[0m
                        [40mthe [4mbeing_integrated[24m state.  This field is used to[0m
                        [40mdetermine if a difference has been done.[0m

                [40marchitecture_times = [{ ... }];[0m
                        [40mThis field records the time of various operations for[0m
                        [40meach variant named in the [4marchitecture[24m field.  It is[0m
                        [40monly present in the [4mbeing_developed[24m and[0m
                        [4m[40mbeing_integrated[24m states.  This field is used to[0m
                        [40mdetermine if a test has been done, and thus optimize[0m
                        [40mtest runs.[0m

                        [40mvariant = string;[0m
                                [40mThis field is one of the patterns named in the[0m
                                [4m[40marchitecture[24m field.[0m

                        [40mtest_time = time;[0m
                                [40mThis field records the last time the last[0m
                                [40msuccessful [4maegis[24m [4m-Test[24m command was run for[0m
                                [40mthis specific pattern instance.[0m

                        [40mtest_baseline_time = time;[0m
                                [40mThis field records the last time the last[0m
                                [40msuccessful [4maegis[24m [4m-Test[24m [4m-BaseLine[24m command was[0m
                                [40mrun for this specific pattern instance.[0m

                [40mmove = string;[0m
                        [40mTo change the name of a file, a combination of[0m
                        [40mdeleting the old name and creating the new name is[0m
                        [40mused.  With deleted files, this field is used to say[0m
                        [40mwhere it went.  With new files, this field is used to[0m
                        [40msay where it came from.[0m

                [40mlocked_by = integer;[0m
                        [40mThe change which locked this file.[0m
                        [40mCaveat: this field is redundant, you can figure it out[0m
                        [40mby scanning all of he change files.  Having it here is[0m
                        [40mvery convenient, even though it means multiple[0m
                        [40mupdates.[0m

                [40mabout_to_be_created_by = integer;[0m
                        [40mThe change which is about to create this file for the[0m
                        [40mfirst time.  Same caveat as above.[0m

                [40mabout_to_be_copied_by = integer;[0m
                        [40mFor each change file that is acting on a project file[0m
                        [40mfrom a deeper baseline than the immediate parent[0m
                        [40mproject's baseline, the file needs to be added to the[0m
                        [40mimmediate parent project.  Note that this field says[0m
                        [40mthat this file record is a place marker, so that it[0m
                        [40mcan be deleted again should the change not be[0m
                        [40mintegrated for some reason.[0m

                [40mdeleted_by = integer;[0m
                        [40mThe change which last deleted this file.  We never[0m
                        [40mthrow them away, because (a) it may be created again,[0m
                        [40mand more important (b) we need it to recreate earlier[0m
                        [40mdeltas.[0m

        [40mtest = [ string ];[0m
                [40mThis field is used to remember test correlations for source[0m
                [40mfiles.  This is used by [4maet[24m(1) to suggest suitable tests.[0m

        [40mmetrics = [ { ... } ];[0m
                [40mThis field is used to describe various file metrics.  It is[0m
                [40mcommitted during [4maeipass[24m(1), when the file is added to the[0m
                [40mhistory.  The name must be given, and exactly one value.[0m

                [40mname = string;[0m
                        [40mThis is the name of the metric.  This field must be[0m
                        [40mset.[0m

                [40mvalue = real;[0m
                        [40mThis is the value of the metric.  This field must be[0m
                        [40mset.  (If you have an integer-valued metric, just use[0m
                        [40mintegers, Aegis will cope.  If you have a string-[0m
                        [40mvalued metric, assign integers to the enumerands.)[0m

        [40mexecutable = boolean;[0m
                [40mThis field is used to remember whether the source file had any[0m
                [40mexecutable permission bits set at [4mdevelop[24m [4mend[24m time.  This mode[0m
                [40mwill be restored (taking the project umask into account) when[0m
                [40mthe file is copied.[0m

                [40mThis field is only meaningful for changes in the [4mcompleted[0m
                [40mstate, because this field is only set by [4maeip[24m(1).  Until then,[0m
                [40mthe mode if the file itself is the authority.[0m

        [40mattribute = [ { ... } ];[0m
                [40mThis is a list of [4m(name,value)[24m pairs, defining user specified[0m
                [40mattributes.[0m

                [40mname = string;[0m
                        [40mThe name of the attribute.  By convention, names which[0m
                        [40mstart with an upper-case letter will appear in[0m
                        [40mlistings, and lower-case will not.  Attribute names[0m
                        [40mare case-insensitive.[0m

                [40mvalue = string;[0m
                        [40mThe value of the attribute.[0m

                [40mArguably, most file properties which may be altered by the[0m
                [40muser (and some that can't) should be of this form.  Due to an[0m
                [40maccident of history, this is not the case.[0m

[1m[40mWRITING REPORT SCRIPTS[0m
        [40mWhen attempting to access these fields from within the report[0m
        [40mgenerator, you need a code fragment similar to the following:[0m
                [40mauto ps, pfs;[0m
                [40mps = project[project_name()].state;[0m
                [40mfps = ps.src["somefile"];[0m
                [40mauto cs, cfs;[0m
                [40mcs = ps.branch.change[change_number()];[0m
                [40mcfs = cs.src["somefile"];[0m
        [40mNotice that the top-level fields of the file state are not available,[0m
        [40mbut instead are mapped onto the relevant project file and change file[0m
        [4m[40msrc[24m arrays.[0m

        [40mAll of the src member fields mentioned in the man page can now be[0m
        [40maccessed as members of the pfs or cfs variables.[0m

[1m[40mSEE ALSO[0m
        [4m[40maegis[24m(5)[0m
                [40maegis file format syntax[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis(5)                                                              aegis(5)



[40m[1mNAME[0m
        [40maegis - meta-data file format[0m

[1m[40mDESCRIPTION[0m
        [40mThe files used by the [4maegis[24m program all have the same format.  Some of[0m
        [40mthe files used by aegis are created and maintained by humans, and some[0m
        [40mare created an maintained by aegis itself.  The various manual entries[0m
        [40msay which is which.[0m

[1m[40mLEXICAL CONSIDERATIONS[0m
        [40mNames are any C identifier.  Comments are C-style comments (or C++ or[0m
        [40mshell).  Numbers are decimal, octal or hexadecimal, as for C[0m
        [40mconstants.  Whitespace (spaces, tabs and newlines) are ignored except[0m
        [40min strings or as they serve to separate tokens.[0m

        [40mStrings are C-style strings, and similar to C, sequential string[0m
        [40mconstants are silently catenated together.[0m

        [40mIn addition, there is a style of @string@ which use at-signs (@) for[0m
        [40mquoting.  Unlike the C style of string, newlines are allowed within[0m
        [40mthese strings.  To get an at-sign in such a string, double the at-[0m
        [40msign.  There is no other escape mechanism available.[0m

[1m[40mGRAMMAR[0m
        [40mThe format of all aegis files is described by a [4myacc[24m [4m(1)[24m grammar.[0m
                [40m%%[0m
                [40mfile[0m
                        [40m: field_list[0m
                        [40m;[0m
        [40mA file contains a field list.[0m
                [40mfield_list[0m
                        [40m: /* empty */[0m
                        [40m| field_list field[0m
                        [40m;[0m
        [40mA field list is zero or more fields.[0m
                [40mfield[0m
                        [40m: NAME '=' value ';'[0m
                        [40m;[0m
        [40mA field is set by giving a name and a value.[0m
                [40mvalue[0m
                        [40m: NAME[0m
                        [40m| INTEGER[0m
                        [40m| STRING[0m
                        [40m| structure[0m
                        [40m| list[0m
                        [40m;[0m
        [40mA value may be a member of an enumeration (NAME), or an integer[0m
        [40mconstant, or a literal string.  More complex values may be constructed[0m
        [40mfrom these simple values.[0m
                [40mstructure[0m
                        [40m: '{' field_list '}'[0m
                        [40m;[0m
        [40mA structure is a grouped list of fields.[0m
                [40mlist[0m
                        [40m: '[' list_body ']'[0m
                        [40m;[0m
                [40mlist_body[0m
                        [40m: /* empty */[0m
                        [40m| value_list[0m
                        [40m| value_list ','[0m
                        [40m;[0m
                [40mvalue_list[0m
                        [40m: value[0m
                        [40m| value_list ',' value[0m
        [40mA list is a sequential list of values separated by commas.  It may be[0m
        [40mempty, or it may have a trailing comma.[0m

[1m[40mSEMANTICS[0m
        [40mThe types of the values must match those in the definition of the[0m
        [40mfile.  See the relevant man pages for more information.[0m

        [40mFiles which are rewritten by [1maegis [22mwill lose any comments placed in[0m
        [40mthem.  When time fields are emitted by [1maegis [22mthey are usually followed[0m
        [40mby a human readable date in a comment.[0m

[1m[40mSEE ALSO[0m
        [4m[40maegis[24m(1)[0m
                [40ma project change supervisor[0m

        [4m[40maecattr[24m(5)[0m
                [40mchange attribute file format[0m

        [4m[40maecstate[24m(5)[0m
                [40mchange state file format[0m

        [4m[40maedir[24m(5)[0m
                [40mdirectory structures[0m

        [4m[40maegstate[24m(5)[0m
                [40maegis state file[0m

        [4m[40maepattr[24m(5)[0m
                [40mproject attribute file format[0m

        [4m[40maepconf[24m(5)[0m
                [40mproject configuration file format[0m

        [4m[40maepstate[24m(5)[0m
                [40mproject state file format[0m

        [4m[40maesub[24m(5)[0m
                [40mavailable command substitutions[0m

        [4m[40maeuconf[24m(5)[0m
                [40muser configuration file format[0m

        [4m[40maeustate[24m(5)[0m
                [40muser state file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegstate(5)                                                        aegstate(5)



[40m[1mNAME[0m
        [40maegstate - aegis global state file[0m

[1m[40mSYNOPSIS[0m
        [40m/usr/local/com/aegis/state[0m

[1m[40mDESCRIPTION[0m
        [40mThe aegis state file is used to store the pointers to project[0m
        [40mdirectories.[0m

[1m[40mCONTENTS[0m
        [40mwhere = [{ ... }];[0m
                [40mThis field is a table relating project name to project[0m
                [40mdirectory.  The structure is as follows:[0m

                [40mproject_name = string;[0m
                        [40mThe name of a project.[0m

                [40mdirectory = string;[0m
                        [40mAbsolute path of the project's directory.  (Only set[0m
                        [40mof [4malias_for[24m is not set.)[0m

                [40malias_for = string;[0m
                        [40mThis is the name of another project, possibly[0m
                        [40mincluding branch numbers.  It allows you to have[0m
                        [40mshorter or more meaningful project names.  (Only set[0m
                        [40mif [4mdirectory[24m is not set.)[0m

[1m[40mWRITING REPORT SCRIPTS[0m
        [40mWhen attempting to access these fields from within the report[0m
        [40mgenerator, you need a code fragment similar to the following:[0m
                [40mauto p;[0m
                [40mp = project[project_name()];[0m
        [40mThat is, the where field is represented by the project array variable,[0m
        [40mhowever, it does not mention the aliases, only the actual projects,[0m
        [40msimilar to the "[4mael[24m [4mprojects[24m" command.  (You can, however, index the[0m
        [40mprojects array by an alias, or even by a project name with branches on[0m
        [40mthe end.)[0m

        [40mIn addition to the [4mproject_name[24m and [4mdirectory[24m fields specified above,[0m
        [40mthe report generator insets a [4mstate[24m field, which gives you access to[0m
        [40mthe project state fields (see [4maepstate[24m(5) for more information).[0m

[1m[40mSEE ALSO[0m
        [4m[40maegis[24m(5)[0m
                [40maegis file format syntax[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aegis locking(5)                                              aegis locking(5)



[40m[1mNAME[0m
        [40maegis locks - how locking works, and which commands use them[0m

[1m[40mDESCRIPTION[0m
        [40mAegis maintains a database of information about the projects in its[0m
        [40mcare, and the various changes, both completed and in progress.  In[0m
        [40morder to ensure the integrity of this database, and also your project[0m
        [40mrepository, it uses locks.[0m

        [40mFrom time to time, these locks are visible to the users, because they[0m
        [40mwill be told that a command is waiting for a particular lock.  For[0m
        [40msome transactions, this can be a long wait.[0m

   [1m[40mDining Philosophers[0m
        [40mWhile UNIX supplies locks in various flavors, if you need an entire[0m
        [40mset of locks simultaneously, there is no elegant "all or nothing "[0m
        [40minterface available.  This is unsurprising, as this is one of the[0m
        [40mclassic computer science problems, known as the Dining Philosophers[0m
        [40mproblem.[0m

        [40mThe master lock is used to solve the Dining Philosophers problem, and[0m
        [40mis meant to be very transient.  It is only held while the other locks[0m
        [40mwhich are required (frequently two or more, hence the problem) are[0m
        [40mrequested - non-blocking.  Once they are all obtained (or not, and any[0m
        [40mpartials given back) the master lock is released.  It is usually held[0m
        [40mfor [4mmuch[24m less than a second.  If you notice the master lock being[0m
        [40mheld, it is almost always a symptom of the NFS lock daemon[0m
        [40mmisbehaving.[0m

        [40mIf the lock(s) could not be obtained, the blocking lock is waited on[0m
        [40m(without the master).  This is when the "waiting for" message is[0m
        [40missued.  When obtained, it is [4mreleased[24m and the whole cycle starts[0m
        [40magain.  This is why you occasionally see a series of "waiting for"[0m
        [40mmessages.  (This could maybe be optimized some, but it is still[0m
        [40mpossible to block on yet another lock, and they you have to release[0m
        [40mall and wait again.  As yet, I'm not convinced the extra code[0m
        [40mcomplexity is required.)[0m

   [1m[40mListing Locks[0m
        [40mThere is a command available to list the current Aegis locks.[0m
                [40maegis -list locks[0m
        [40mNote that the project names are change numbers are [4mguesses[24m as the[0m
        [40mlocks are hashed over a 16-bit range, and range overlaps are possible.[0m
        [40mCollisions are also possible, but fortunately rarer.[0m

   [1m[40mKnown Problems[0m
        [40mThere is a known problem with the HP/UX NFS clients.  If you see[0m
        [40mpersistent "no locks available" error messages when[0m
        [4m[40m/usr/local/lib/aegis[24m is NFS mounted, try making the[0m
        [4m[40m/usr/local/lib/aegis/lockfile[24m file world writable.  chmod 666[0m
        [40m/usr/local/lib/aegis/lockfile There is the possibility of a denial of[0m
        [40mservice attack (which is why the default is 0600) but since you are[0m
        [40mpresently denied service anyway, it's academic.[0m

[1m[40mCOMMANDS[0m
        [40mThe following table shows the locks taken by the various commands.[0m
        [40mNote that theoretically some of the commands take too [4mfew[24m locks, but[0m
        [40mthis has yet to prove to be a problem in practice.  Also, "project[0m
        [40mstate file" and "change state file" are the same thing for branches,[0m
        [40mit just depends which way you are looking at them at the time.[0m

        [40mCommand      Global      Project    Project     Ancestor     Change       User[0m
                     [40mState       State      Baseline    Baselines    State        State[0m
                     [40mFile        File                                File         File[0m
        [40m----------------------------------------------------------------------------------[0m
        [40maeb (dev)       .           .        shared      shared     exclusive       .[0m
        [40maeb (int)       .           .           .        shared     exclusive       .[0m
        [40maeca            .           .           .           .       exclusive       .[0m
        [40maechown         .           .           .           .       exclusive   exclusive[0m
        [40maeclean         .           .           .           .       exclusive       .[0m
        [40maeclone         .       exclusive       .           .       exclusive   exclusive[0m
        [40maecp            .           ,           ,           ,       exclusive       .[0m
        [40maecpu           .           .           .           .       exclusive       .[0m
        [40maed             .           ,           ,           ,       exclusive       .[0m
        [40maedb            .           .           .           .       exclusive   exclusive[0m
        [40maedbu           .           .           .           .       exclusive   exclusive[0m
        [40maede            .           ,           .           .       exclusive   exclusive[0m
        [40maedeu           .           .           .           .       exclusive   exclusive[0m
        [40maedn            .       exclusive       .           .           .           .[0m
        [40maeib            .       exclusive       .           .       exclusive   exclusive[0m
        [40maeibu           .       exclusive       .           .       exclusive   exclusive[0m
        [40maeifail         .       exclusive       .           .       exclusive   exclusive[0m
        [40maeipass         .       exclusive   exclusive       .       exclusive   exclusive[0m
        [40maemv            .           ,           ,           ,       exclusive       .[0m
        [40maena            .       exclusive       .           .           .           .[0m
        [40maenbr           .       exclusive       .           .           .           .[0m
        [40maenbru      exclusive   exclusive       .           .           .           .[0m
        [40maenc            .       exclusive       .           .           .           .[0m
        [40maencu           .       exclusive       .           .           .           .[0m
        [40maend            .       exclusive       .           .           .           .[0m
        [40maenf            .           .           .           .       exclusive       .[0m
        [40maenfu           .           .           .           .       exclusive       .[0m
        [40maeni            .       exclusive       .           .           .           .[0m
        [40maenpa       exclusive       .           .           .           .           .[0m
        [40maenpr       exclusive       .           .           .           .           .[0m
        [40maenrv           .       exclusive       .           .           .           .[0m
        [40maent            .       exclusive       .           .       exclusive       .[0m
        [40maentu           .           .           .           .       exclusive       .[0m
        [40maepa            .       exclusive       .           .           .           .[0m
        [40maera            .       exclusive       .           .           .           .[0m
        [40maerd            .       exclusive       .           .           .           .[0m
        [40maerfail         .           .           .           .       exclusive   exclusive[0m
        [40maeri            .       exclusive       .           .           .           .[0m
        [40maerm            .           ,           .           .       exclusive       .[0m
        [40maermu           .           .           .           .       exclusive       .[0m
        [40maermpr      exclusive       .           .           .           .           .[0m
        [40maerpa       exclusive       .           .           .           .           .[0m
        [40maerpass         .           .           .           .       exclusive       .[0m
        [40maerpu           .           .           .           .       exclusive       .[0m
        [40maerrv           .       exclusive       .           .           .           .[0m
        [40maet             .           .           ,           ,       exclusive       .[0m

[1m[40mSEE ALSO[0m
        [40mYou may wish to see the manual pages of all of the above commands.[0m
        [40mMany have descriptions of the locking interactions.[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aemetrics(5)                                                      aemetrics(5)



[40m[1mNAME[0m
        [40maemetrics - metrics values file format[0m

[1m[40mSYNOPSIS[0m
        [4m[40mfilename[24m,S[0m

[1m[40mDESCRIPTION[0m
        [40mMetrics files are created at integration build time, and recorded into[0m
        [40mthe file attributes at integration pass time.  This allows trend[0m
        [40manalysis and other statistics to be calculated.[0m

[1m[40mCONTENTS[0m
        [40mmetrics = [ { ... } ];[0m
                [40mThis field is used to describe various file metrics.  It is[0m
                [40mcommitted during [4maeipass[24m(1), when the file is added to the[0m
                [40mhistory.  The name must be given, and exactly one value.[0m

                [40mname = string;[0m
                        [40mThis is the name of the metric.  This field must be[0m
                        [40mset.[0m

                [40mvalue = real;[0m
                        [40mThis is the value of the metric.  This field must be[0m
                        [40mset.  (If you have an integer-valued metric, just use[0m
                        [40mintegers, Aegis will cope.  If you have a string-[0m
                        [40mvalued metric, assign integers to the enumerands.)[0m

[1m[40mSEE ALSO[0m
        [4m[40maegis[24m(5)[0m
                [40maegis file format syntax[0m

        [4m[40maemeasure[24m(1)[0m
                [40msimple file metrics[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aepattr(5)                                                          aepattr(5)



[40m[1mNAME[0m
        [40maepattr - aegis project attribute file[0m

[1m[40mDESCRIPTION[0m
        [40mThe project attribute file is used to store modifiable information[0m
        [40mabout a project.[0m

[1m[40mCONTENTS[0m
        [40mdescription = string;[0m
                [40mThis field contains a description of the project.  Large[0m
                [40mamounts of prose are not required; a single line is[0m
                [40msufficient.[0m

        [40mdeveloper_may_review = boolean;[0m
                [40mIf this field is true, then a developer may review her own[0m
                [40mchange.  This is probably only a good idea for projects of[0m
                [40mless than 3 people.  The idea is for as many people as[0m
                [40mpossible to critically examine a change.[0m

                [40mNote that the [4mdevelop_end_action[24m field may not contradict the[0m
                [4m[40mdeveloper_may_review[24m field.  If developers may not review[0m
                [40mtheir own work, then their changes may not goto directly to[0m
                [40mthe [4mbeing[24m [4mintegrated[24m state (as this means much the same[0m
                [40mthing).[0m

        [40mdeveloper_may_integrate = boolean;[0m
                [40mIf this field is true, then a developer may integrate her own[0m
                [40mchange.  This is probably only a good idea for projects of[0m
                [40mless than 3 people.  The idea is for as many people as[0m
                [40mpossible to critically examine a change.[0m

        [40mreviewer_may_integrate = boolean;[0m
                [40mIf this field is true, then a reviewer may integrate a change[0m
                [40mshe reviewed.  This is probably only a good idea for projects[0m
                [40mof less than 3 people.  The idea is for as many people as[0m
                [40mpossible to critically examine a change.[0m

        [40mdevelopers_may_create_changes = boolean;[0m
                [40mThis field is true if developers may created changes, in[0m
                [40maddition to administrators.  This tends to be a very useful[0m
                [40mthing, since developers find most of the bugs.[0m

        [40mforced_develop_begin_notify_command = string;[0m
                [40mThis command is used to notify a developer that a change[0m
                [40mrequires developing; it is issued when a project administrator[0m
                [40muses an [4maedb[24m [4m-User[24m command to force development of a change by[0m
                [40ma specific user.  All of the substitutions described in[0m
                [4m[40maesub[24m(5) are available.  This field is optional.[0m

                [40mExecuted as: the new developer.  Current directory: the[0m
                [40mdevelopment directory of the change for the new developer.[0m
                [40mExit status: ignored.[0m

        [40mdevelop_end_notify_command = string;[0m
                [40mThis command is used to notify that a change is ready for[0m
                [40mreview.  It will probably use mail, or it could be an in-house[0m
                [40mbulletin board.  This field is optional, if not present no[0m
                [40mnotification will be given.  This command could also be used[0m
                [40mto notify other management systems, such as progress and[0m
                [40mdefect tracking.  All of the substitutions described by[0m
                [4m[40maesub[24m(5) are available.[0m

                [40mExecuted as: the developer.  Current directory: the[0m
                [40mdevelopment directory of the change.  Exit status: ignored.[0m

        [40mdevelop_end_undo_notify_command = string;[0m
                [40mThis command is used to notify that a change had been[0m
                [40mwithdrawn from review for further development.  It will[0m
                [40mprobably use mail, or it could be an in-house bulletin board.[0m
                [40mThis field is optional, if not present no notification will be[0m
                [40mgiven.  This command could also be used to notify other[0m
                [40mmanagement systems, such as progress and defect tracking.  All[0m
                [40mof the substitutions described by [4maesub[24m(5) are available.[0m

                [40mExecuted as: the developer.  Current directory: the[0m
                [40mdevelopment directory of the change.  Exit status: ignored.[0m

        [40mreview_begin_notify_command = string;[0m
                [40mThis command is used to notify that a review has begun.  It[0m
                [40mwill probably use mail, or it could be an in-house bulletin[0m
                [40mboard.  This field is optional, if not present no notification[0m
                [40mwill be given.  This command could also be used to notify[0m
                [40mother management systems, such as progress and defect[0m
                [40mtracking.  All of the substitutions described by [4maesub[24m(5) are[0m
                [40mavailable.[0m

                [40mExecuted as: the reviewer.  Current directory: the development[0m
                [40mdirectory of the change.  Exit status: ignored.[0m

        [40mreview_begin_undo_notify_command = string;[0m
                [40mThis command is used to notify that a review is no longer in[0m
                [40mprogress, the reviewer has withdrawn.  It will probably use[0m
                [40mmail, or it could be an in-house bulletin board.  This field[0m
                [40mis optional, if not present no notification will be given.[0m
                [40mThis command could also be used to notify other management[0m
                [40msystems, such as progress and defect tracking.  All of the[0m
                [40msubstitutions described by [4maesub[24m(5) are available.[0m

                [40mExecuted as: the reviewer.  Current directory: the development[0m
                [40mdirectory of the change.  Exit status: ignored.[0m

        [40mreview_pass_notify_command = string;[0m
                [40mThis command is used to notify that a review has passed.  It[0m
                [40mwill probably use mail, or it could be an in-house bulletin[0m
                [40mboard.  This field is optional, if not present no notification[0m
                [40mwill be given.  This command could also be used to notify[0m
                [40mother management systems, such as progress and defect[0m
                [40mtracking.  All of the substitutions described by [4maesub[24m(5) are[0m
                [40mavailable.[0m

                [40mExecuted as: the reviewer.  Current directory: the development[0m
                [40mdirectory of the change.  Exit status: ignored.[0m

        [40mreview_pass_undo_notify_command = string;[0m
                [40mThis command is used to notify that a review has passed.  It[0m
                [40mwill probably use mail, or it could be an in-house bulletin[0m
                [40mboard.  This field is optional, if not present no notification[0m
                [40mwill be given.  This command could also be used to notify[0m
                [40mother management systems, such as progress and defect[0m
                [40mtracking.  Defaults to the same action as the[0m
                [4m[40mdevelop_end_notify_command[24m field.  All of the substitutions[0m
                [40mdescribed by [4maesub[24m(5) are available.[0m

                [40mExecuted as: the reviewer.  Current directory: the development[0m
                [40mdirectory of the change.  Exit status: ignored.[0m

        [40mreview_fail_notify_command = string;[0m
                [40mThis command is used to notify that a review has failed.  It[0m
                [40mwill probably use mail, or it could be an in-house bulletin[0m
                [40mboard.  This field is optional, if not present no notification[0m
                [40mwill be given.  This command could also be used to notify[0m
                [40mother management systems, such as progress and defect[0m
                [40mtracking.  All of the substitutions described by [4maesub[24m(5) are[0m
                [40mavailable.[0m

                [40mExecuted as: the reviewer.  Current directory: the development[0m
                [40mdirectory of the change.  Exit status: ignored.[0m

        [40mintegrate_pass_notify_command = string;[0m
                [40mThis command is used to notify that an integration has passed.[0m
                [40mIt will probably use mail, or it could be an in-house bulletin[0m
                [40mboard.  This field is optional, if not present no notification[0m
                [40mwill be given.  This command could also be used to notify[0m
                [40mother management systems, such as progress and defect[0m
                [40mtracking.  All of the substitutions described by [4maesub[24m(5) are[0m
                [40mavailable.[0m

                [40mSome compilers bury absolute path names into object files and[0m
                [40mexecutables.  The renaming of the integration directory to[0m
                [40mbecome the new baseline breaks these paths.  This command is[0m
                [40mpassed an environment variable called AEGIS_INTEGRATION_-[0m
                [40mDIRECTORY so that the appropriate symlink may be placed, if[0m
                [40mdesired.[0m

                [40mExecuted as: the project owner.  Current directory: the new[0m
                [40mproject baseline.  Exit status: ignored.[0m

        [40mintegrate_fail_notify_command = string;[0m
                [40mThis command is used to notify that an integration has failed.[0m
                [40mIt will probably use mail, or it could be an in-house bulletin[0m
                [40mboard.  This field is optional, if not present no notification[0m
                [40mwill be given.  This command could also be used to notify[0m
                [40mother management systems, such as progress and defect[0m
                [40mtracking.  All of the substitutions described by [4maesub[24m(5) are[0m
                [40mavailable.[0m

                [40mExecuted as: the integrator.  Current directory: the[0m
                [40mdevelopment directory of the change.  Exit status: ignored.[0m

        [40mdefault_development_directory = string;[0m
                [40mThe pathname of where to place new development directories.[0m
                [40mThe pathname must be absolute.  This field is only consulted[0m
                [40mif the field of the same name in the user configuration file[0m
                [40mis not set.[0m

        [40mumask = integer;[0m
                [40mFile permission mode mask.  See [4mumask[24m(2) for more information.[0m
                [40mThis value will always be OR'ed with 022, because [4maegis[24m is[0m
                [40mparanoid.[0m

        [40mdefault_test_exemption = boolean;[0m
                [40mThis field contains what to do when a change is created with[0m
                [40mno test exemption specified.[0m

        [40mdefault_test_regression_exemption = boolean;[0m
                [40mThis field contains what to do when a change is created with[0m
                [40mno regression test exemption specified.[0m

        [40mminimum_change_number = integer;[0m
                [40mThe minimum change number for [4maenc(1),[24m if no change number is[0m
                [40mspecified.  This allows the low-numbered change numbers to be[0m
                [40mused for branches later in the project.[0m

        [40mreuse_change_numbers = boolean;[0m
                [40mThis controls whether the automatically selected [4maenc[24m(1)[0m
                [40mchange numbers "fill in" any gaps.  Defaults to true if not[0m
                [40mset.[0m

        [40mminimum_branch_number = integer;[0m
                [40mThe minimum branch number for [4maenbr(1),[24m if no branch number is[0m
                [40mspecified.  Defaults to 1 if not set.[0m

        [40mskip_unlucky = boolean;[0m
                [40mThis field may be set to true if you want to skip various[0m
                [40munlucky numbers for changes, branches and tests.  Various[0m
                [40mtraditions are avoided, both Eastern and Western.  Defaults to[0m
                [40mfalse if not set.[0m

        [40mcompress_database = boolean;[0m
                [40mThis field may be set to true if you want to compress the[0m
                [40mdatabase on writing.  (It is always uncompressed on reading if[0m
                [40mnecessary.)  Defaults to false if not set.[0m

                [40mUnless you have an exceptionally large project, coupled with[0m
                [40mfast CPUs and high network latency, there is probably very[0m
                [40mlittle benefit in using this feature.  (The database is[0m
                [40musually less than 5% of the size of the repository.)  On slow[0m
                [40mnetworks, however, this can improve the performance of file-[0m
                [40mrelated commands.[0m

        [40mdevelop_end_action = ( ...);[0m
                [40mThis field controls the state the change enters after a[0m
                [40msuccessful [4maede[24m(1) action.[0m

                [4m[40mgoto_being_reviewed[0m
                        [40mThis means that the change goes from the [4mbeing_-[0m
                        [4m[40mdeveloped[24m state to the [4mbeing_reviewed[24m state.  The[0m
                        [4m[40maerb[24m(1) command only sends informative email.[0m

                [4m[40mgoto_awaiting_review[0m
                        [40mThis means that the change goes from the [4mbeing_-[0m
                        [4m[40mdeveloped[24m state to the [4mawaiting_review[24m state.  The[0m
                        [4m[40maerb[24m(1) command is now mandatory.[0m

                [4m[40mgoto_awaiting_integration[0m
                        [40mThis means that the change goes from the [4mbeing_-[0m
                        [4m[40mdeveloped[24m state into the [4mawaiting_integration[24m state.[0m
                        [40mCode review is skipped entirely.  If the [4mdeveloper_-[0m
                        [4m[40mmay_review[24m is false, it is not possible to use this[0m
                        [40msetting.[0m

                [40mNote that the [4mdevelop_end_action[24m field may not contradict the[0m
                [4m[40mdeveloper_may_review[24m field.  If developers may not review[0m
                [40mtheir own work, then their changes may not goto directly to[0m
                [40mthe [4mbeing[24m [4mintegrated[24m state (as this means much the same[0m
                [40mthing).  A contradictory setting will be replaced with [4mgoto_-[0m
                [4m[40mbeing_reviewed[24m.[0m

        [40mprotect_development_directory = boolean;[0m
                [40mThis field may be used to protect the development directory[0m
                [40mafter the [4mbeing[24m [4mdeveloped[24m state.  It does this by making it[0m
                [40mread-only at develop end time.  Should the change ever be[0m
                [40mreturned to the [4mbeing[24m [4mdeveloped[24m state, it will be made[0m
                [40mwritable again.[0m

                [40mThe default is false, meaning to leave the development[0m
                [40mdirectory writable while is being reviewed and integrated.[0m
                [40mAegis' normal tampering detection will notice if files are[0m
                [40mchanged, but there is no reminder to the developer that the[0m
                [40mchange should be left alone.[0m

                [40mThis field defaults to false, because it can sometimes be[0m
                [40mslow.[0m

[1m[40mSEE ALSO[0m
        [4m[40maepa[24m(1) modify the attributes of a project[0m

        [4m[40maegis[24m(5)[0m
                [40maegis file format syntax[0m

        [4m[40maecattr[24m(5)[0m
                [40mchange attributes file format[0m

        [4m[40maecstate[24m(5)[0m
                [40mchange state file format, particularly as branches are used to[0m
                [40mremember most project state[0m

        [4m[40maepstate[24m(5)[0m
                [40mproject state file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aepconf(5)                                                          aepconf(5)



[40m[1mNAME[0m
        [40maepconf - aegis project configuration file[0m

[1m[40mSYNOPSIS[0m
        [4m[40mproject[24m/baseline/aegis.conf [4m(default)[0m
        [4m[40mproject[24m/baseline/config [4m(obsolete)[0m

[1m[40mDESCRIPTION[0m
        [40mA project configuration file is used to store information about a[0m
        [40mproject.  This file is under source control, and is one of the[0m
        [40mproject's source files.  Developers may thus modify this file as part[0m
        [40mof a change.[0m

        [40mAs of aegis.4.17, it is possible to assign any arbitrary name to the[0m
        [40mproject configuration file or files.  See [4maenf[24m(1) for more[0m
        [40minformation.[0m

        [40mThis file contains a number of commands to be executed by Aegis.[0m
        [40mThere are times when the substitutions in these commands may contain[0m
        [40mshell special characters, which would change the meaning of the[0m
        [40mcommands in unintended ways.  There are two main sources of these[0m
        [40mproblems: file names and architecture names.  In order to have shell[0m
        [40mspecial characters in filenames, you must set the [4mshell_safe_filenames[0m
        [40mfield (see below) to [4mfalse[24m.  If you do this, you will need to use the[0m
        [40mquote substitution (see [4maesub[24m(5)) to quote them, so that the shell[0m
        [40mdoes not abuse them.  Other things which may need quoting include[0m
        [40marchitecture names if you get creative, and edit numbers if unusual[0m
        [40mones are generated by your history tool.[0m

   [1m[40mGetting Started[0m
        [40mBecause the project [4maegis.conf[24m file is under source control like any[0m
        [40mother file, you must create the project [4maegis.conf[24m file in the very[0m
        [40mfirst change of your project.  Use the[0m
                [40m$ [1maenf aegis.conf[0m
                [40m$[0m
        [40mcommand and then editing the file to fill in the fields.  Subsequent[0m
        [40mAegis commands in that change will use that file.  Once the change is[0m
        [40mcompleted (see [4maeipass[24m(1) for more information) the file will be[0m
        [40mpresent in the baseline, and be used by all users and all changes.[0m

        [40mIf you ever need to change one of the fields of the project [4maegis.conf[0m
        [40mfile, you do this the same way as for any other source file, by[0m
        [40mcopying it into a change using the[0m
                [40m$ [1maecp aegis.conf[0m
                [40m$[0m
        [40mcommand and then edit the file to make the desired changes.  While[0m
        [40mit's [4mbeing[24m [4mdeveloped[24m your change will use it's copy of the project[0m
        [4m[40maegis.conf[24m file, but once the change is completed (see [4maeipass[24m(1) for[0m
        [40mmore information), it becomes the new version used by all users and[0m
        [40mchanges.[0m

        [40mIf you would prefer a different name for the project configuration[0m
        [40mfile, use the [4maenf[24m [4m-config[24m option.  For example, the[0m
                [40m$ [1maenf -config project.configuration[0m
                [40m$[0m
        [40mcommand would create a file called [4mproject.configuration[24m and Aegis[0m
        [40mwould then proceed to use it to obtain project configuration[0m
        [40minformation for the duration of the project.  This attribute will even[0m
        [40mbe preserved across file renames (see the [4maemv[24m(1) command).[0m

[1m[40mCONTENTS[0m
        [40mThis file contains the following fields:[0m

        [40mconfiguration_directory = string;[0m
                [40mThis field names a directory which will be searched for[0m
                [40madditional configuration files.  (This directive is only legal[0m
                [40mor meaningful in the master project [4maegis.conf[24m file.)[0m

                [40mAll source files (change source files and project source[0m
                [40mfiles) present in this directory will be read in as if they[0m
                [40mwere added to the end of the project "aegis.conf" file.[0m

                [40mThe usual priority of files (development directory, branch[0m
                [40mbaseline, [4metc[24m, project trunk baseline) is observed when these[0m
                [40mfiles are read.[0m

                [40mPlease note that the physical directories are never searched,[0m
                [40monly the Aegis concept of the change and project files is[0m
                [40mconsulted ([4mi.e.[24m  files created and modified in the usual way[0m
                [40mwith [4maenf[24m(1) and [4maecp[24m(1) commands).  Placing additional files[0m
                [40min the physical directories will have no effect.[0m

                [40mIt is recommended that if you use this field at all, that your[0m
                [40mtop level project [4maegis.conf[24m file should only contain this one[0m
                [40mfield.  This is to avoid overly-large re-reading of this file[0m
                [40mwhen it is joined to all the others.[0m

        [40mbuild_command = string;[0m
                [40mThis field describes how to build the project (actually, how[0m
                [40mto do an integration build).  This field is mandatory.  Used[0m
                [40mby the [4maeb[24m(1) command.  All of the substitutions described by[0m
                [4m[40maesub[24m(5) are available.[0m

                [40mExecuted as: the integrator (for integration builds) or the[0m
                [40mdeveloper (for development builds).  Current directory: the[0m
                [40mintegration directory of the change (for integration builds)[0m
                [40mthe development directory of the change (for development[0m
                [40mbuilds).  Exit status: zero is considered success, non-zero is[0m
                [40ma failure and a subsequent successful (exit zero) build will[0m
                [40mbe required.[0m

                [40mIf this field is set to "exit 0" then no integration build[0m
                [40mwill be required, and will not be checked for by the[0m
                [4m[40maeipass[24m(1) command.[0m

        [40mdevelopment_build_command = string;[0m
                [40mThis field describes how to do a development build.  If this[0m
                [40mfield is absent, it defaults to the above.  Used by the [4maeb[24m(1)[0m
                [40mcommand.  All of the substitutions described by [4maesub[24m(5) are[0m
                [40mavailable.[0m

                [40mExecuted as: the developer.  Current directory: the[0m
                [40mdevelopment directory of the change.  Exit status: zero is[0m
                [40mconsidered success, non-zero is a failure and a subsequent[0m
                [40msuccessful (exit zero) build will be required.[0m

                [40mIf this field is set to "exit 0" then no development build[0m
                [40mwill be required, and will not be checked for by the [4maede[24m(1)[0m
                [40mcommand.[0m

        [40mdevelopment_directory_style = { ... };[0m
                [40mThis field encapsulates a set of parameters controlling the[0m
                [40mappearance of the development directory.  It has significant[0m
                [40mimplications for the way the DMT is used, and the directory[0m
                [40mappearance presented to the DMT.[0m

                [40msource_file_link = boolean;[0m
                        [40mThis field is true if hard links are to be used for[0m
                        [40mproject source files (which are not part of the[0m
                        [40mchange) so that the work area has a complete set of[0m
                        [40msource files.[0m

                        [40mDefaults to false if not set.[0m

                        [40mIf the host system does not have hard links, this[0m
                        [40mfield will be ignored.[0m

                        [40mMaintaining the hard links can be time consuming for[0m
                        [40mlarge projects, and add quite a noticeable delay[0m
                        [40mbefore builds start doing anything.  If possible,[0m
                        [40mchange your build system to use the [4m$search_path[0m
                        [40msubstitution instead and avoid links.[0m

                [40msource_file_symlink = boolean;[0m
                        [40mThis field is true if symbolic links are to be used[0m
                        [40mfor project source files (which are not part of the[0m
                        [40mchange) so that the work area has a complete set of[0m
                        [40msource files.[0m

                        [40mDefaults to false if not set.  [If the obsolete[0m
                        [4m[40mcreate_symlinks_before_build[24m field is set, defaults to[0m
                        [40mthe value of that field, with a warning.][0m

                        [40mIf ([4msource_file_link[24m == true [1mand [22mhard links are[0m
                        [40mavailable) this field will be ignored.  If the host[0m
                        [40msystem does not have symbolic links, this field will[0m
                        [40mbe ignored.[0m

                        [40mMaintaining the symbolic links can be time consuming[0m
                        [40mfor large projects, and add quite a noticeable delay[0m
                        [40mbefore builds start doing anything.  If possible,[0m
                        [40mchange your build system to use the [4m$search_path[0m
                        [40msubstitution instead and avoid symbolic links.[0m

                [40msource_file_copy = boolean;[0m
                        [40mThis field is true if copies are to be used for[0m
                        [40mproject source files (which are not part of the[0m
                        [40mchange) so that the work area has a complete set of[0m
                        [40msource files.  File modification time attributes will[0m
                        [40mbe preserved.[0m

                        [40mDefaults to false if not set.[0m

                        [40mIf (([4msource_file_link[24m == true [1mand [22mhard links are[0m
                        [40mavailable) OR ([4msource_file_symlink[24m == true [1mand[0m
                        [40msymbolic links are available)) this field will be[0m
                        [40mignored.[0m

                        [40mMaintaining the copies can be time consuming (and[0m
                        [40mspace consuming) for large projects, and add quite a[0m
                        [40mnoticeable delay before builds start doing anything.[0m
                        [40mIf possible, change your build system to use the[0m
                        [4m[40m$search_path[24m substitution instead and avoid file[0m
                        [40mcopies.[0m

                [40msource_file_whiteout = boolean;[0m
                        [40mThe [4msource_file_whiteout[24m field mat be used to specify[0m
                        [40mthe presence (true) or absence (false) of white-out[0m
                        [40mfiles, used to "cover up" files being removed by a[0m
                        [40mchange set.  These files contain 1kB of random data,[0m
                        [40mintended to cause a syntax error should be build[0m
                        [40mreference them.[0m

                        [40mIt is rarely necessary to explicitly set this field.[0m
                        [40mIt defaults to false if you set any of the[0m
                        [4m[40msource_file_link[24m, [4msource_file_symlink[24m or[0m
                        [4m[40msource_file_copy[24m to true; it defaults to true only if[0m
                        [40mnone of them are true.[0m

                        [40mNot meaningful (always false) for integration builds.[0m

                [40mderived_file_link = boolean;[0m
                        [40mThis field is true if hard links are to be used for[0m
                        [40mnon-source files which are present in the project[0m
                        [40mbaseline(s) but which are not present in the work[0m
                        [40marea, so that the work area has a complete set of[0m
                        [40mderived files.  This allows work areas to take[0m
                        [40madvantage of "precompiled" object files ([4metc[24m) in the[0m
                        [40mbaseline(s).[0m

                        [40mDefaults to false if not set.[0m

                        [40mIf the host system does not have hard links, this[0m
                        [40mfield will be ignored.[0m

                        [40mMaintaining the links can be time consuming for large[0m
                        [40mprojects, and add quite a noticeable delay before[0m
                        [40mbuilds start doing anything.  If possible, change your[0m
                        [40mbuild system to use the [4m$search_path[24m substitution[0m
                        [40minstead and avoid hard links.  Alternatively, set[0m
                        [4m[40mderived_at_start_only[24m [4m=[24m [4mtrue;[24m and your work area will[0m
                        [40mget a "head start" but the derived files will not be[0m
                        [40mchecked for every build, but this will occasionally[0m
                        [40mresult in long build times after integrations.[0m

                        [40mSee also the [4mintegrate_begin_exceptions[24m and [4msymlink_-[0m
                        [4m[40mexceptions[24m fields (they apply to hard links as well as[0m
                        [40msymbolic links).[0m

                [40mderived_file_symlink = boolean;[0m
                        [40mThis field is true if symbolic links are to be used[0m
                        [40mfor non-source files which are present in the project[0m
                        [40mbaseline(s) but which are not present in the work[0m
                        [40marea, so that the work area has a complete set of[0m
                        [40mderived files.  This allows work areas to take[0m
                        [40madvantage of "precompiled" object files (etc) in the[0m
                        [40mbaseline(s).[0m

                        [40mDefaults to false if not set.  [If the obsolete[0m
                        [4m[40mcreate_symlinks_before_build[24m field is set, defaults to[0m
                        [40mthe value of that field, with a warning.][0m

                        [40mIf ([4mderived_file_link[24m == true [1mand [22mhard links are[0m
                        [40mavailable) this field will be ignored.  If the host[0m
                        [40msystem does not have symbolic links, this field will[0m
                        [40mbe ignored.[0m

                        [40mMaintaining the symbolic links can be time consuming[0m
                        [40mfor large projects, and add quite a noticeable delay[0m
                        [40mbefore builds start doing anything.  If possible,[0m
                        [40mchange your build system to use the [4m$search_path[0m
                        [40msubstitution instead and avoid symbolic links.[0m
                        [40mAlternatively, set [4mderived_at_start_only[24m [4m=[24m [4mtrue;[24m and[0m
                        [40myour work area will get a "head start" but the derived[0m
                        [40mfiles will not be checked for every build,[0m
                        [40moccasionally resulting in long build times after[0m
                        [40mintegrations.[0m

                        [40mSee also the [4mintegrate_begin_exceptions[24m and [4msymlink_-[0m
                        [4m[40mexceptions[24m fields.[0m

                [40mderived_file_copy = boolean;[0m
                        [40mThis field is true if copies are to be used for non-[0m
                        [40msource files which are present in the project[0m
                        [40mbaseline(s) but which are not present in the work[0m
                        [40marea, so that the work area has a complete set of[0m
                        [40mderived files.  This allows work areas to take[0m
                        [40madvantage of "precompiled" object files ([4metc[24m) in the[0m
                        [40mbaseline(s).[0m

                        [40mDefaults to false if not set.[0m

                        [40mIf (([4mderived_file_link[24m == true [1mand [22mhard links are[0m
                        [40mavailable) [1mor [22m([4mderived_file_symlink[24m == true [1mand[0m
                        [40msymbolic links are available)) this field will be[0m
                        [40mignored.[0m

                        [40mMaintaining the copies can be time consuming (and[0m
                        [40mspace consuming) for large projects, and add quite a[0m
                        [40mnoticeable delay before builds start doing anything.[0m
                        [40mIf possible, change your build system to use the[0m
                        [4m[40m$search_path[24m substitution instead and avoid symbolic[0m
                        [40mlinks.  Alternatively, set [4mderived_at_start_only[24m [4m=[0m
                        [4m[40mtrue;[24m and your work area will get a "head start" but[0m
                        [40mthe derived files will not be checked for every build,[0m
                        [40moccasionally resulting in long build times after[0m
                        [40mintegrations.[0m

                        [40mSee also the integrate_begin_exceptions and[0m
                        [40msymlink_exceptions fields (they apply to copies as[0m
                        [40mwell as symbolic links).[0m

                [40mduring_build_only = boolean;[0m
                        [40mThis field is set to true if you want the symbolic[0m
                        [40mlinks, hard links and/or copies removed again after[0m
                        [40meach build.  This allows the user to maintain the[0m
                        [40millusion of using a search path, without actually[0m
                        [40mdoing so.  This option is not especially efficient.[0m

                        [40mDefaults to false if not set.  [If the obsolete[0m
                        [4m[40mremove_symlinks_after_build[24m field is set, defaults to[0m
                        [40mthe value of that field, with a warning.][0m

                        [40mIf this field is false, the development directory will[0m
                        [40mbe populated by the develop begin ([4maedb[24m) command, and[0m
                        [40mthe integration directory will be populated by the[0m
                        [40mintegrate begin ([4maeib[24m) command.[0m

                [40mderived_at_start_only = boolean;[0m
                        [40mThis field controls whether the above fields[0m
                        [40mcontrolling the appearance of derived files are acted[0m
                        [40mupon before every build (false) or only when the work[0m
                        [40marea is created (true).[0m

                        [40mDefaults to false if not set.[0m

                        [40mThis field is ignored if the [4mduring_build_only[24m field[0m
                        [40mis true.[0m

                [40mThis field can be complex.  Here are a few examples; but much,[0m
                [40mmuch more is possible.  The first example will get you a[0m
                [40mdevelopment directory very similar to one presented by CVS:[0m
                        [40mdevelopment_directory_style =[0m
                        [40m{[0m
                            [40msource_file_copy = true;[0m
                        [40m};[0m
                [40mNote that this is hugely space inefficient, and can be quite[0m
                [40mslow.  The second example will get you a development directory[0m
                [40mvery similar to one presented by Tom Lord's [4march[24m:[0m
                        [40mdevelopment_directory_style =[0m
                        [40m{[0m
                            [40msource_file_link = true;[0m
                            [40msource_file_symlink = true;[0m
                            [40msource_file_copy = true;[0m
                        [40m};[0m
                [40mIdeally, however, you should use the [4m$search_path[24m substitution[0m
                [40mof the [4mbuild_command[24m field.  This is because the view path[0m
                [40mscales better than any other method.  On the other hand, you[0m
                [40mneed a DMT with an excellent view path implementation (and GNU[0m
                [4m[40mmake[24m doesn't).[0m

        [40mintegration_directory_style = { ... };[0m
                [40mThis field encapsulates a set of parameters controlling the[0m
                [40mappearance of the integration directory.  It has significant[0m
                [40mimplications for the way the DMT is used, and the directory[0m
                [40mappearance presented to the DMT.[0m

                [40mDefaults to the value of the [4mdevelopment_directory_style[24m field[0m
                [40mif not set.  Note that the obsolete [4mcreate_symlinks_before_-[0m
                [4m[40mintegration_build[24m and [4mremove_symlinks_after_integration_build[0m
                [40mfields affect this default (with a warning) but only if they[0m
                [40mare [4mexplicitly[24m set.[0m

                [40mNote that the [4mlink_integration_directory[24m field is still[0m
                [40mrelevant.  That field controls how the baseline is cloned to[0m
                [40mform the integration directory.  This field operates after[0m
                [40mthat operation.[0m

        [40mbuild_time_adjust_notify_command = string;[0m
                [40mThis command is run when Aegis adjusts the last-time-modified[0m
                [40mtime-stamp on files in the integration directory.  If the[0m
                [40mbuild tool uses additional information to supplement file[0m
                [40mmodification times, this command gives you the opportunity to[0m
                [40mre-sync the associated database.[0m

                [40mExecuted as: the project owner.[0m

                [40mCurrent directory: the integration directory.  This is what is[0m
                [40mabout to be come the new baseline.[0m

                [40mExit status: NOT ignored. Note that a failure here puts the[0m
                [40mchange in a partial state from which recovery may be[0m
                [40mdifficult. Best to define this command with a [4mset[24m+e so that[0m
                [40merrors are ignored at the command level.[0m

        [40mbuild_covers_all_architectures = boolean;[0m
                [40mThis field is set to true if the build command, when executed[0m
                [40mon any architecture, results in all architectures being built.[0m
                [40mThis may be accomplished, for example, by using cross-[0m
                [40mcompilation techniques, or Cook's ability to nominate hosts on[0m
                [40mwhich to execute each build rule.[0m

        [40mtest_covers_all_architectures = boolean;[0m
                [40mThis field is set to true if the test command, when executed[0m
                [40mon any architecture, results in all architectures being[0m
                [40mtested.  This may be accomplished, for example, by using[0m
                [40mCook's ability to nominate hosts on which to execute each test[0m
                [40mrule.[0m

        [40msymlink_exceptions = [ string ];[0m
                [40mThis field is used to list filename patterns for which[0m
                [40msymbolic links must not be made between the development[0m
                [40mdirectory and the baseline.  These are usually state files for[0m
                [40mvarious tools.  The patterns are matched against the whole[0m
                [40mfilename; naming only the last filename path element will [4mnot[0m
                [40mwork (unless the pattern starts with "*").[0m

        [40mchange_file_command = string;[0m
                [40mThis field contains a command to be executed whenever a 'aegis[0m
                [40m-CoPy_file', 'aegis -New_File' 'aegis -New_Test' 'aegis[0m
                [40m-MoVe_file' or 'aegis -ReMove_file' command is successful.[0m
                [40mSee also command-specific overrides.  If this field is absent,[0m
                [40mnothing is done.  Used by the [4maecp[24m(1), [4maenv[24m(1), [4maenf[24m(1),[0m
                [4m[40maerm[24m(1), and [4maemv[24m(1) commands.  All of the substitutions[0m
                [40mdescribed by [4maesub[24m(5) are available; in addition,[0m

                [40m${File_List}[0m
                        [40mSpace separated list of files named.[0m

                [40mExecuted as: the developer.  Current directory: the[0m
                [40mdevelopment directory of the change.  Exit status: ignored.[0m

        [40mchange_file_undo_command = string;[0m
                [40mThis field contains a command to be executed whenever a 'aegis[0m
                [40m-CoPy_file_Undo', 'aegis -MoVe_file_Undo' 'aegis[0m
                [40m-New_File_Undo', 'aegis -New_Test_Undo', or 'aegis[0m
                [40m-ReMove_file_Undo' command is successful.  Default to [4mchange_-[0m
                [4m[40mfile_command[24m if absent.  See also command-specific overrides.[0m
                [40mIf both fields are absent, nothing is done.  Used by the[0m
                [4m[40maecpu[24m(1), [4maemvu[24m(1), [4maenfu[24m(1), [4maentu[24m(1) or [4maermu[24m(1), commands.[0m
                [40mAll of the substitutions described by [4maesub[24m(5) are available;[0m
                [40min addition,[0m

                [40m${File_List}[0m
                        [40mSpace separated list of files named.[0m

                [40mExecuted as: the developer.  Current directory: the[0m
                [40mdevelopment directory of the change.  Exit status: ignored.[0m

        [40mnew_file_command = string;[0m
                [40mExecuted whenever the aegis -new_file command is run[0m
                [40msuccessfully.  Defaults to `change_file_command' if not set.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available.[0m
                [40mIn addition:[0m

                [40m${File_List}[0m
                        [40mSpace separated list of files named (at times, can be[0m
                        [40mempty).[0m

                [40mExecuted as: the developer.  Current directory: the[0m
                [40mdevelopment directory of the change.  Exit status: ignored.[0m

        [40mnew_test_command = string;[0m
                [40mExecuted whenever the aegis -new_test command is run[0m
                [40msuccessfully.  Defaults to `change_file_command' if not set.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available.[0m
                [40mIn addition:[0m

                [40m${File_List}[0m
                        [40mSpace separated list of files named (at times, can be[0m
                        [40mempty).[0m

                [40mExecuted as: the developer.  Current directory: the[0m
                [40mdevelopment directory of the change.  Exit status: ignored.[0m

        [40mcopy_file_command = string;[0m
                [40mExecuted whenever the aegis -copy_file command is run[0m
                [40msuccessfully.  Defaults to `change_file_command' if not set.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available.[0m
                [40mIn addition:[0m

                [40m${File_List}[0m
                        [40mSpace separated list of files named (at times, can be[0m
                        [40mempty).[0m

                [40mExecuted as: the developer.  Current directory: the[0m
                [40mdevelopment directory of the change.  Exit status: ignored.[0m

        [40mremove_file_command = string;[0m
                [40mExecuted whenever the aegis -remove_file command is run[0m
                [40msuccessfully.  Defaults to `change_file_command' if not set.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available.[0m
                [40mIn addition:[0m

                [40m${File_List}[0m
                        [40mSpace separated list of files named (at times, can be[0m
                        [40mempty).[0m

                [40mExecuted as: the developer.  Current directory: the[0m
                [40mdevelopment directory of the change.  Exit status: ignored.[0m

        [40mnew_file_undo_command = string;[0m
                [40mExecuted whenever the aegis -new_file_undo command is run[0m
                [40msuccessfully.  Defaults to change_file_undo_command if not[0m
                [40mset.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available.[0m
                [40mIn addition:[0m

                [40m${File_List}[0m
                        [40mSpace separated list of files named (at times, can be[0m
                        [40mempty).[0m

                [40mExecuted as: the developer.  Current directory: the[0m
                [40mdevelopment directory of the change.  Exit status: ignored.[0m

        [40mnew_test_undo_command = string;[0m
                [40mExecuted whenever the aegis -new_test_undo command is run[0m
                [40msuccessfully.  Defaults to change_file_undo_command if not[0m
                [40mset.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available.[0m
                [40mIn addition:[0m

                [40m${File_List}[0m
                        [40mSpace separated list of files named (at times, can be[0m
                        [40mempty).[0m

                [40mExecuted as: the developer Current directory: the development[0m
                [40mdirectory of the change Exit status: ignored[0m

        [40mcopy_file_undo_command = string;[0m
                [40mExecuted whenever the aegis -copy_file_undo command is run[0m
                [40msuccessfully.  Defaults to change_file_undo_command if not[0m
                [40mset.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available.[0m
                [40mIn addition:[0m

                [40m${File_List}[0m
                        [40mSpace separated list of files named (at times, can be[0m
                        [40mempty).[0m

                [40mExecuted as: the developer Current directory: the development[0m
                [40mdirectory of the change Exit status: ignored[0m

        [40mremove_file_undo_command = string;[0m
                [40mExecuted whenever the aegis -remove_file_undo command is run[0m
                [40msuccessfully.  Defaults to change_file_undo_command if not[0m
                [40mset.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available.[0m
                [40mIn addition:[0m

                [40m${File_List}[0m
                        [40mSpace separated list of files named (at times, can be[0m
                        [40mempty).[0m

                [40mExecuted as: the developer Current directory: the development[0m
                [40mdirectory of the change Exit status: ignored[0m

        [40mmake_transparent_command = string;[0m
                [40mThe make_transparent_command is executed whenever the aegis[0m
                [40m-make_transparent command is run successfully.  Defaults to[0m
                [40mchange_file_command if not set.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available.[0m
                [40mIn addition:[0m

                [40m${File_List}[0m
                        [40mSpace separated list of files named (at times, can be[0m
                        [40mempty).[0m

                [40mExecuted as: the developer Current directory: the development[0m
                [40mdirectory of the change Exit status: ignored[0m

        [40mmake_transparent_undo_command = string;[0m
                [40mThe make_transparent_undo_command is executed whenever the[0m
                [40maegis -make_transparent_undo command is run successfully.[0m
                [40mDefaults to change_file_undo_command if not set.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available.[0m
                [40mIn addition:[0m

                [40m${File_List}[0m
                        [40mSpace separated list of files named (at times, can be[0m
                        [40mempty).[0m

                [40mExecuted as: the developer Current directory: the development[0m
                [40mdirectory of the change Exit status: ignored[0m

        [40mproject_file_command = string;[0m
                [40mThis field contains a command to be executed during a[0m
                [40mdevelopment build before the [4mdevelopment[24m [4mbuild[24m [4mcommand[24m above,[0m
                [40mwhen (a) it is the first build after a develop begin, or (b)[0m
                [40msome other change has been integrated into the baseline since[0m
                [40mthe last build.  If this field is absent, nothing is done.[0m
                [40mUsed by the [4maeb[24m(1) command.  All of the substitutions[0m
                [40mdescribed by [4maesub[24m(5) are available.[0m

        [40mdevelop_begin_command = string;[0m
                [40mThis field contains a command to be executed whenever a 'aegis[0m
                [40m-Develop_Begin' command is successful.  If this field is[0m
                [40mabsent, nothing is done.  Used by the [4maedb[24m(1) command.  All of[0m
                [40mthe substitutions described by [4maesub[24m(5) are available.[0m

                [40mExecuted as: the developer.  Current directory: the[0m
                [40mdevelopment directory of the change.  Exit status: ignored.[0m

        [40mdevelop_begin_undo_command = string;[0m
                [40mThis field contains a command to be executed whenever a 'aegis[0m
                [40m-Develop_Begin_Undo' command is successful.  If this field is[0m
                [40mabsent, nothing is done.  Used by the [4maedbu[24m(1) command.  All[0m
                [40mof the substitutions described by [4maesub[24m(5) are available.[0m

                [40mExecuted as: the developer.  Current directory: wherever the[0m
                [40mcommand was executed from.  Exit status: ignored.[0m

        [40mintegrate_begin_command = string;[0m
                [40mThis field contains a command to be executed whenever a 'aegis[0m
                [40m-Integrate_Begin' command is successful.  If this field is[0m
                [40mabsent, nothing is done.  Used by the [4maeib[24m(1) command.  All of[0m
                [40mthe substitutions described by [4maesub[24m(5) are available.[0m

                [40mExecuted as: the project owner.  Current directory: the[0m
                [40mintegration directory.  Exit status: ignored.[0m

        [40mlink_integration_directory = boolean;[0m
                [40mThis flag is true if Aegis should link the files from the[0m
                [40mbaseline into the integration directory, rather than copy them[0m
                [40m(the default).  This has risks, as the build script (e.g.[0m
                [4m[40mHowto.cook[24m or [4mMakefile[24m, etc) must unlink targets before[0m
                [40mrebuilding them; if this is not done the baseline will be[0m
                [40mcorrupted.  Used by the [4maeib[24m(1) command.[0m

        [40mintegrate_begin_exceptions = [ string ];[0m
                [40mThis field may be used to specify a list of file names (and[0m
                [40mfile name patterns) which are to be omitted from the copy[0m
                [40m(link) of the baseline when creating the integration[0m
                [40mdirectory.  Used by the [4maeib[24m(1) command.  This field only[0m
                [40mapplies to derived files, it does [4mnot[24m apply to source files.[0m
                [40mThe patterns are matched against the whole filename; naming[0m
                [40monly the last filename path element will [4mnot[24m work (unless the[0m
                [40mpattern starts with "*").[0m

        [40mhistory_create_command = string;[0m
                [40mThis field is used to create a new history.  The command is[0m
                [40malways executed as the project owner.  Used by the [4maeipass[24m(1)[0m
                [40mcommand.[0m

                [40mIt is strongly recommended that the [4mhistory_create_command[24m and[0m
                [4m[40mhistory_put_command[24m fields are identical.  If not set, the[0m
                [4m[40mhistory_create_command[24m field defaults to the same value as the[0m
                [4m[40mhistory_put_command[24m field.[0m

                [40mAll of the substitutions described by [4maesub[24m(5) are available;[0m
                [40min addition,[0m

                [40m${Input}[0m
                        [40mAbsolute path of the source file.[0m

                [40m${History}[0m
                        [40mAbsolute path of the history file.  This may need to[0m
                        [40mbe reworked with the [4mDirname[24m and [4mBasename[0m
                        [40msubstitutions to yield a string suitable for the[0m
                        [40mhistory tool in question.[0m

                [40m${File_Name}[0m
                        [40mThe base relative file name of the file for this[0m
                        [40mcheck-in.  Note that the file name can vary over the[0m
                        [40mlifetime of the file as it is renamed, but the history[0m
                        [40mfile name (above) never varies.  [4mDo[24m [4mnot[24m [4muse[24m this as[0m
                        [40mthe name of the history file.  [1m(Optional)[0m

                [40m${UUID} The universally unique identifier of the source file.[0m
                        [40mThis is invariant for the lifetime of the file.  [4mDo[0m
                        [4m[40mnot[24m [4muse[24m use this as the name of the history file.[0m
                        [1m[40m(Optional)[0m

                [40mSee also the [4mhistory_put_trashes_file[24m field, below.[0m

                [40mExecuted as: the project owner.  Current directory: the base[0m
                [40mof the history tree.  Exit status: zero indicates success, all[0m
                [40mnon-zero exits indicate failure (the integrate pass will[0m
                [40mfail).[0m

        [40mhistory_get_command = string;[0m
                [40mThis field is used to get a file from history.  The command[0m
                [40mmay be executed by developers.  Used by the [4maeipass[24m(1) and[0m
                [4m[40maecp[24m(1) commands.  All of the substitutions described by[0m
                [4m[40maesub[24m(5) are available; in addition,[0m

                [40m${History}[0m
                        [40mThe absolute path of the history file.  This may need[0m
                        [40mto be reworked with the [4mDirname[24m and [4mBasename[0m
                        [40msubstitutions to yield a string suitable for the[0m
                        [40mhistory tool in question.[0m

                [40m${Edit}[0m
                        [40mThe edit number to be extracted.  It may be an[0m
                        [40marbitrary string, varying on the particular history[0m
                        [40mtool.[0m

                [40m${Output}[0m
                        [40mThe absolute path of the destination file.[0m

                [40mExecuted as: the developer (or the executing user, in the case[0m
                [40mof the -independent option).  Current directory: the base of[0m
                [40mthe history tree Exit status: zero indicates success, all non-[0m
                [40mzero exits indicate failure (the [4maecp[24m will fail).[0m

        [40mhistory_put_command = string;[0m
                [40mThis field is used to add a new change to the history.  The[0m
                [40mcommand is always executed as the project owner.  Used by the[0m
                [4m[40maeipass[24m(1) command.[0m

                [40mIt is strongly recommended that the [4mhistory_put_command[24m and[0m
                [4m[40mhistory_create__command[24m fields are identical.  If not set, the[0m
                [4m[40mhistory_put_command[24m field defaults to the same value as the[0m
                [4m[40mhistory_create_command[24m field.[0m

                [40mAll of the substitutions described by [4maesub[24m(5) are available;[0m
                [40min addition,[0m

                [40m${Input}[0m
                        [40mThe absolute path of the source file.[0m

                [40m${History}[0m
                        [40mThe absolute path of the history file.  This may need[0m
                        [40mto be reworked with the [4mDirname[24m and [4mBasename[0m
                        [40msubstitutions to yield a string suitable for the[0m
                        [40mhistory tool in question.[0m

                [40m${File_Name}[0m
                        [40mThe base relative file name of the file for this[0m
                        [40mcheck-in.  Note that the file name can vary over the[0m
                        [40mlifetime of the file as it is renamed, but the history[0m
                        [40mfile name (above) never varies.  [4mDo[24m [4mnot[24m [4muse[24m this as[0m
                        [40mthe name of the history file.  [1m(Optional)[0m

                [40m${UUID} The universally unique identifier of the source file.[0m
                        [40mThis is invariant for the lifetime of the file.  [4mDo[0m
                        [4m[40mnot[24m [4muse[24m use this as the name of the history file.[0m
                        [1m[40m(Optional)[0m

                [40mSee also the [4mhistory_put_trashes_file[24m field, below.[0m

                [40mExecuted as: the project owner.  Current directory: the base[0m
                [40mof the history tree.  Exit status: zero indicates success, all[0m
                [40mnon-zero exits indicate failure (the integrate pass will[0m
                [40mfail).[0m

        [40mhistory_transaction_begin_command = string;[0m
                [40mThe history_transaction_begin_command field is used to specify[0m
                [40ma command to be run by [4maeipass[24m(1) before any history create or[0m
                [40mhistory put commands are run.  The default is to do nothing.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available.[0m
                [40mIf you need a transaction ID, use the [4m$version[24m substitution.[0m

                [40mExecuted as: the project owner.  Current directory: the base[0m
                [40mof the history tree.  Exit status: zero indicates success, all[0m
                [40mnon-zero exits indicate failure (the integrate pass will[0m
                [40mfail).[0m

        [40mhistory_transaction_end_command = string;[0m
                [40mThe history_transaction_end_command field is used to specify a[0m
                [40mcommand to be run by [4maeipass[24m(1) after any history create or[0m
                [40mhistory put commands are run, but before any history query[0m
                [40mcommands are run.  The default is to do nothing.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available.[0m
                [40mIf you need a transaction ID, use the [4m$version[24m substitution.[0m

                [40mExecuted as: the project owner.  Current directory: the base[0m
                [40mof the history tree.  Exit status: zero indicates success, all[0m
                [40mnon-zero exits indicate failure (the integrate pass will[0m
                [40mfail).[0m

        [40mhistory_transaction_abort_command = string;[0m
                [40mThe history_transaction_abort_command field is used to specify[0m
                [40ma command to be run by [4maeipass[24m(1) to indicate that a[0m
                [40mtransaction has been abandoned.  The default is to do nothing.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available.[0m
                [40mIf you need a transaction ID, use the [4m$version[24m substitution.[0m

                [40mExecuted as: the project owner.  Current directory: the base[0m
                [40mof the history tree.  Exit status: ignored (the integrate pass[0m
                [40mhas already failed).[0m

        [40mhistory_query_command = string;[0m
                [40mThis field is used to query the topmost edit of a history[0m
                [40mfile.  Result to be printed on the standard output.  This[0m
                [40mcommand may be executed by developers.  Used by the [4maeipass[24m(1)[0m
                [40mand [4maecp[24m(1) commands.  All of the substitutions described by[0m
                [4m[40maesub[24m(5) are available; in addition,[0m

                [40m${History}[0m
                        [40mThe absolute path of the history file.  This may need[0m
                        [40mto be reworked with the [4mDirname[24m and [4mBasename[0m
                        [40msubstitutions to yield a string suitable for the[0m
                        [40mhistory tool in question.[0m

                [40mExecuted as: the project owner.  Current directory: the base[0m
                [40mof the history tree.  Exit status: zero indicates success, all[0m
                [40mnon-zero exits indicate failure (the integrate pass will[0m
                [40mfail).[0m

        [40mhistory_label_command = string;[0m
                [40mThis field contains a command to be executed whenever a[0m
                [4m[40maeipass[24m(1) or [4maedn[24m(1) command is successful.  This command is[0m
                [40minvoked for [1mevery [22mfile in the project.  So using it incurs a[0m
                [40mperformance penalty.  If this field is absent, nothing is[0m
                [40mdone.  All of the substitutions described by [4maesub[24m(5) are[0m
                [40mavailable; in addition,[0m

                [40m${History}[0m
                        [40mThe absolute path of the history file.[0m

                [40m${Edit}[0m
                        [40mThe edit number to be labeled.  It may be an arbitrary[0m
                        [40mstring, varying on the particular history tool.[0m

                [40m${Label}[0m
                        [40mThe label to  be attached to the history.  When[0m
                        [40mexecuted from [4maeipass[24m(1) this value is the same as[0m
                        [4m[40m${Version},[24m which may need to be reworked with the[0m
                        [4m[40m${Subst}[24m substitutions to yield a string suitable for[0m
                        [40mthe history tool in question.  When executed from[0m
                        [4m[40maedn[24m(1) it is set to the value passed in from the[0m
                        [40mcommand line.[0m

                [40mExecuted as: the project owner.  Current directory: the base[0m
                [40mof the history tree.  Exit status: zero indicates success, all[0m
                [40mnon-zero exits indicate failure (a warning will be issued).[0m

                [40mLabeling does not scale, so the use of this command is not[0m
                [40mencouraged.  If you have a project with 10,000 files, and a[0m
                [40mchange modified exactly one of them, only one [4mhistory_put_-[0m
                [4m[40mcommand[24m execution is required, which operates on one history[0m
                [40mfile.  If you have labeling turned on, it will also be[0m
                [40mnecessary to execute 10,000 [4mhistory_label_command[24ms, to add[0m
                [40minformation Aegis will never use.[0m

        [40mhistory_put_trashes_file = (fatal, warn, ignore);[0m
                [40mMany history tools (e.g. RCS) can modify the contents of the[0m
                [40mfile when it is committed.  While there are usually options to[0m
                [40mturn this off, they are seldom used.  The problem is: if the[0m
                [40mcommit changes the file, the source in the repository now no[0m
                [40mlonger matches the object file in the repository - i.e. the[0m
                [40mhistory tool has compromised the referential integrity of the[0m
                [40mrepository.[0m

                [40mfatal[0m
                    [40mEmit a fatal error if one or more source files are[0m
                    [40mmodified by a [4mhistory_put_command[24m or[0m
                    [4m[40mhistory_create_command[24m.  This is the default.[0m

                [40mwarn[0m
                    [40mEmit a warning if a source file is modified.[0m

                [40mignore[0m
                    [40mIgnore a source file changing.  You sure better hope it[0m
                    [40mwas only in a comment![0m

        [40mhistory_content_limitation = (ascii_text, international_text,[0m
        [40mbinary_capable);[0m
                [40mThis field describes the content style which the history tool[0m
                [40mis capable of working with.[0m

                [40mascii_text[0m
                        [40mThe history tool can only cope with files which[0m
                        [40mcontain printable ASCII characters, plus space, tab[0m
                        [40mand newline.  The file must end with a newline.  This[0m
                        [40mis the default.[0m

                [40minternational_text[0m
                        [40mThe history tool can only cope with files which do not[0m
                        [40mcontain the NUL character.  The file must end with a[0m
                        [40mnewline.[0m

                [40mbinary_capable[0m
                        [40mThe history tool can cope with all files without any[0m
                        [40mlimitation on the form of the contents.[0m

                [40mWhen a file is added to the history (by either the [4mhistory_-[0m
                [4m[40mcreate_command[24m or the [4mhistory_put_command[24m field) it is[0m
                [40mexamined for conformance to this limitation.  If there is a[0m
                [40mproblem, the file is encoded in either quoted printable for[0m
                [40mMIME64, whichever is smaller, before being given to the[0m
                [40mhistory tool.  This encoding is transparent, the file in the[0m
                [40mbaseline is unchanged.[0m

                [40mOn extract (the [4mhistory_get_command[24m field) the encoding is[0m
                [40mreversed, using information attached to the change file[0m
                [40minformation.  This is because each put could use a different[0m
                [40mencoding (although in practice, file contents rarely change[0m
                [40mthat dramatically, and the same encoding is likely to be[0m
                [40mdeduced every time).[0m

                [40mPlease note that this field [1mdoes not [22mapply to the [4mdiff_command[0m
                [40mor [4mmerge_command[24m fields.[0m

        [40mdiff_command = string;[0m
                [40mThis field is used to difference of 2 files.  The command is[0m
                [40malways executed by developers.  Used by the [4maed[24m(1) command.[0m
                [40mAll of the substitutions described by [4maesub[24m(5) are available;[0m
                [40min addition,[0m

                [40m${ORiginal}[0m
                        [40mThe absolute path of the original file copied into the[0m
                        [40mchange.  Usually in the baseline, but not always.[0m

                [40m${Input}[0m
                        [40mThe absolute path of the file in the development[0m
                        [40mdirectory.[0m

                [40m${Output}[0m
                        [40mThe absolute path of the file in which to write the[0m
                        [40mdifference listing.[0m

                [40mExecuted as: the project owner (for integration diffs), or the[0m
                [40mdeveloper (for development diffs).  Current directory: the[0m
                [40mintegration directory (for integration diffs), or the[0m
                [40mdevelopment directory (for development diffs).  Exit status:[0m
                [40mzero indicates success, all non-zero exits indicate failure[0m
                [40m(the aed will fail).[0m

                [1m[40mNote: [22mIt is possible to configure a project to omit the diff[0m
                [40mstep as unnecessary, by the following setting:[0m
                        [40mdiff_command = "exit 0";[0m
                [40mThis disables all generation, checking and validation of[0m
                [40mdifference file for each change source file.  The merge[0m
                [40mfunctions of the [4maediff[24m(1) command are unaffected by this[0m
                [40msetting.[0m

        [40mmerge_command = string;[0m
                [40mThis field is used to merge two competing edits to a file.[0m
                [40mThe command is always executed by developers.  The current[0m
                [40mdirectory will be the development directory.  This field is[0m
                [40mused by the [4maed[24m(1) command.  All of the substitutions[0m
                [40mdescribed by [4maesub[24m(5) are available; in addition,[0m

                [40m${ORiginal}[0m
                        [40mThe absolute path of the original file copied into the[0m
                        [40mchange.  Usually not in the baseline, often a[0m
                        [40mtemporary file.[0m

                [40m${Most_Recent}[0m
                        [40mThe absolute path of the competing edit, usually in[0m
                        [40mthe baseline.[0m

                [40m${Input}[0m
                        [40mThe absolute path of the file in the development[0m
                        [40mdirectory.  This is the "preferred" edit, if the tool[0m
                        [40mhas this concept when highlighting conflicting edits.[0m

                [40m${Output}[0m
                        [40mThe absolute path of the file in which to write the[0m
                        [40mmerged result.  This will usually be the name if a[0m
                        [40mchange source file in the development directory.[0m

                [40mIt is important that this command does not move files around.[0m
                [40m(See the obsolete [4mdiff3_command[24m field, below, for some[0m
                [40mhistory.)[0m

                [40mExecuted as: the project owner (for integration diffs), or the[0m
                [40mdeveloper (for development diffs).  Current directory: the[0m
                [40mintegration directory (for integration diffs), or the[0m
                [40mdevelopment directory (for development diffs).  Exit status:[0m
                [40mzero indicates success, all non-zero exits indicate failure[0m
                [40m(the aed will fail).[0m

        [40mpatch_diff_command = string;[0m
                [40mThe difference of 2 files, to send around as a patch.  (This[0m
                [40misn't the same as diff_command, because it's aimed at GNU[0m
                [40mPatch, not at humans.)  The command is always executed by[0m
                [40mdevelopers.  Used by the [4maepatch[24m(1) command.[0m

                [40mDefaults to "set +e; diff -c -L $index -L $index $original[0m
                [40m$input > $output; test $? -le 1" if not set.[0m

                [40mAll of the substitutions described by [4maesub[24m(5) are available;[0m
                [40min addition,[0m

                [40m${ORiginal}[0m
                        [40mThe absolute path of the original file copied into the[0m
                        [40mchange.  Usually in the baseline, but not always.[0m

                [40m${Input}[0m
                        [40mThe absolute path of the file in the development[0m
                        [40mdirectory.[0m

                [40m${Output}[0m
                        [40mThe absolute path of the file in which to write the[0m
                        [40mdifference listing.[0m

                [40m${INDex}[0m
                        [40mThe project-relative name of the file, for use when[0m
                        [40mthe file name is embedded in the output.  (Optional.)[0m

                [40mExecuted as: the project owner (for integration diffs), or the[0m
                [40mdeveloper (for development diffs).  Current directory: the[0m
                [40mintegration directory (for integration diffs), or the[0m
                [40mdevelopment directory (for development diffs).  Exit status:[0m
                [40mzero indicates success, all non-zero exits indicate failure[0m
                [40m(the aed will fail).[0m

        [40mannotate_diff_command = string;[0m
                [40mThe difference of 2 files, for the use of the [4maeannotate[24m(1)[0m
                [40mcommand.  (This isn't the same as the [4mdiff_command[24m field,[0m
                [40mbecause it's aimed at [4maeannotate[24m(1), not at humans.)  The[0m
                [40mcommand is always executed by developers.  Used by the[0m
                [4m[40maeannotate[24m(1) command.[0m

                [40mExtreme care should be taken if you are considering setting[0m
                [40mthis field, otherwise the result reported by [4maeannotate[24m(1) may[0m
                [40mbear little relation to reality.  The most useful option is[0m
                [40mGNU diff's [1m--ignore-all-space [22moption, which will have the[0m
                [40meffect of ignoring the majority of indenting and code[0m
                [40mformatting changes.  The [1m--ignore-case [22moption could also be[0m
                [40museful for case insensitive languages such as FORTRAN or PL/1.[0m
                [40mAvoid options which would alter the number of lines, such as [1m-[0m
                [1m[40m-ignore-blank-lines [22mor [1m--context [22mas these will produce[0m
                [40mmisleading results.[0m

                [40mDefaults to "set +e; diff $option $original $input > $output;[0m
                [40mtest $? -le 1" if not set.[0m

                [40mAll of the substitutions described by [4maesub[24m(5) are available;[0m
                [40min addition,[0m

                [40m${ORiginal}[0m
                        [40mThe absolute path of the original file copied into the[0m
                        [40mchange.  Usually in the baseline, but not always.[0m

                [40m${Input}[0m
                        [40mThe absolute path of the file in the development[0m
                        [40mdirectory.[0m

                [40m${Output}[0m
                        [40mThe absolute path of the file in which to write the[0m
                        [40mdifference listing.[0m

                [40m${INDex}[0m
                        [40mThe project-relative name of the file, for use when[0m
                        [40mthe file name is embedded in the output.  (Optional.)[0m

                [40m${OPTion}[0m
                        [40mExtra options to be passed to the diff command, as set[0m
                        [40mby the [4maeannotate[24m(1) [1m-diff-option [22mcommand line option.[0m
                        [40mUse with extreme care.[0m

                [40mExecuted as: the project owner (for integration diffs), or the[0m
                [40mdeveloper (for development diffs).  Current directory: the[0m
                [40mintegration directory (for integration diffs), or the[0m
                [40mdevelopment directory (for development diffs).  Exit status:[0m
                [40mzero indicates success, all non-zero exits indicate failure[0m
                [40m(the aed will fail).[0m

        [40mreview_policy_command = string;[0m
                [40mThis field is used to set the command to be executed by the[0m
                [4m[40maerpass[24m(1) command.  This command is useful in cases where the[0m
                [40menterprise has determined that more than one review is[0m
                [40mnecessary or that the reviewer must be senior to the[0m
                [40mdeveloper, [4metc[24m.  Defaults to "exit 0" if not set.[0m

                [40mThe exit status is examined.  An zero exit status (success)[0m
                [40mmeans that the change will proceed to the [4mawaiting[24m [4mintegration[0m
                [40mstate; a non-zero exit status (failure) means that the change[0m
                [40mrequires further review state, and the [4mdevelop_end_action[24m is[0m
                [40mconsulted to determine the appropriate state ([4mawaiting_review[0m
                [40mor [4mbeing_reviewed[24m) for the change to move to.[0m

                [40mAll of the substitutions described by [4maesub[24m(5) are available.[0m
                [40mOf particular interest are ${Change_Developer_List} and[0m
                [40m${Change_Reviewer_List} for passing the specific staff[0m
                [40minvolved with the change.[0m

                [40mExecuted as: the current reviewer.  Current directory: the[0m
                [40mdevelopment directory.  Exit status: zero indicates success,[0m
                [40mnon-zero indicates failure.[0m

                [40mFor example, to have a script which is a project source file[0m
                [40mto be used to gate the code review process, a setting such as[0m
                [40mthe following may be used:[0m
                        [40mreview_policy_command =[0m
                            [40m"$sh ${source script/reviewpolicy.sh} "[0m
                            [40m"-p $project -c $change "[0m
                            [40m"-d ${developer_list} "[0m
                            [40m"-r ${reviewer_list}"[0m
                            [40m;[0m
                [40mThis is only one of many ways to implement a project specific[0m
                [40mreview policy.[0m

        [40mdevelop_end_policy_command = string;[0m
                [40mThis field is used to set the command to be executed by the[0m
                [4m[40maede[24m(1) command.  This command is useful in cases where the[0m
                [40menterprise has determined that additional pre-conditions must[0m
                [40mbe met (in addition to those already imposed by the [4maede[24m(1)[0m
                [40mcommand) before a change may leave the [4mbeing[24m [4mdeveloped[24m state.[0m
                [40mDefaults to "exit 0" if not set.[0m

                [40mThe exit status is examined.  An zero exit status (success)[0m
                [40mmeans that the change may leave to the [4mbeing[24m [4mdeveloped[24m state;[0m
                [40ma non-zero exit status (failure) means that the change[0m
                [40mrequires further development.[0m

                [40mAll of the substitutions described by [4maesub[24m(5) are available.[0m

                [40mExecuted as: the developer.  Current directory: the[0m
                [40mdevelopment directory.  Exit status: zero indicates success,[0m
                [40mnon-zero indicates failure.[0m

                [40mThere are some common validations available in the [4maede-[0m
                [4m[40mpolicy[24m(1) command; you may choose all or only some of them, or[0m
                [40myou may choose to write a policy command specific to your[0m
                [40mproject.[0m

        [40munchanged_file_develop_end_policy = (...);[0m
                [40mThis field may be used to control what happens when[0m
                [40mdevelopment of a change is ended, and the change contains[0m
                [40mfiles which have not had their contents or their attributes[0m
                [40mchanged.[0m

                [40mignore  Does not look for or warn about unchanged files.  This[0m
                        [40mthe default.[0m

                [40mwarning If the change sets contains unchanged files, a warning[0m
                        [40mwill be issued for each one.[0m

                [40merror   If the change set contains unchanged files, an error[0m
                        [40mwill be issued for each one, and develop end will not[0m
                        [40mcomplete (the change will remain in the [4mbeing[0m
                        [4m[40mdeveloped[24m state).[0m

        [40munchanged_file_integrate_pass_policy = (...);[0m
                [40mThis field may be used to control what happens when a change[0m
                [40mis completed, and the change contains files which have not had[0m
                [40mtheir contents or their attributes changed.[0m

                [40mignore  Does not look for or warn about unchanged files.  The[0m
                        [40mfile version will be added to the history.  This the[0m
                        [40mdefault.[0m

                [40mwarning If the change sets contains unchanged files, a warning[0m
                        [40mwill be issued for each one.  The file version will be[0m
                        [40madded to the history.[0m

                [40mremove  If the change set contains an unchanged file, it will[0m
                        [40mbe silently removed from the change set.  The file[0m
                        [40mversion will not be added to the history.  The project[0m
                        [40mfile is unaffected.[0m

        [40mtest_command = string;[0m
                [40mThis field is used to set the command to be executed by the[0m
                [4m[40maet[24m(1) command.  Defaults to "$shell $file_name" if not set.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available.[0m
                [40mIn addition:[0m

                [40m${File_Name}[0m
                        [40mThe absolute path of the test to be executed.[0m

                [40m${Search_Path}[0m
                        [40mColon separated list of directories to search for[0m
                        [40mtests and test support files.  (This is a normal[0m
                        [4m[40maesub[24m(5) substitution.)[0m

                [40m${Search_Path_Executable}[0m
                        [40mColon separated list of directories to search for[0m
                        [40mexecutable files and executable support files.[0m
                        [40mUsually it is the same as the above, [4mexcept[24m during an[0m
                        [40m"aet -bl" command.[0m

                [40m${VARiables}[0m
                        [40mThe text of name=value variable settings from the[0m
                        [40mcommand line, suitably quoted to protect special[0m
                        [40mcharacter from the shell.  Will be appended to the end[0m
                        [40mof the command if not used explicitly.[0m

                [40mNote that tests are source files, and thus never have the[0m
                [40mexecute bit set.[0m

                [40mExecuted as: the project owner (for integration tests) or the[0m
                [40mdeveloper (for development tests), or the executing user (for[0m
                [40m-independent tests).  Current directory: the integration[0m
                [40mdirectory (for integration tests), the development directory[0m
                [40m(for development tests), the project baseline (for -bl tests),[0m
                [40mor the current directory (for -independent tests).  Exit[0m
                [40mstatus: zero indicates success, one indicates failure,[0m
                [40manything else indicates "no result".[0m

        [40mdevelopment_test_command = string;[0m
                [40mThis field is used to set the command to be executed by the[0m
                [4m[40maet[24m(1) command when a change is in the [4mbeing[24m [4mdeveloped[24m state.[0m
                [40mDefaults to be the same as the [4mtest_command[24m field if not set.[0m

                [1m[40mNote: [22mIt is a significantly bad idea to make tests behave[0m
                [40mdifferently in [4mbeing[24m [4mdevelopment[24m and [4mbeing[24m [4mintegrated[24m states;[0m
                [40mavoid this at all costs.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available.[0m
                [40mIn addition:[0m

                [40m${File_Name}[0m
                        [40mThe absolute path of the test to be executed.[0m

                [40m${File_Name}[0m
                        [40mThe absolute path of the test to be executed.[0m

                [40m${Search_Path}[0m
                        [40mColon separated list of directories to search for[0m
                        [40mtests and test support files.  (This is a normal[0m
                        [4m[40maesub[24m(5) substitution.)[0m

                [40m${Search_Path_Executable}[0m
                        [40mColon separated list of directories to search for[0m
                        [40mexecutable files and executable support files.[0m
                        [40mUsually it is the same as the above, [4mexcept[24m during an[0m
                        [40m"aet -bl" command.[0m

                [40m${VARiables}[0m
                        [40mThe text of name=value variable settings from the[0m
                        [40mcommand line, suitably quoted to protect special[0m
                        [40mcharacter from the shell.  Will be appended to the end[0m
                        [40mof the command if not used explicitly.[0m

                [40mNote that tests are source files, and thus never have the[0m
                [40mexecute bit set.[0m

                [40mExecuted as: the developer.  Current directory: the[0m
                [40mdevelopment directory (for development tests), the project[0m
                [40mbaseline (for -bl tests).  Exit status: zero indicates[0m
                [40msuccess, one indicates failure, anything else indicates "no[0m
                [40mresult".[0m

        [40mbatch_test_command = string;[0m
                [40mThis field is used to set the command to be executed by the[0m
                [4m[40maet[24m(1) command, in preference to the [4mtest_command[24m or[0m
                [4m[40mdevelopment_test_command[24m, if set.  It is capable of running[0m
                [40mmore than one test at once.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available.[0m
                [40mIn addition:[0m

                [40m${Output}[0m
                        [40mThis is the name of the file to be generated to hold[0m
                        [40mthe test results.  See [4maetest[24m(5) for the format of[0m
                        [40mthis file.[0m
                        [40mA space separated list of absolute paths of the tests[0m
                        [40mto be executed.[0m

                [40m${File_Names}[0m
                        [40mThe absolute path of the tests to be executed.[0m

                [40m${File_Name}[0m
                        [40mThe absolute path of the test to be executed.[0m

                [40m${Search_Path}[0m
                        [40mColon separated list of directories to search for[0m
                        [40mtests and test support files.  (This is a normal[0m
                        [4m[40maesub[24m(5) substitution.)[0m

                [40m${Search_Path_Executable}[0m
                        [40mColon separated list of directories to search for[0m
                        [40mexecutable files and executable support files.[0m
                        [40mUsually it is the same as the above, [4mexcept[24m during an[0m
                        [40m"aet -bl" command.[0m

                [40m${Current}[0m
                        [40mNumber of first test in the batch.[0m

                [40m${Total}[0m
                        [40mTotal number of tests. If this is 0 then no progress[0m
                        [40mmessages should be issued.[0m

                [40m${VARiables}[0m
                        [40mThe text of name=value variable settings from the[0m
                        [40mcommand line, suitably quoted to protect special[0m
                        [40mcharacter from the shell.  Will be appended to the end[0m
                        [40mof the command if not used explicitly.[0m

                [40mNote that tests are source files, and thus never have the[0m
                [40mexecute bit set.[0m

                [40mIt is strongly recommended that you design your test scripts[0m
                [40mso that they may be executed by either batch or non-batch[0m
                [40mmethods.  This permits simple migration when your environment[0m
                [40mchanges.[0m

                [40mExecuted as: the project owner (for integration tests) or the[0m
                [40mdeveloper (for development tests), or the executing user (for[0m
                [40m-independent tests).  Current directory: the integration[0m
                [40mdirectory (for integration tests), the development directory[0m
                [40m(for development tests), the project baseline (for -bl tests),[0m
                [40mor the current directory (for -independent tests).  Exit[0m
                [40mstatus: zero indicates success, one indicates failure,[0m
                [40manything else indicates "no result".[0m

        [40marchitecture_discriminator_command = string;[0m
                [40mIf this field is present it is used as a command to be[0m
                [40mexecuted in order to further identify the platform[0m
                [40marchitecture (see below).  All of the substitutions described[0m
                [40mby [4maesub[24m(5) are available;[0m
                [40mExecuted as: the developer.  Current directory: the[0m
                [40mdevelopment directory of the change.  Exit status: zero[0m
                [40mindicates success, all non-zero exits indicate failure.[0m

        [40marchitecture = [{ ... }];[0m
                [40mThis field is a list of system and machine architectures on[0m
                [40mwhich each change must successfully build and test.  May be[0m
                [40massigned more than once.  The structures listed have fields as[0m
                [40mfollows:[0m

                [40mname = string;[0m
                        [40mThe name of the architecture.  This name is available[0m
                        [40min the [4m${ARCHitecture}[24m substitution (see [4maesub[24m(5) for[0m
                        [40mmore information), as well as being used internally by[0m
                        [40mAegis.  You may use almost any name for your[0m
                        [40marchitecture, but it is best to avoid shell special[0m
                        [40mcharacters and white space, because it may be[0m
                        [40msubstituted into commands to be executed by Aegis.[0m

                [40mpattern = string;[0m
                        [40mThe system and machine architecture are determined by[0m
                        [40musing the [4muname[24m(2) system call.  The [4muname[24m(2) return[0m
                        [40mvalue is assembled into a string of the form "[4msysname[24m[1m-[0m
                        [4m[40mrelease[24m[1m-[4m[22mversion[24m[1m-[4m[22mmachine[24m", or "[4msysname[24m[1m-[4m[22mrelease[24m[1m-[4m[22mversion[24m[1m-[0m
                        [4m[40mmachine[24m[1m-[4m[22mdisc[24m" if [4marchitecture_discriminator_command[24m is[0m
                        [40mused.[0m

                        [40mThe pattern field must match this uname result string.[0m
                        [40mThe first match found is used.  The pattern is a shell[0m
                        [40mfile name pattern, see [4msh[24m(1) for more information.[0m

                        [40mFor example, the pattern [4mSunOS-4.1*-*-sun4*[24m matches a[0m
                        [40mmachine the author commonly uses, which returns[0m
                        [4m[40mSunOS-4.1.3-8-sun4m[24m from the [4muname[24m(2) system call.[0m

                [40mmode = (required, optional, forbidden);[0m
                        [40mThe [4mmode[24m field is used to control how the architecture[0m
                        [40minformation is used.[0m

                        [40mrequired[0m
                                [40mArchitectures of thus mode will be copied into[0m
                                [40mchanges as their required architectures when[0m
                                [40mthe change is created.  This is the default.[0m

                        [40moptional[0m
                                [40mArchitectures of thus mode will [4mnot[24m be copied[0m
                                [40minto changes as their required architectures[0m
                                [40mwhen the change is created.  However, if you[0m
                                [40madd them subsequently, they become required[0m
                                [4m[40mfor[24m [4mthat[24m [4mchange[24m.[0m

                        [40mforbidden[0m
                                [40mAegis will refuse to build or test on[0m
                                [40marchitectures of this mode.[0m

                        [40mWhen a change is created, the [4mrequired[24m architecture[0m
                        [40mnames are copied into the change's architecture list.[0m
                        [40mOnce names are in this list, they are required for the[0m
                        [40mchange, and the project attributes are less relevant.[0m

                [40mIf the architecture field is not set, it defaults to[0m
                        [40marchitecture =[0m
                        [40m[[0m
                                [40m{[0m
                                        [40mname = "unspecified";[0m
                                        [40mpattern = "*";[0m
                                        [40mmode = required;[0m
                                [40m}[0m
                        [40m];[0m

        [40mfile_template = [ { ... } ];[0m
                [40mThe file template is consulted whenever a new file is created,[0m
                [40mby one of the [4maenf[24m(1) or [4maent[24m(1) commands.  May be assigned[0m
                [40mmore than once.  Each list item has the form:[0m

                [40mpattern = [ string ];[0m
                        [40mThe name of the file, relative to the development[0m
                        [40mdirectory.  Each string is a shell file name pattern;[0m
                        [40msee [4msh[24m(1) for more information.  The patterns are[0m
                        [40mmatched against the whole filename; naming only the[0m
                        [40mlast filename path element will [4mnot[24m work (unless the[0m
                        [40mpattern starts with "*").[0m

                [40mbody_command = string;[0m
                        [40mCommand to run to initialize the body of the file.[0m
                        [40mExecuted as: the developer.  Current directory: the[0m
                        [40mdevelopment directory of the change.  Exit status:[0m
                        [40mignored.[0m

                [40mbody = string;[0m
                        [40mWhat to initialize the body of the file to.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available[0m
                [40mfor the [4mbody[24m and [4mbody_command[24m strings.  (Only specify one of[0m
                [40mthem.)  In addition:[0m

                [40m${File_Name}[0m
                        [40mwill be replaced by the name of the new file.[0m

        [40mwhiteout_template = [ { ... } ];[0m
                [40mThe file template is consulted whenever a file is removed, by[0m
                [40mone of the [4maerm[24m(1) or [4maemv[24m(1) commands.  It is used to place a[0m
                [40m"whiteout" entry in the development directory, in order to[0m
                [40minduce compile errors of the removed file is referenced during[0m
                [40mthe build.  Each list item has the form:[0m

                [40mpattern = [ string ];[0m
                        [40mThe name of the file, relative to the development[0m
                        [40mdirectory.  Each string is a shell file name pattern;[0m
                        [40msee [4msh[24m(1) for more information.  The patterns are[0m
                        [40mmatched against the whole filename; naming only the[0m
                        [40mlast filename path element will [4mnot[24m work (unless the[0m
                        [40mpattern starts with "*").[0m

                [40mbody = string;[0m
                        [40mWhat to initialize the body of the file to.  If not[0m
                        [40mpresent, no whiteout file will be created; if the[0m
                        [40mempty string, a zero-length whiteout file will be[0m
                        [40mcreated.[0m

                [40mAll of the substitutions described in [4maesub[24m(5) are available[0m
                [40mfor the body string.  In addition:[0m

                [40m${File_Name}[0m
                        [40mwill be replaced by the name of the removed file.[0m

                [40mIf the name of the file being removed does not match any of[0m
                [40mthe filename patterns, a file consisting of 1KB of very ugly[0m
                [40mgarbage will be generated.  The idea is that it will produce a[0m
                [40msyntax error for most languages if you try to run it, compile[0m
                [40mit, or include it.[0m

        [40mmaximum_filename_length = integer;[0m
                [40mThis field is used to limit the length of file names.  All new[0m
                [40mfiles may not have path components longer than this.  Existing[0m
                [40mfiles are not affected.  The last component must also allow[0m
                [40mfor the ",D" suffix of difference files.  Where this value is[0m
                [40mlarger than the file system allows, the file system limit will[0m
                [40mbe imposed.  Defaults to 255 if not set.  Legal values range[0m
                [40mfrom 9 to 255.[0m

                [40mThe file name lengths of project files will be checked at[0m
                [40mdevelop end if the project [4maegis.conf[24m file is in the change.[0m
                [40mSee [4maede[24m [4m(1)[24m for more information.[0m

        [40mposix_filename_charset = boolean;[0m
                [40mThis field may be used to limit the characters allowed in file[0m
                [40mnames to only those explicitly allowed by POSIX.  Defaults to[0m
                [40mfalse if not set.[0m

                [40mFor a filename to be portable across conforming[0m
                [40mimplementations of IEEE Std 1003.1-1988, it shall consist only[0m
                [40mof alphanumeric characters, dot, hyphen or underscore.  Hyphen[0m
                [40mshall not be used as the first character of a portable[0m
                [40mfilename.[0m

                [40mIf this field is false, all characters are allowed except non-[0m
                [40mprinting characters, space characters and leading hyphens.[0m

        [40mdos_filename_required = boolean;[0m
                [40mThis field may be used to limit file names so that they[0m
                [40mconform to the DOS 8+3 filename limits and to the DOS filename[0m
                [40mcharacter set.  Also denies file names which look like devices[0m
                [40m(AUX, [4metc[24m).  Defaults to false if not set.  This field is used[0m
                [40min combination with the other filename fields, it does not[0m
                [40mreplace them.[0m

        [40mwindows_filename_required = boolean;[0m
                [40mThis field may be used to limit file names so that they[0m
                [40mconform to the Windows98 and WindowsNT filename limits and[0m
                [40mcharacter set.  Also denies file names which look like devices[0m
                [40m(AUX, [4metc[24m).  Defaults to false if not set.  This field is used[0m
                [40min combination with the other filename fields, it does not[0m
                [40mreplace them.[0m

        [40mshell_safe_filenames = boolean;[0m
                [40mThis field may be used to limit file names so that they may[0m
                [40mnot contain shell special characters.  If you do not set this[0m
                [40mto true, you will need to use the ${quote} substitution around[0m
                [40mfile names in commands, or risk unexpected errors.[0m

                [40mThis field defaults to true if not set.[0m

                [40mThe white space characters (space, tab, newline, [4metc[24m) are[0m
                [40mconsidered shell special characters.[0m

        [40mallow_white_space_in_filenames = boolean;[0m
                [40mThis field may be used to allow white space characters in file[0m
                [40mnames.  This will allow the following characters to appear in[0m
                [40mfilenames: backspace (BS, \b, 0x08), horizontal tab (HT, \t,[0m
                [40m0x09), new line (NL, \n, 0x0A), vertical tab (VT, \v, 0x0B),[0m
                [40mform feed (FF, \f, 0x0C), and carriage return (CR, \r, 0x0D).[0m

                [40mDefaults to false if not set.[0m

                [40mNote that this field does not override other file name[0m
                [40mfilters.  It will be necessary to explicitly set [4mshell_safe_-[0m
                [4m[40mfilenames[24m [4m=[24m [4mfalse[24m as well.  It will be necessary to set [4mdos_-[0m
                [4m[40mfilename_required[24m [4m=[24m [4mfalse[24m (the default) as well.  It will be[0m
                [40mnecessary to set [4mposix_filename_charset[24m [4m=[24m [4mfalse[24m (the default)[0m
                [40mas well.[0m

                [40mThe user must take great care to use the ${quote} substitution[0m
                [40maround all file names in commands in the project[0m
                [40mconfiguration.  And even then, substitutions which expect a[0m
                [40mspace separated list of file names will have undefined[0m
                [40mresults.[0m

        [40mallow_non_ascii_filenames = boolean;[0m
                [40mThis field may be used to allow file names with non-ascii-[0m
                [40mprintable characters in them.  Usually this would mean a UTF8[0m
                [40mor international charset of some kind.[0m

                [40mDefaults to false if not set.[0m

                [40mNote that this field does not override other file name[0m
                [40mfilters.  It will be necessary to explicitly set [4mshell_safe_-[0m
                [4m[40mfilenames[24m [4m=[24m [4mfalse[24m as well.  It will be necessary to set [4mdos_-[0m
                [4m[40mfilename_required[24m [4m=[24m [4mfalse[24m (the default) as well.  It will be[0m
                [40mnecessary to set [4mposix_filename_charset[24m [4m=[24m [4mfalse[24m (the default)[0m
                [40mas well.[0m

        [40mfilename_pattern_accept = [ string ];[0m
                [40mThis field is used to specify a list of patterns of acceptable[0m
                [40mfile names.  The patterns are matched against each filename[0m
                [40mpath element.  The patterns are constructed from the usual[0m
                [40mshell filename wild-cards.  Defaults to "*" if not set.[0m

        [40mfilename_pattern_reject = [ string ];[0m
                [40mThis field is used to specify a list of patterns of[0m
                [40munacceptable file names.  The patterns are matched against[0m
                [40meach filename path element.  The patterns are constructed from[0m
                [40mthe usual shell filename wild-cards.  Defaults to "*,D" if not[0m
                [40mset.  The pattern "*,D" is always appended.  Where the[0m
                [4m[40mfilename_pattern_accept[24m and filename_pattern_reject fields[0m
                [40mconflict, the reject takes precedence.[0m

        [40mnew_test_filename = string;[0m
                [40mThis field is used to form the filename of new tests, where[0m
                [40mthe filename is not specified on the aent command line.[0m
                [40mDefaults to "test/${zpad $hundred 2}/t${zpad $number 4}${left[0m
                [40m$type 1}.sh" if not set.[0m

                [40mAll of the substitutions defined in [4maesub[24m(5) are available.[0m
                [40mThe following three substitutions are also available:[0m

                [40m$Hundred[0m
                        [40mThe test number divided by 100, optional[0m

                [40m$Number The test number, mandatory[0m

                [40m$Type   The test type: "automatic" or "manual", optional[0m

        [40mdevelopment_directory_template = string;[0m
                [40mThis field is used to determine the name of the development[0m
                [40mdirectory at develop begin.  All of the substitutions defined[0m
                [40min [4maesub[24m(5) are available.  The following substitutions is[0m
                [40malso available:[0m

                [40mDefault_Development_Directory[0m
                        [40mThe directory within which the development directory[0m
                        [40mis to be created.[0m

                [40mMagic   A single letter, starting from "C", which can be[0m
                        [40minserted.  This must be used, as it allows Aegis to[0m
                        [40mtry different names should there be a conflict.[0m

                [40mIf not set, defaults to "$ddd/${left $p ${expr ${namemax $ddd}[0m
                [40m- ${length .$magic$c}}}.$magic$c".[0m

                [40mFor DOS compatibility (8+3 file names), a useful setting is[0m
                [40m"$ddd/${downcase ${left ${id $p} 8}.$magic${right 0$c 2}}".[0m
                [40mThis ensures that the filename is always a valid 8.3 filename,[0m
                [40mthat it is always lowercase, and it translates any punctuation[0m
                [40min the project name into underscores.[0m

        [40mmetrics_filename_pattern = string;[0m
                [40mThis field is used to form the name of the metrics file, given[0m
                [40ma source file.  All of the substitutions defined in [4maesub[24m(5)[0m
                [40mare available.  The following substitutions is also available:[0m

                [40mFile_Name[0m
                        [40mThe absolute path name of the source file.[0m

                [40mDefaults to "$filename,S" if not set.[0m

        [40mtrojan_horse_suspect = [ string ];[0m
                [40mThis list of filename patterns is consulted by aedist[0m
                [40m--receive when it is checking for files which could be used to[0m
                [40mhost Trojan horse attacks.  This will be different for[0m
                [40mdifferent projects, so you will need to update this yourself.[0m
                [40mThe patterns are matched against the whole filename; naming[0m
                [40monly the last filename path element will [4mnot[24m work (unless the[0m
                [40mpattern starts with "*").[0m

        [40mproject_specific = [ { ... } ];[0m
                [40mThis is a list of name and value pairs for use within the[0m
                [40m${project-specific} substitution (see [4maesub[24m(5) for more[0m
                [40minformation).  May be assigned more than once.  The sub-fields[0m
                [40mare[0m

                [40mname = string;[0m
                        [40mThe name of the value.  By convention, names which[0m
                        [40mstart with an upper-case letter will appear in[0m
                        [40mlistings, and lower-case will not.  Attribute names[0m
                        [40mare case-insensitive.[0m

                [40mvalue = string;[0m
                        [40mThe value to be substituted.[0m

                [40mThere are almost no limitations on the strings which may[0m
                [40mappear in either of these fields.[0m

                [40mThere are several attribute names which are known to and used[0m
                [40mby Aegis, these include:[0m

                [40maede-policy[0m
                        [40mThis attribute is used when no policy names are listed[0m
                        [40mon the [4maede-policy[24m(1) command line.[0m

                [40maetar:exclude[0m
                        [40mThis attribute is used by he [4maetar[24m(1) receive command[0m
                        [40mto exclude files in tarballs from consideration.  This[0m
                        [40mis a space separated list of file names.[0m

                [40mhtml:meta[0m
                        [40mThis attribute is used by the [4maeget[24m(1) command to[0m
                        [40mcustomize generated web pages.  See [4maeget[24m(1) for more[0m
                        [40minformation.[0m

                [40mhtml:body-begin[0m
                        [40mThis attribute is used by the [4maeget[24m(1) command to[0m
                        [40mcustomize generated web pages.  See [4maeget[24m(1) for more[0m
                        [40minformation.[0m

                [40mhtml:body-end[0m
                        [40mThis attribute is used by the [4maeget[24m(1) command to[0m
                        [40mcustomize generated web pages.  See [4maeget[24m(1) for more[0m
                        [40minformation.[0m

                [40mcopyright-owner[0m
                        [40mThis string is available via the [4m${copyright-owner}[0m
                        [40msubstitution, and is the one checked by the [4maede-[0m
                        [4m[40mpolicy[24m(1) command.  Only set this attribute if your[0m
                        [40mproject is a work-for-hire under copyright law.  It[0m
                        [40mdefaults to the value of [4m${user[24m [4mname}[24m if not set, this[0m
                        [40mis almost always correct for Open Source projects.[0m

                [40mWhen commands are executed by Aegis, it ensures that the[0m
                [40mAEGIS_PROJECT, AEGIS_CHANGE, AEGIS_ARCH, LINES and COLS[0m
                [40menvironment variables are set appropriately.  The project[0m
                [40mconfiguration file's [4mproject_specific[24m field is also consulted,[0m
                [40mlooking for value's whose name starts with "setenv:" and sets[0m
                [40mthe corresponding environment variable.  All of the[0m
                [40msubstitutions described by [4maesub[24m(5) are available.  For[0m
                [40mexample: specifying a PATH and a SEARCH_PATH to be used for[0m
                [40mall commands may be set as follows:[0m
                        [40mproject_specific =[0m
                        [40m[[0m
                          [40m{[0m
                            [40mname = "setenv:PATH";[0m
                            [40mvalue = "/usr/bin:/bin";[0m
                          [40m},[0m
                          [40m{[0m
                            [40mname = "setenv:SEARCH_PATH";[0m
                            [40mvalue = "${search_path}";[0m
                          [40m},[0m
                        [40m];[0m
                [40mAs many environment variables as desired may be specified in[0m
                [40mthis way.[0m

        [40mbuild_time_adjust = (...);[0m
                [40mThis field controls the adjustment of file modification times[0m
                [40mat the end of integrate-pass.  File times are adjusted so that[0m
                [40mdevelopment directories are, in the main, out of date with[0m
                [40mrespect to the baseline.  The idea is that, at the very least,[0m
                [40mprograms need to be re-linked so that [4maet[24m [4m-reg[24m does not give[0m
                [40mfalse negatives.[0m

                [40mCombining this with the [4mproject_file_command[24m (above) can[0m
                [40malleviate the vast majority of file modification time[0m
                [40minconsistencies experienced as a result of a project[0m
                [40mintegration and the subsequent changes in the baseline's file[0m
                [40mmodification times.[0m

                [40mUnless you are a masochist, do not set this field.  Leave it[0m
                [40mas the default.[0m

                [40madjust_and_sleep[0m
                        [40mCauses the file times to be adjusted, and if the file[0m
                        [40mtimes would extend into the future, aeipass will sleep[0m
                        [40muntil that time has passed.  This is the default.[0m

                [40madjust_only[0m
                        [40mCauses the file times to be adjusted.  If the file[0m
                        [40mtime extend into the future, a warning is issued.[0m

                [40mdont_adjust[0m
                        [40mFile modification times are not adjusted.  This is a[0m
                        [40mreally bad idea.  Really.  Make sure that, at the very[0m
                        [40mminimum, [4mproject_file_command[24m touches all of the[0m
                        [40mchange's files, otherwise the build problems which[0m
                        [40mensue are going to take you weeks to track down and[0m
                        [40mlose you much productivity.  You have been warned.[0m

                [40mSee also the [4mbuild_time_adjust_notify_command[24m field.[0m

        [40msigned_off_by = boolean;[0m
                [40mIf this field is set each [4maedb[24m(1), [4maechown[24m(1), [4maede[24m(1) and[0m
                [4m[40maerpass[24m(1) will append a Signed-off-by line to the change[0m
                [40mdescription.  This field should only be set to true for open[0m
                [40msource projects.[0m

                [40mFor a description of Signed-off-by see[0m
                [40mhttp://www.ussg.iu.edu/hypermail/linux/kernel/0405.2/1301.html[0m
                [40mand[0m
                [40mhttp://www.osdl.org/newsroom/press_releases/2004/2004_05_24_dco.html[0m

        [40mcache_project_file_list_for_each_delta = boolean;[0m
                [40mIt is possible to have Aegis cache the list of project files[0m
                [40mthat were present at integrate pass for each delta (integrated[0m
                [40mchange set).  This is used to optimize all project-history-[0m
                [40mbased operations, such as [4maecp[24m [4m-delta[24m or [4maepatch[24m(1).[0m

                [40mThis cache will optimize many operations which would otherwise[0m
                [40mrequire time to reconstruct the project state using the roll-[0m
                [40mforward data available in each change set.  However, it comes[0m
                [40mat the cost of disk space, and not everyone can afford more[0m
                [40mand more disk.[0m

                [40mThis field defaults to true if not set.[0m

        [40mclean_exceptions = [ string ];[0m
                [40mIt is possible to have Aegis exclude from the clean process[0m
                [40many file that match one of the pattern listed in the[0m
                [40mclean_exceptions list.[0m

                [40mThis field default to an empty list if not set.[0m

        [40mcache_project_file_list_for_each_delta = boolean;[0m
                [40mIt is possible to have Aegis cache the list of project files[0m
                [40mthat were present at integrate pass for each delta (integrated[0m
                [40mchange set).  This is used to optimize all project-history-[0m
                [40mbased operations, such as [4maecp[24m [4m-delta[24m or [4maepatch[24m(1).[0m

                [40mThis cache will optimize many operations which would otherwise[0m
                [40mrequire time to reconstruct the project state using the roll-[0m
                [40mforward data available in each change set.  However, it comes[0m
                [40mat the cost of disk space, and not everyone can afford more[0m
                [40mand more disk.[0m

                [40mThis field defaults to true if not set.[0m

[1m[40mRSS FEEDS[0m
        [40mAegis has the ability to feed RSS channels when change sets transition[0m
        [40mstates.  See the User Guide for full details.  Following is a brief[0m
        [40mdescription of the project-specific attributes used to control this[0m
        [40mprocess.[0m

        [40mCreate / Add to a channel[0m
                [40mAn RSS channel is specified with the rss:feedfilename[0m
                [40mproject_specific attribute:[0m

                [40mproject_specific =[0m
                        [40m[[0m
                          [40m{[0m
                            [40mname = "rss:feedfilename-<filename>";[0m
                            [40mvalue = "<space-separated list of states>";[0m
                          [40m}[0m
                        [40m][0m

        [40mSpecify the Description of an RSS channel[0m
                [40mThe description of an RSS channel is specified with the[0m
                [40mrss:feeddescription project_specific attribute:[0m

                [40mproject_specific =[0m
                        [40m[[0m
                          [40m{[0m
                            [40mname = "rss:feeddescription-<filename>";[0m
                            [40mvalue = "<description>";[0m
                          [40m}[0m
                        [40m][0m

        [40mSpecify the Title of an RSS channel[0m
                [40mThe title of an RSS channel is specified with the[0m
                [40mrss:feedtitle project_specific attribute:[0m

                [40mproject_specific =[0m
                        [40m[[0m
                          [40m{[0m
                            [40mname = "rss:feedtitle-<filename>";[0m
                            [40mvalue = "<title>";[0m
                          [40m}[0m
                        [40m][0m

        [40mSpecify the Language of an RSS channel[0m
                [40mThe language of an RSS channel is specified with the[0m
                [40mrss:feedlanguage project_specific attribute:[0m

                [40mproject_specific =[0m
                        [40m[[0m
                          [40m{[0m
                            [40mname = "rss:feedlanguage-<filename>";[0m
                            [40mvalue = "<language";[0m
                          [40m}[0m
                        [40m][0m

[1m[40mOBSOLETE FIELDS[0m
        [40mThere are some obsolete fields in the file.  They are provided for[0m
        [40mbackwards compatibility only, and should not be used.[0m

        [40mdiff3_command = string;[0m
                [40mThis field is used to difference 3 files.  The command is[0m
                [40malways executed by developers.  Used by the [4maed[24m(1) command.[0m
                [40mAll of the substitutions described by [4maesub[24m(5) are available;[0m
                [40min addition,[0m

                [40m${ORiginal}[0m
                        [40mThe absolute path of the original file copied into the[0m
                        [40mchange.  Usually not in the baseline.[0m

                [40m${Most_Recent}[0m
                        [40mThe absolute path of the competing edit, usually in[0m
                        [40mthe baseline.[0m

                [40m${Input}[0m
                        [40mThe absolute path of the file in the development[0m
                        [40mdirectory.[0m

                [40m${Output}[0m
                        [40mThe absolute path of the file in which to write the[0m
                        [40mdifference listing.[0m

                [40mExecuted as: the project owner (for integration diffs), or the[0m
                [40mdeveloper (for development diffs).  Current directory: the[0m
                [40mintegration directory (for integration diffs), or the[0m
                [40mdevelopment directory (for development diffs).  Exit status:[0m
                [40mzero indicates success, all non-zero exits indicate failure[0m
                [40m(the aed will fail).[0m

                [40mThe problem with this field was that the default usage placed[0m
                [40mthe merged source in a strange place.  And subsequent [4maed[24m(1)[0m
                [40mcommands would over-write it.  This meant that merges would be[0m
                [40mlost, causing a number of nasty problems.  Some sites overcame[0m
                [40mthis by adding "mv" commands to put the output back where the[0m
                [40minput came from, but this meant that Aegis' commentary was[0m
                [40mmisleading.  Use the "merge_command" field instead.  It is[0m
                [40malmost identical, but Aegis will move the files around for you[0m
                [40m- so you get the good behavior by default (no lost merges) and[0m
                [40mthe error message is consistent.[0m

        [40mcreate_symlinks_before_build = boolean;[0m
                [40mThis flag is true if Aegis should create symlinks from the[0m
                [40mdevelopment directory to the baseline for all files in the[0m
                [40mbaseline not in the development directory immediately before a[0m
                [40mdevelopment_build_command is issued.  Usually used to trick[0m
                [40mdumb DMTs into believing the development directory contains an[0m
                [40mentire copy of the project, though sometimes the DMT is smart[0m
                [40menough, the tools it must work with are not.  Symlinks in the[0m
                [40mdevelopment directory which point to nonexistent files will be[0m
                [40mremoved.[0m

                [40mDefaults to false if not set.[0m

        [40mcreate_symlinks_before_integration_build = boolean;[0m
                [40mThis flag is true if Aegis should create symlinks from the[0m
                [40mintegration directory to the ancestral baseline for all files[0m
                [40min the ancestral not in the integration directory immediately[0m
                [40mbefore a build_command is issued.  Usually used to trick dumb[0m
                [40mDMTs into believing the integration directory contains an[0m
                [40mentire copy of the project, though sometimes the DMT is smart[0m
                [40menough, the tools it must work with are not.  Symlinks in the[0m
                [40mintegration directory which point to nonexistent files will be[0m
                [40mremoved.[0m

                [40mDefaults to the same value as [4mcreate_symlinks_before_build[24m if[0m
                [40mnot set.[0m

        [40mremove_symlinks_after_build = boolean;[0m
                [40mThis flag is true if Aegis should remove symlinks which point[0m
                [40mfrom the development directory to the baseline directory[0m
                [40mimmediately after a development_build_command is issued.  Only[0m
                [40mconsulted if the [4mcreate_symlinks_before_build[24m field is true,[0m
                [40mfor the purpose of reversing the actions of the [4mcreate_-[0m
                [4m[40msymlinks_before_build[24m field.[0m

                [40mDefaults to false if not set.[0m

        [40mremove_symlinks_after_integration_build = boolean;[0m
                [40mThis flag is true if Aegis should remove symlinks which point[0m
                [40mfrom the integration directory to the ancestral baseline[0m
                [40mdirectory immediately after a build_command is issued.  Only[0m
                [40mconsulted if the [4mcreate_symlinks_before_integration_build[0m
                [40mfield is true, for the purpose of reversing the actions of the[0m
                [4m[40mcreate_symlinks_before_integration_build[24m field.[0m

                [40mDefaults to [1mtrue [22mif not set.  This default is intentional.  It[0m
                [40mis important that there are no symlinks in the (new) baseline,[0m
                [40mbecause they could go stale between integrations.  If you set[0m
                [40mthis field to false, [4mcaveat[24m [4memptor[24m.[0m

[1m[40mSEE ALSO[0m
        [4m[40maeb[24m(1)  build a change[0m

        [4m[40maecp[24m(1) copy a file into a change[0m

        [4m[40maecpu[24m(1)[0m
                [40mreverse action of aecp[0m

        [4m[40maed[24m(1)  find differences between a change and the baseline[0m

        [4m[40maede[24m(1) end development of a change [4maede-policy[24m(1) check things about[0m
                [40ma change[0m

        [4m[40maerpass[24m(1)[0m
                [40mpass a review of a change[0m

        [4m[40maeib[24m(1) begin integration of a change[0m

        [4m[40maeipass[24m(1)[0m
                [40mpass integration of a change[0m

        [4m[40maemv[24m(1) rename a file as part of a change[0m

        [4m[40maenf[24m(1) add new files to be created by a change[0m

        [4m[40maenfu[24m(1)[0m
                [40mremove new files from a change[0m

        [4m[40maent[24m(1) add a new test to be created by a change[0m

        [4m[40maentu[24m(1)[0m
                [40mremove new tests from a change[0m

        [4m[40maet[24m(1)  run tests[0m

        [4m[40maegis[24m(5)[0m
                [40maegis file format syntax[0m

        [4m[40maesub[24m(5)[0m
                [40mavailable command substitutions[0m

        [4m[40maetest[24m(5)[0m
                [40mbatch test results file[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aepstate(5)                                                        aepstate(5)



[40m[1mNAME[0m
        [40maepstate - aegis project state file[0m

[1m[40mSYNOPSIS[0m
        [4m[40mproject[24m/info/state[0m

[1m[40mDESCRIPTION[0m
        [40mThe [4mproject[24m/info/state file is used to store state information about a[0m
        [40mproject.[0m

        [40mThis file is maintained by [1maegis [22mand thus should not be edited by[0m
        [40mhumans.[0m

[1m[40mCONTENTS[0m
        [40mnext_test_number = integer;[0m
                [40mEach test is numbered uniquely across all branches of the[0m
                [40mproject.  The name is of the form [4mt[0-9][0-9][0-9][0-9][am].sh[0m
                [40m('a' for automatic and 'm' for manual.)[0m

   [1m[40mAlmost Obsolete Fields[0m
        [40mThe following fields are obsolete.  They will persist until the next[0m
        [4m[40maenrls[24m(1), and the new project so generated will use them to define[0m
        [40mits default branching.[0m

        [40mversion_major = integer;[0m
                [40mThe major version number of this release of the project.[0m
                [40mAlways one or more.[0m

        [40mversion_minor = integer;[0m
                [40mThe minor version number of this release of the project.[0m
                [40mAlways zero or more.[0m

   [1m[40mObsolete Fields[0m
        [40mThe following fields are obsolete.  They are only present in projects[0m
        [40mwhich have yet to be converted to the new branch format.  When [4mAegis[0m
        [40msees them, they will be moved into the "trunk" transaction.[0m

        [40mdescription = string;[0m
                [40mThis field contains a description of the project.  Large[0m
                [40mamounts of prose are not required; a single line is[0m
                [40msufficient.[0m

        [40mowner_name = string;[0m
                [40mThis field is ignored.[0m

        [40mgroup_name = string;[0m
                [40mThis field is ignored.[0m

        [40mdeveloper_may_review = boolean;[0m
                [40mIf this field is true, then a developer may review her own[0m
                [40mchange.  This is probably only a good idea for projects of[0m
                [40mless than 3 people.  The idea is for as many people as[0m
                [40mpossible to critically examine a change.[0m

        [40mdeveloper_may_integrate = boolean;[0m
                [40mIf this field is true, then a developer may integrate her own[0m
                [40mchange.  This is probably only a good idea for projects of[0m
                [40mless than 3 people.  The idea is for as many people as[0m
                [40mpossible to critically examine a change.[0m

        [40mreviewer_may_integrate = boolean;[0m
                [40mIf this field is true, then a reviewer may integrate a change[0m
                [40mshe reviewed.  This is probably only a good idea for projects[0m
                [40mof less than 3 people.  The idea is for as many people as[0m
                [40mpossible to critically examine a change.[0m

        [40mdevelopers_may_create_changes = boolean;[0m
                [40mThis field is true if developers may created changes, in[0m
                [40maddition to administrators.  This tends to be a very useful[0m
                [40mthing, since developers find most of the bugs.[0m

        [40mforced_develop_begin_notify_command = string;[0m
                [40mThis command is used to notify a developer that a change[0m
                [40mrequires developing; it is issued when a project administrator[0m
                [40muses an [4maedb[24m [4m-User[24m command to force development of a change by[0m
                [40ma specific user.  All of the substitutions described in[0m
                [4m[40maesub[24m(5) are available.  This field is optional.[0m

                [40mExecuted as: the new developer.  Current directory: the[0m
                [40mdevelopment directory of the change for the new developer.[0m
                [40mExit status: ignored.[0m

        [40mdevelop_end_notify_command = string;[0m
                [40mThis command is used to notify that a change is ready for[0m
                [40mreview.  It will probably use mail, or it could be an in-house[0m
                [40mbulletin board.  This field is optional, if not present no[0m
                [40mnotification will be given.  This command could also be used[0m
                [40mto notify other management systems, such as progress and[0m
                [40mdefect tracking.  All of the substitutions described by[0m
                [4m[40maesub[24m(5) are available.[0m

                [40mExecuted as: the developer.  Current directory: the[0m
                [40mdevelopment directory of the change.  Exit status: ignored.[0m

        [40mdevelop_end_undo_notify_command = string;[0m
                [40mThis command is used to notify that a change had been[0m
                [40mwithdrawn from review for further development.  It will[0m
                [40mprobably use mail, or it could be an in-house bulletin board.[0m
                [40mThis field is optional, if not present no notification will be[0m
                [40mgiven.  This command could also be used to notify other[0m
                [40mmanagement systems, such as progress and defect tracking.  All[0m
                [40mof the substitutions described by [4maesub[24m(5) are available.[0m

                [40mExecuted as: the developer.  Current directory: the[0m
                [40mdevelopment directory of the change.  Exit status: ignored.[0m

        [40mreview_pass_notify_command = string;[0m
                [40mThis command is used to notify that a review has passed.  It[0m
                [40mwill probably use mail, or it could be an in-house bulletin[0m
                [40mboard.  This field is optional, if not present no notification[0m
                [40mwill be given.  This command could also be used to notify[0m
                [40mother management systems, such as progress and defect[0m
                [40mtracking.  All of the substitutions described by [4maesub[24m(5) are[0m
                [40mavailable.[0m

                [40mExecuted as: the reviewer.  Current directory: the development[0m
                [40mdirectory of the change.  Exit status: ignored.[0m

        [40mreview_pass_undo_notify_command = string;[0m
                [40mThis command is used to notify that a review has passed.  It[0m
                [40mwill probably use mail, or it could be an in-house bulletin[0m
                [40mboard.  This field is optional, if not present no notification[0m
                [40mwill be given.  This command could also be used to notify[0m
                [40mother management systems, such as progress and defect[0m
                [40mtracking.  Defaults to the same action as the[0m
                [4m[40mdevelop_end_notify_command[24m field.  All of the substitutions[0m
                [40mdescribed by [4maesub[24m(5) are available.[0m

        [40mreview_fail_notify_command = string;[0m
                [40mThis command is used to notify that a review has failed.  It[0m
                [40mwill probably use mail, or it could be an in-house bulletin[0m
                [40mboard.  This field is optional, if not present no notification[0m
                [40mwill be given.  This command could also be used to notify[0m
                [40mother management systems, such as progress and defect[0m
                [40mtracking.  All of the substitutions described by [4maesub[24m(5) are[0m
                [40mavailable.[0m

                [40mExecuted as: the reviewer.  Current directory: the development[0m
                [40mdirectory of the change.  Exit status: ignored.[0m

        [40mintegrate_pass_notify_command = string;[0m
                [40mThis command is used to notify that an integration has passed.[0m
                [40mIt will probably use mail, or it could be an in-house bulletin[0m
                [40mboard.  This field is optional, if not present no notification[0m
                [40mwill be given.  This command could also be used to notify[0m
                [40mother management systems, such as progress and defect[0m
                [40mtracking.  All of the substitutions described by [4maesub[24m(5) are[0m
                [40mavailable.[0m

                [40mSome compilers bury absolute path names into object files and[0m
                [40mexecutables.  The renaming of the integration directory to[0m
                [40mbecome the new baseline breaks these paths.  This command is[0m
                [40mpassed an environment variable called AEGIS_INTEGRATION_-[0m
                [40mDIRECTORY so that the appropriate symlink may be placed, if[0m
                [40mdesired.[0m

                [40mExecuted as: the project owner.  Current directory: the new[0m
                [40mproject baseline.  Exit status: ignored.[0m

        [40mintegrate_fail_notify_command = string;[0m
                [40mThis command is used to notify that an integration has failed.[0m
                [40mIt will probably use mail, or it could be an in-house bulletin[0m
                [40mboard.  This field is optional, if not present no notification[0m
                [40mwill be given.  This command could also be used to notify[0m
                [40mother management systems, such as progress and defect[0m
                [40mtracking.  All of the substitutions described by [4maesub[24m(5) are[0m
                [40mavailable.[0m

                [40mExecuted as: the integrator.  Current directory: the[0m
                [40mdevelopment directory of the change.  Exit status: ignored.[0m

        [40mdefault_development_directory = string;[0m
                [40mThe pathname of where to place new development directories.[0m
                [40mThe pathname must be absolute.  This field is only consulted[0m
                [40mif the field of the same name in the user configuration file[0m
                [40mis not set.[0m

        [40mumask = integer;[0m
                [40mFile permission mode mask.  See [4mumask[24m(2) for more information.[0m
                [40mThis value will always be OR'ed with 022, because [4maegis[24m is[0m
                [40mparanoid.[0m

        [40mdefault_test_exemption = boolean;[0m
                [40mThis field contains what to do when a change is created with[0m
                [40mno test exemption specified.[0m

        [40mcopyright_years = [ integer ];[0m
                [40mThis field contains a list of copyright years, for use in[0m
                [40mcopyright notices, etc.  It is updated each integrate_begin,[0m
                [40mif necessary, to include the current year.  Available as the[0m
                [40m${Copyright_Years} substitution, and included in the version[0m
                [40mlisting.[0m

        [40mnext_change_number = integer;[0m
                [40mChanges are numbered sequentially from one.  This field[0m
                [40mrecords the next unused change number.[0m

        [40mnext_delta_number = integer;[0m
                [40mDeltas are numbered sequentially from one.  This field records[0m
                [40mthe next unused delta number.[0m

        [40msrc = [ { ... } ];[0m
                [40mIf you are writing a report, see [4maefstate[24m(5) for the current[0m
                [40mdocumentation for this field.  This field is a list of files[0m
                [40min the project.  Each list item has the form:[0m

                [40mfile_name = string;[0m
                        [40mThe name of the file, relative to the baseline.[0m

                [40musage = (source, config, build, test, manual_test);[0m
                        [40mWhat the file is for.[0m

                [40medit_number = string;[0m
                        [40mThe edit number of the file.[0m

                [40mlocked_by = integer;[0m
                        [40mThe change which locked this file.[0m
                        [40mCaveat: this field is redundant, you can figure it out[0m
                        [40mby scanning all of he change files.  Having it here is[0m
                        [40mvery convenient, even though it means multiple[0m
                        [40mupdates.[0m

                [40mabout_to_be_created_by = integer;[0m
                        [40mThe change which is about to create this file for the[0m
                        [40mfirst time.  Same caveat as above.[0m

                [40mdeleted_by = integer;[0m
                        [40mThe change which last deleted this file.  We never[0m
                        [40mthrow them away, because (a) it may be created again,[0m
                        [40mand more important (b) we need it to recreate earlier[0m
                        [40mdeltas.[0m

        [40mhistory = [{ ... }];[0m
                [40mThis field contains a history of integrations for the project.[0m
                [40mUpdated by each successful 'aegis -Integrate_Pass' command.[0m

                [40mdelta_number = integer;[0m
                        [40mThe delta number of the integration.[0m

                [40mchange_number = integer;[0m
                        [40mThe number of the change which was integrated.[0m

                [40mname = [ string ];[0m
                        [40mThe names by which this delta is known.[0m

        [40mchange = [integer];[0m
                [40mThe list of changes which have been created to date.[0m

        [40madministrator = [string];[0m
                [40mThe list of administrators of the project.[0m

        [40mdeveloper = [string];[0m
                [40mThe list of developers of the project.[0m

        [40mreviewer = [string];[0m
                [40mThe list of reviewers of the project.[0m

        [40mintegrator = [string];[0m
                [40mThe list of integrators of the project.[0m

        [40mcurrently_integrating_change = integer;[0m
                [40mThe change currently being integrated.  Only one change[0m
                [40m(within a project) may be integrated at a time.  Only set when[0m
                [40man integration is in progress.[0m

        [40mversion_major = integer;[0m
                [40mThe major version number of this release of the project.[0m
                [40mAlways one or more.[0m

        [40mversion_minor = integer;[0m
                [40mThe minor version number of this release of the project.[0m
                [40mAlways zero or more.[0m

        [40mversion_previous = string;[0m
                [40mThe version number this project was derived from.  This is of[0m
                [40mmost use when producing "patch" files.[0m

[1m[40mWRITING REPORT SCRIPTS[0m
        [40mWhen attempting to access these fields from within the report[0m
        [40mgenerator, you need a code fragment similar to the following:[0m
                [40mauto ps;[0m
                [40mps = project[project_name()].state;[0m
        [40mAll of the fields mentioned in the man page can now be accessed as[0m
        [40mmembers of the ps variable.[0m

        [40mWhen you access the [4mbranch[24m field, you obtain access to the change[0m
        [40mstate of the branch.  Even the trunk has one of these, it just doesn't[0m
        [40mhave a number, and it is perpetually being developed.[0m

        [40mWhen you index the [4mbranch.change[24m field by a change number, you obtain[0m
        [40maccess to the change state of that change.[0m

        [40mWhen you index the [4mbranch.src[24m field by a filename string, you may[0m
        [40mobtain access the the relevant project file state (see [4maefstate[24m(5) for[0m
        [40mmore information).[0m

        [40mIn addition to the above fields, the report generator inserts a [4mname[0m
        [40mfield containing the project name, and a [4mdirectory[24m field containing[0m
        [40mthe project directory path.[0m

[1m[40mSEE ALSO[0m
        [4m[40maenpr[24m(1)[0m
                [40mcreate a new project[0m

        [4m[40maegis[24m(5)[0m
                [40maegis file format syntax[0m

        [4m[40maepattr[24m(5)[0m
                [40mproject attributes file format[0m

        [4m[40maecstate[24m(5)[0m
                [40mchange state file[0m

        [4m[40maefstate[24m(5)[0m
                [40mfile state file[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aer(5)                                                                  aer(5)



[40m[1mNAME[0m
        [40maer - aegis report script language definition[0m

[1m[40mDESCRIPTION[0m
        [40mThis manual entry describes the report generator script language used[0m
        [40mby the [4maer[24m(1) command.  The language resembles C, with a touch of [4mawk[0m
        [40mand [4mperl[24m for flavour.  It also closely resembles the appearance of[0m
        [40maegis' database files.[0m

        [40mThis language grew out of the need to have a general purpose[0m
        [40mprogramming language to describe reports, and yet be as familiar as[0m
        [40mpossible to the people who will be using it.[0m

[1m[40mWORDS AND SYMBOLS[0m
        [40mThis section describes the various words and symbols understood by the[0m
        [40mlanguage.[0m

   [1m[40mNames[0m
        [40mA name is a contiguous set of alphanumeric characters, including[0m
        [40munderscore (_).  It must not start with a digit.  Names may be of any[0m
        [40mlength.  Names are case sensitive, so uppercase and lowercase letters[0m
        [40mare unique.[0m

        [40mHere are some examples of names[0m

                            [40m+-----------------------------+[0m
                            [40m| print       sqrt       if   |[0m
                            [40m|how_long   UpperCase   dig57 |[0m
                            [40m+-----------------------------+[0m
        [40mSome words are [4mreserved[24m as keywords.  These are the words which appear[0m
        [40min [1mbold [22min the statement descriptions, below.[0m

   [1m[40mInteger Constants[0m
        [40mAn integer constant may be decimal, any sequence of digits.  Constants[0m
        [40mmay be octal, any sequence of octal digits starting with a zero.[0m
        [40mConstant may be hexadecimal, any sequence of hexadecimal digits,[0m
        [40mstarting with a 0x prefix.  These are represented by the internal long[0m
        [40mtype, so significance is limited.[0m

        [40mHere are some examples of integer constants:[0m

                       [40m+---------------------------------------+[0m
                       [40m|        43            015       0xbeEf |[0m
                       [40m|2147483647   017777777777   0x7FFFFFFF |[0m
                       [40m+---------------------------------------+[0m
   [1m[40mFloating Point Constants[0m
        [40mA floating point constant has an integer part, a fraction part and an[0m
        [40mexponent part.[0m

        [40mHere are some examples of floating point constants:[0m

                             [40m+---------------------------+[0m
                             [40m|1.2e3   4.2e+1   1.628e-94 |[0m
                             [40m|0.567      5e6         .67 |[0m
                             [40m+---------------------------+[0m
   [1m[40mString Constants[0m
        [40mA string constant is represented as characters within double quotes[0m
        [40m(").  All characters in the script file are required to be printable,[0m
        [40mso special characters are represented by [4mescape[24m [4msequences.[24m  These[0m
        [40mescape sequences are:[0m

                            [40m+-----------------------------+[0m
                            [40m|\"     the " character       |[0m
                            [40m|\\     the \ character       |[0m
                            [40m|\n     Newline               |[0m
                            [40m|\f     Form Feed             |[0m
                            [40m|\r     Carriage Return       |[0m
                            [40m|\b     Backspace             |[0m
                            [40m|\t     Horizontal Tab        |[0m
                            [40m|\[4mnnn[24m   octal character value |[0m
                            [40m+-----------------------------+[0m
        [40mHere are some examples of string constants:[0m

                 [40m+---------------------------------------------------+[0m
                 [40m|"Hello, World!"     "Go away"            ""        |[0m
                 [40m|   "The End0      "slosh is \\"   "Say \"Please\"" |[0m
                 [40m+---------------------------------------------------+[0m
   [1m[40mSymbols[0m
        [40mThe non-alphanumeric characters are used to represent symbols, usually[0m
        [40mexpression operators or statement terminators.  The symbols used[0m
        [40minclude:[0m

                             [40m+--------------------------+[0m
                             [40m| !    !=   !~    ##   ##= |[0m
                             [40m| %    %=    &    &&   &=  |[0m
                             [40m| (    )     *    **   **= |[0m
                             [40m|*=    +    ++    +=    ,  |[0m
                             [40m| -    --   -=    .     /  |[0m
                             [40m|/=    :     ;    <    <<  |[0m
                             [40m|<<=   <=    =    ==    >  |[0m
                             [40m|>=    >>   >>=   ?     [  |[0m
                             [40m| ]    ^    ^=    {     |  |[0m
                             [40m||=    ||    }    ~    ~~  |[0m
                             [40m+--------------------------+[0m
   [1m[40mWhite Space[0m
        [40mWhite space serves to separate words and symbols, and has no other[0m
        [40msignificance.  The language is free-form.  White space includes the[0m
        [40mSPACE, TAB, FF, and NEWLINE characters.[0m

   [1m[40mComments[0m
        [40mComments are delimited by /* and */ pairs, and are treated as a single[0m
        [40mwhite space character.[0m

[1m[40mSTATEMENTS[0m
        [40mStatement serve to control the flow of execution of the program, or[0m
        [40mthe existence of variables.[0m

   [1m[40mThe Expression Statement[0m
        [40mThe commonest statement consists of an expression terminated by a[0m
        [40msemicolon.  The expression is evaluated, and any result is discarded.[0m

        [40mExamples of this statement include[0m
                [40mx = 42;[0m
                [40mprint("Hello, World!0);[0m

   [1m[40mThe If Statement[0m
        [40mThe [4mif[24m statement is used to conditionally execute portions of code.[0m
        [40mExamples if the [4mif[24m statement include:[0m
                [40mif (x == 42)[0m
                     [40mx = 1;[0m
                [40mif (x * x < 1)[0m
                     [40mprint("no");[0m
                [40melse[0m
                     [40mprint("yes");[0m

   [1m[40mThe For Statement[0m
        [40mThe [4mfor[24m statement has two forms.  The first form is described as[0m
                [40mfor ([4mexpr1[24m; [4mexpr2[24m; [4mexpr3[24m)[0m
                     [4m[40mstmt[0m
        [40mThe [4mexpr1[24m is done before the loop begins.  The [4mexpr2[24m controls, the[0m
        [40mloop; if it does not evaluate to true the loop terminates.  The loop[0m
        [40mbody is the [4mstmt[24m.  The loop increment is done by the [4mexpr3[24m, and the[0m
        [40mthe test is performed again.[0m

        [40mEach of the expressions is optional; any or all may be omitted.[0m

        [40mHere is an example of a [4mfor[24m loop:[0m
                [40mfor (j = 0; j < 10; ++j)[0m
                     [40mprint(j);[0m

        [40mThe second form of the [4mfor[24m statement looks like this:[0m
                [40mfor (name in keys(passwd))[0m
                     [40mprint(name, passwd[name].pw_comment);[0m

   [1m[40mThe Break Statement[0m
        [40mThe [4mbreak[24m statement is used to break out of a loop.[0m

        [40mHere is an example of a [4mbreak[24m statement:[0m
                [40mfor (j = 0; ; j = 2 * j + 4)[0m
                [40m{[0m
                     [40mprint(j);[0m
                     [40mif (j >= 0x800)[0m
                          [40mbreak;[0m
                [40m}[0m
        [40mThe [4mbreak[24m statement works within all loop statements.[0m

   [1m[40mThe Continue Statement[0m
        [40mThe [4mcontinue[24m statement is used to terminate the loop body and start[0m
        [40manother repetition.[0m

        [40mHere is an example of a [4mcontinue[24m statement:[0m
                [40mfor (j = 0; j < 1000; j = 2 * j + 4)[0m
                [40m{[0m
                     [40mif (j < 42)[0m
                          [40mcontinue;[0m
                     [40mprint(j);[0m
                [40m}[0m
        [40mThe [4mcontinue[24m statement works within all loop statements.[0m

   [1m[40mThe While Statement[0m
        [40mThe [4mwhile[24m statement is another loop construct.  The condition is[0m
        [40mevaluated before the loop body.[0m
                [40mline = 0;[0m
                [40mwhile (line < 7)[0m
                [40m{[0m
                     [40mprint("");[0m
                     [40m++line;[0m
                [40m}[0m

   [1m[40mThe Do Statement[0m
        [40mThe [4mdo[24m statement is another loop construct.  The condition is evaluate[0m
        [40mafter the loop body.[0m
                [40mdo[0m
                     [40mprint("yuck");[0m
                [40mwhile[0m
                     [40m(line++ < 7);[0m

   [1m[40mThe Compound Statement[0m
        [40mThe [4mcompound[24m statement is a way of grouping other statements together.[0m
        [40mIt is enclosed in curly braces.[0m
                [40mif ( lines < 7)[0m
                [40m{[0m
                     [40mprint("This\n");;[0m
                     [40mprint("could\n");;[0m
                     [40mprint("have\n");;[0m
                     [40mprint("been\n");;[0m
                     [40mprint("seven\n");;[0m
                     [40mprint("blank\n");;[0m
                     [40mprint("lines.\n");;[0m
                [40m}[0m

   [1m[40mThe Local Statement[0m
        [40mThe [4mauto[24m statement is used to declare variables and initialize them to[0m
        [40mbe nul.[0m
                [40mauto x, y, z;[0m
                [40mx = 42;[0m
        [40mAll user-defined variables must be declared before they are used.[0m

   [1m[40mThe Null Statement[0m
        [40mThe [4mnull[24m statement does nothing.  It consists of a single semicolon.[0m
        [40mIt is most often seen as a loop body.[0m
                [40mfor (n = 0, bit = 1; n < bit_num; ++n, bit <<= 1)[0m
                     [40m;[0m

   [1m[40mThe Try Catch Statement[0m
        [40mThe [4mtry[24m [4mcatch[24m statement is used to catch errors which would usually[0m
        [40mcause the report to fail.[0m
                [40mtry[0m
                     [4m[40mstatement1[0m
                [40mcatch ([4mvariable[24m)[0m
                     [4m[40mstatement2[0m
        [40mThe first statement is executed.  If no error occurs, nothing else is[0m
        [40mdone.  If an error occurs in the execution of the first statement the[0m
        [40mfirsdt statement execution is terminated and then the given variable[0m
        [40mis set to a description of the error and the second statement is[0m
        [40mexecuted.[0m

[1m[40mEXPRESSIONS[0m
        [40mExpressions are much the same as in C, using the same operators.  The[0m
        [40mfollowing table describes operator precedence and associativity:[0m


        [40m[ ]     subscripting                [4mvalue[24m [ [4mexpr[24m ][0m
        [40m( )     function call               [4mexpr[24m ( [4mexpr_list[24m )[0m
        [40m( )     grouping                    ( [4mexpr[24m )[0m


        [40m++      post increment              [4mlvalue[24m ++[0m
        [40m++      pre increment               ++[4mlvalue[0m
        [40m--      post decrement              [4mlvalue[24m --[0m
        [40m--      pre decrement               --[4mlvalue[0m
        [40m~       compliment                  ~ [4mexpr[0m
        [40m!       not                         ! [4mexpr[0m
        [40m-       unary minus                 - [4mexpr[0m
        [40m+       unary plus                  + [4mexpr[0m


        [40m**      exponentiation              [4mexpr[24m ** [4mexpr[0m


        [40m*       multiply                    [4mexpr[24m * [4mexpr[0m
        [40m/       divide                      [4mexpr[24m / [4mexpr[0m
        [40m%       modulo (remainder)          [4mexpr[24m % [4mexpr[0m
        [40m~~      matches                     [4mexpr[24m ~~ [4mexpr[0m
        [40m!~      does not match              [4mexpr[24m !~ [4mexpr[0m
        [40min      list member                 [4mexpr[24m in [4mexpr[0m


        [40m+       addition (plus)             [4mexpr[24m + [4mexpr[0m
        [40m-       subtraction (minus)         [4mexpr[24m - [4mexpr[0m
        [40m##      list and string join        [4mexpr[24m ## [4mexpr[0m


        [40m<<      shift left                  [4mexpr[24m << [4mexpr[0m
        [40m>>      shift right                 [4mexpr[24m >> [4mexpr[0m


        [40m<       less than                   [4mexpr[24m < [4mexpr[0m
        [40m<=      less than or equal          [4mexpr[24m <= [4mexpr[0m
        [40m>       greater than                [4mexpr[24m > [4mexpr[0m
        [40m>=      greater than or equal       [4mexpr[24m >= [4mexpr[0m


        [40m==      equal                       [4mexpr[24m == [4mexpr[0m
        [40m!=      not equal                   [4mexpr[24m != [4mexpr[0m


        [40m&       bitwise AND                 [4mexpr[24m & [4mexpr[0m


        [40m^       bitwise exclusive OR        [4mexpr[24m ^ [4mexpr[0m


        [40m|       bitwise inclusive OR        [4mexpr[24m | [4mexpr[0m


        [40m? :     arithmetic if               [4mexpr[24m ? [4mexpr[24m : [4mexpr[0m


        [40m=       simple assignment           [4mexpr[24m = [4mexpr[0m
        [40m*=      multiply and assign         [4mexpr[24m *= [4mexpr[0m
        [40m/=      divide and assign           [4mexpr[24m /= [4mexpr[0m
        [40m%=      modulo and assign           [4mexpr[24m %= [4mexpr[0m
        [40m+=      add and assign              [4mexpr[24m += [4mexpr[0m
        [40m-=      subtract and assign         [4mexpr[24m -= [4mexpr[0m
        [40m<<=     shift left and assign       [4mexpr[24m <<= [4mexpr[0m
        [40m>>=     shift right and assign      [4mexpr[24m >>= [4mexpr[0m
        [40m&=      AND and assign              [4mexpr[24m &= [4mexpr[0m
        [40m^=      exclusive OR and assign     [4mexpr[24m ^= [4mexpr[0m
        [40m|=      inclusive OR and assign     [4mexpr[24m |= [4mexpr[0m


        [40m,       comma (sequencing)          [4mexpr[24m , [4mexpr[0m

        [40mMost of these operators behave as they do in C, but some of these[0m
        [40moperators will require some explanation.[0m

   [1m[40mExponentiation[0m
        [40mThe ** operator raises the left argument to the right'th power.  It is[0m
        [40mright associative.[0m

   [1m[40mMatch[0m
        [40mThe ~~ operator compares two strings.  It returns a number between 0.0[0m
        [40mand 1.0.  Zero means completely different, one means identical.  Case[0m
        [40mis significant.[0m

   [1m[40mNot Match[0m
        [40mThe !~ is used to compare two strings, and returns the opposite of the[0m
        [40m~~ operator; one if completely different, and zero if identical.[0m

   [1m[40mString Join[0m
        [40mThe ## operator is used to join two strings together.[0m

[1m[40mTYPES[0m
        [40mThere are several types used within the report language.[0m

        [40marray   Values of this type contain other values, indexed by a string.[0m
                [40mIf you attempt to index by an arithmetic type, it will be[0m
                [40msilently converted to a string.  Use the [4mkeys[24m function to[0m
                [40mdetermine all of the keys; use the [4mcount[24m function to determine[0m
                [40mhow many entries an array has.  The type of an array element[0m
                [40mis not restricted, only the index must be a string.[0m

        [40mboolean This type has two values: true and false.  These value arise[0m
                [40mfrom the boolean operators described earlier.[0m

        [40minteger This type is represented by the [4mlong[24m C type.  It has a limited[0m
                [40mrange of values (usually -2e9 to 2e9 approximately).  If used[0m
                [40min a string context, it will be silently converted to a[0m
                [40mstring.  For exact control of the format, used the [4msprintf[0m
                [40mfunction.[0m

        [40mlist    Values of this type contain a list of other values.  The type[0m
                [40mof these values is not restricted.  The array index operator[0m
                [40m(e[e]) may be used to access list elements; indexes start at[0m
                [40mzero (0).[0m

        [40mstring  Values of this type are an arbitrary string of C characters,[0m
                [40mexcept the NUL character ( ).  Strings may be of any length.[0m

        [40mstruct  Values of this type contain additional values.  These values[0m
                [40mare accessed using the "dot" operator.  These values may also[0m
                [40mbe treated as if they were arrays.[0m

        [40mreal    This type is represented the the [4mdouble[24m C type.  If used in a[0m
                [40mstring context, it will be silently converted to a string.[0m
                [40mFor exact control of the format, used the [4msprintf[24m function.[0m

[1m[40mFUNCTIONS[0m
        [40mThere are a number of built-in functions.[0m

        [40mbasename[0m
                [40mThis function is used to extract the last element from a file[0m
                [40mpath.[0m

        [40mcapitalize[0m
                [40mThis function converts it argument to a capitalized string in[0m
                [40mTitle Case.[0m

        [40mceil    This function is used to round a number to an integer, towards[0m
                [40mpositive infinity.[0m

        [40mchange_number[0m
                [40mThis function is used to determine the change number.  It may[0m
                [40mbe set by the [1m-Change [22mcommand line option, or it may default.[0m
                [40mThe return value is an integer.[0m

        [40mchange_number_set[0m
                [40mThis function maybe used to determine if the change number was[0m
                [40mset by the [1m-Change [22mcommand line option.  The return value is a[0m
                [40mboolean.[0m

        [40mcolumns This function is used to define the report columns.  Each[0m
                [40margument is a structure containing some or all of the[0m
                [40mfollowing fields:[0m

                      [40mleft      the left margin, counting characters[0m
                                [40mfrom 0 on the left[0m
                      [40mright     the right margin, plus one[0m
                      [40mwidth     the width in characters, defaults to 7[0m
                                [40mif right not specified[0m
                      [40mpadding   white space between columns, defaults to[0m
                                [40m1 if not set[0m
                      [40mtitle     the title for this column, separate[0m
                                [40mmultiple lines with \n[0m
                [40mThe columns must be defined before the [4mprint[24m function is used.[0m

        [40mcount   This function is used to count the number of elements in a[0m
                [40mlist or array.[0m

        [40mdirname This function is used to extract all but the last element from[0m
                [40ma file path.[0m

        [40mdowncase[0m
                [40mThis functions converts its argument to lower case.[0m

        [40meject   This function is used to start a new page of output.[0m

        [40mfloor   This function is used to round a number to an integer, towards[0m
                [40mnegative infinity.[0m

        [40mgetenv  This function is used to get the value of an environment[0m
                [40mvariable.  Will return the empty string if not set.[0m

        [40mgettime This function is used to parse a string to produce a time.  It[0m
                [40munderstands a variety of different date formats.[0m

        [40mgetuid  This function takes no arguments, and returns the user ID of[0m
                [40mthe process which invoked the report generator. The return[0m
                [40mvalue is an integer.[0m

        [40mkeys    This function may be given an array or a list as argument.  It[0m
                [40mreturns a list of keys which may be used to index the[0m
                [40margument.  Most often seen in for loops.[0m

        [40mlength  This function is used to find the length of a string.[0m

        [40mmktime  This a synonym for the [4mgettime[24m function.[0m

        [40mmtime   This function may be used to obtain the modification time of a[0m
                [40mfile.[0m

        [40mneed    This function is used to insert a page break into the report[0m
                [40mif the required number of lines is not available before the[0m
                [40mend of page.  If sufficient lines are available, only a single[0m
                [40mblank line will be inserted.  The return value is void.[0m

        [40mnow     This function takes no arguments, and returns the current[0m
                [40mtime.[0m

        [40mpage_length[0m
                [40mThis function may be used to determine the length of the[0m
                [40moutput page in lines.  The return value is an integer.[0m

        [40mpage_width[0m
                [40mThis function may be used to determine the width of the output[0m
                [40mpage in columns.  The return value is an integer.[0m

        [40mprint   This function is used to print into the defined columns.[0m
                [40mColumns will wrap around.[0m

        [40mproject_name[0m
                [40mThis function is used to determine the project name.  It may[0m
                [40mbe set by the [1m-Project [22mcommand line option, or it may default.[0m
                [40mThe return value is a string.[0m

        [40mproject_name_set[0m
                [40mThis function maybe used to determine if the project name was[0m
                [40mset by the [1m-Project [22mcommand line option.  The return value is[0m
                [40ma boolean.[0m

        [40mquote_html[0m
                [40mThis function quotes its argument string to insulate HTML[0m
                [40mspecial characters; these include "less than" (<), "ampersand"[0m
                [40m(&) and non-printing characters.  This is most often used to[0m
                [40mgenerate suitable text for web pages.[0m

        [40mquote_tcl[0m
                [40mThis function quotes its argument string to insulate TCL[0m
                [40mspecial characters; these include "[]" and non-printing[0m
                [40mcharacters.  This is most often used to generate suitable text[0m
                [40mfor TCL interface scripts.[0m

        [40mquote_url[0m
                [40mThis function quotes its argument string to insulate URL[0m
                [40mspecial characters; these include "?+#:&=" and non-printing[0m
                [40mcharacters.  This is most often used to generate suitable text[0m
                [40mfor web pages.[0m

        [40mround   This function is used to round a number to an integer, towards[0m
                [40mthe closest integer.[0m

        [40msort    This function must be given a list as argument.  The values[0m
                [40mare sorted into ascending order.  A new list is returned.[0m

        [40msplit   This function is used to split a string into a list of[0m
                [40mstrings.  The first argument is the string to split, the[0m
                [40msecond argument is the character to split around.[0m

        [40msprintf This function is used to build strings.  It is similar to the[0m
                [4m[40msprintf[24m(3) function.[0m

        [40mstrftime[0m
                [40mThis function is used to format times as strings.  The first[0m
                [40margument is the format string, the second argument is a time.[0m
                [40mSee the [4mstrftime[24m(3) man page for more the format specifiers.[0m

        [40msubst   This function is used to substitute strings by regular[0m
                [40mexpression.  The first argument is the pattern to match, the[0m
                [40msecond argument is the substitution pattern, the third[0m
                [40margument is the input string to be substituted.  The option[0m
                [40mfourth argument is the number of substitutions to perform; the[0m
                [40mdefault is as many as possible.[0m

        [40msubstr  This function is used to extract substrings from strings.  The[0m
                [40mfirst argument is a string, the second argument is the[0m
                [40mstarting position, starting from 0, and the third argument is[0m
                [40mthe length.[0m

        [40mterse   This function may be used to determine of the [1m-TERse [22mcommand[0m
                [40mline option was used.  The return type is a boolean.[0m

        [40mtitle   This function is used to set the title of the report.  It[0m
                [40mtakes at most two arguments, one for each available title[0m
                [40mline.[0m

        [40mtrunc   This function is used to round a number to an integer, towards[0m
                [40mzero.[0m

        [40mtypeof  This function is used to determine the type of a value.  The[0m
                [40mreturn type is a string containing the name of the type, as[0m
                [40mdescribed in the[0m

        [40munquote_url[0m
                [40mThis function will remove URL quoting from the argument[0m
                [40mstring.  URL quoting takes the form of a percent sign (%)[0m
                [40mfollowed by two hex digits.  This is replaced by a single[0m
                [40mcharacter with the value represented by the hex digits.[0m

        [40mupcase  This functions converts its argument to upper case.[0m

        [40mworking_days[0m
                [40mThis function is used to determine the number of working days[0m
                [40mbetween two times.[0m

        [40mwrap    This function is used to wrap a string into a list of strings.[0m
                [40mThe first argument is the wring to wrap, the second argument[0m
                [40mis the maxmium width of the output strings.[0m

        [40mwrap_html[0m
                [40mThis function is used to wrap a string into a list of strings.[0m
                [40mThe first argument is the wring to wrap, the second argument[0m
                [40mis the maxmium width of the output strings.  This is very[0m
                [40msimilar to the [4mwrap[24m functions, except thatit inserts HTML[0m
                [40mparagraph breaks <p> or line breaks <br> to reflect the[0m
                [40mnewlines within the string (2 or 1, respectively).  [4mTYPES[0m
                [40msection.[0m

[1m[40mVARIABLES[0m
        [40mThere are a number of built-in variables.[0m

        [40marg     This variable is a list containing the arguments passed on the[0m
                [4m[40maer[24m(1) command line.[0m

        [40mchange[0m
                [40mThere is a special type of variable created by using an[0m
                [40mexpression similar to [4mproject[project_name()].state.change[n][0m
                [40mwhich contains all of the fields described in aecstate[4m(5),[0m
                [4m[40mplus[24m [4msome[24m [4mextras:[0m

                [4m[40mchange[24m  Branches have a change array, just like [4mproject[24m below.[0m

                [40mchange_number[0m
                        [40mThe number of the change.[0m

                [40mconfig  This gives access to all of the fields described in[0m
                        [4m[40maepconf(5).[0m

                [4m[40mproject_name[0m
                        [40mThe name of the project containing the change.[0m

                [40msrc     This gives access to the change files, and when[0m
                        [40mindexed by file name, yields a value conataining[0m
                        [40mfields as described in [4maefstate[24m(5), for the [4msrc[24m field.[0m

        [40mgroup   This variable is an array containing all of the entries in the[0m
                [4m[40m/etc/group[24m file.  Each entry is a structure with fields as[0m
                [40mdocumented in the [4mgroup[24m(5) manual entry.  The [4mgr_mem[24m element[0m
                [40mis a list of strings.  This array may be indexed by either a[0m
                [40mstring, treated as a group name, or by an integer, treated as[0m
                [40ma GID.[0m

        [40mpasswd  This variable is an array containing all of the entries in the[0m
                [4m[40m/etc/passwd[24m file.  Each entry is a structure with fields as[0m
                [40mdocumented in the [4mpasswd[24m(5) manual entry.  This array may be[0m
                [40mindexed by either a string, treated as a user name, or by an[0m
                [40minteger, treated as a uid.[0m

        [40mproject This variable is an array containing one entry for each aegis[0m
                [40mproject, indexed by name.  Each array element is a structure,[0m
                [40mcontaining[0m

                      [40mname        the project name[0m
                      [40mdirectory   the root of the project directory tree[0m
                      [40mstate       the project state[0m
                [40mThe project state contains the fields documented in the[0m
                [4m[40maepstate[24m(5) manual entry.  Except: the [4mchange[24m field is not a[0m
                [40mlist of change numbers, it is an array indexed by change[0m
                [40mnumber of change states, as documented in the [4maecstate[24m(5)[0m
                [40mmanual entry.  (See [4mchange[24m, above.)[0m

        [40muser    This variable is an array containing the [4m.aegisrc[24m file of each[0m
                [40muser.  Each entry is a structure with fields as documented in[0m
                [40mthe [4maeuconf[24m(5) manual entry.  This array may be indexed by[0m
                [40meither a string, treated as a user name, or by an integer,[0m
                [40mtreated as a uid.  Files which are unreadable or absent will[0m
                [40mgenerate an error, so you need to wrap accesses in a try/catch[0m
                [40mstatement.  (Note: count() and keys() functions think the[0m
                [40marray is empty; if you want a list of users, consult the[0m
                [40mpasswd array.)[0m

[1m[40mFILES[0m
        [40mThe reports are kept in the [4m/usr/local/share/aegis/report[24m directory.[0m
        [40mThe reports are associated with a name by the[0m
        [4m[40m/usr/local/share/aegis/report.index[24m file.  Their names use the command[0m
        [40mline argument abbreviation scheme, so that report names may be[0m
        [40mabbreviated.[0m

[1m[40mSEE ALSO[0m
        [4m[40maer[24m(1)  report generator[0m

        [4m[40maecstate[24m(5)[0m
                [40mchange state description[0m

        [4m[40maepstate[24m(5)[0m
                [40mproject state description[0m

        [4m[40maerptidx[24m(5)[0m
                [40mreport index file format[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aerptidx(5)                                                        aerptidx(5)



[40m[1mNAME[0m
        [40maerptidx - aegis report index file format[0m

[1m[40mSYNOPSIS[0m
        [40m/usr/local/share/aegis/report.index[0m
        [40m/usr/local/share/aegis/report.local[0m

[1m[40mDESCRIPTION[0m
        [40mThe report index file is used to store pointers to report scripts, and[0m
        [40mdescriptions of the reports.[0m

        [40mWhen searching for a report, the [4maer[24m(1) command searches down the[0m
        [4m[40mAEGIS_PATH[24m looking for [4mreport.index[24m files, and searching them for the[0m
        [40mreport named.[0m

[1m[40mCONTENTS[0m
        [40mwhere = [{ ... }];[0m
                [40mThis field is a table relating report name to file name.  The[0m
                [40mstructure is as follows:[0m

                [40mname = string;[0m
                        [40mThe name of a report.  The command line argument[0m
                        [40mnaming scheme is used, to provide abbreviatable names.[0m

                [40mdescription = string;[0m
                        [40mA brief description of the report.  It should not be[0m
                        [40mvery long, one or two lines at most.[0m

                [40mfilename = string;[0m
                        [40mThe name of the file containing the report script.  If[0m
                        [40ma relative path is given, it will be interpreted to be[0m
                        [40mrelative to the directory containing the [4mreport.index[0m
                        [40mfile.[0m

[1m[40mSEE ALSO[0m
        [4m[40maer[24m(1)  report generator[0m

        [4m[40maegis[24m(5)[0m
                [40maegis file format syntax[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aesub(5)                                                              aesub(5)



[40m[1mNAME[0m
        [40maesub - aegis command substitutions[0m

[1m[40mDESCRIPTION[0m
        [40mWhen other programs are invoked by the [4maegis[24m program, it is usually[0m
        [40mvia a command string in a configuration file.  This section describes[0m
        [40mthe format of these command strings.[0m

[1m[40mGENERAL FORM[0m
        [40mThe command strings are very similar to shell variables.  An example[0m
        [40mwill illustrate this:[0m
                [40mbuild_command =[0m
                     [40m"cook project=${project} change=${change}";[0m
        [40mIn this command definition, the "${project}" part is a substitution:[0m
        [40mthe name of the project will be substituted in the command at this[0m
        [40mpoint.[0m

        [40mSubstitutions may take several forms:[0m

        [40m$name[0m
                [40mThis is the same as saying "${name}".  The name must start[0m
                [40mwith an alphabetic, and be followed by zero or more[0m
                [40malphanumerics.[0m

        [40m${name}[0m
                [40mThe name in this form may contain any non-blank characters,[0m
                [40mand it may be subject to substitution.[0m

        [40m${name [4marg[24m...}[0m
                [40mThe name and the arguments in this form may contain any non-[0m
                [40mblank characters, and it may be subject to further[0m
                [40msubstitution.  Within the braces ([1m{ [22mand [1m}[22m) pairs of single[0m
                [40mquote characters ([1m'[4m[22mblah[24m [4mblah[24m[1m'[22m) may be used to insulate spaces[0m
                [40mand other special characters, or you may use the back quote[0m
                [40m([1m\[22m) to escape a single character.[0m

        [40m$$[0m
                [40mThis is replaced by a single $ character.  It avoid RCS[0m
                [40mexpansions, you can also use ${$}.[0m

        [40m%%[0m
                [40mThis is replaced by a single % character.  Percent ([1m%[22m)[0m
                [40mfollowed by anything else is illegal.[0m

        [40m$#...\n This is a comment, usually found in template files read in[0m
                [40musing the ${read_file} substitution.  It consumes all[0m
                [40mcharacters up to and including the next newline.  (See also[0m
                [40m${comment}, below.)[0m

        [40mAs another example, the [4mdirname[24m substitution is replaced by the[0m
        [40mdirectory name of the argument, rather like the [4mdirname[24m(1) command.[0m
        [40mIn the command[0m
                [40mhistory_query_command =[0m
                     [40m"get -t -g ${Dirname $History}/s.${Basename $History}";[0m
        [40mthe [4mDirname[24m and [4mBasename[24m substitutions are used to construct a[0m
        [40msuitable path to the SCCS file in the history directory.[0m

[1m[40mABBREVIATIONS[0m
        [40mThe names of the various substitutions may be abbreviated.  In the[0m
        [40mabove examples, and in the lists which follow, the minimum[0m
        [40mabbreviation is the uppercase letters.  All substitution name are case[0m
        [40minsensitive.[0m

        [40mThe above example could be abbreviated to[0m
                [40mhistory_query_command =[0m
                     [40m"get -t -g ${d $h}/s.${b $h}";[0m

        [40mAmbiguous abbreviations will result in a fatal error message.[0m

[1m[40mSUBSTITUTIONS[0m
        [40mThere are many substitutions which are always understood, and some[0m
        [40mwhich are specific to the command being substituted.  Specific entries[0m
        [40mwill be defined in the relevant manual section.[0m

        [40mThe following lists contains those substitutions which are always[0m
        [40munderstood:[0m

        [40mActive_Directory[0m
                [40mThe absolute path of the change's development directory, if[0m
                [40mthe change is between the [4mbeing[24m [4mdeveloped[24m and [4mawaiting[0m
                [4m[40mintegration[24m states.  The absolute path of the change's[0m
                [40mintegration directory, if the change is in the [4mbeing[0m
                [4m[40mintegrated[24m state.  Not available when the change is in the[0m
                [4m[40mawaiting[24m [4mdevelopment[24m or [4mcompleted[24m states.  This rather like[0m
                [40mthe default behaviour of the [4maecd[24m(1) command.[0m

        [40mAdd_Path_Suffix[0m
                [40mThis substitution may be used to add a suffix to each element[0m
                [40mof a colon-separated path list.  The first argument is the[0m
                [40msuffix to use, the second and subsequent arguments are the[0m
                [40mcolon-separated paths to work on.  The result is a single[0m
                [40mcolon separated path.  Often used in combination with the[0m
                [40m${search_path} substitution, below.[0m

        [40mAdministrator_List[0m
                [40mSpace separated list of the project's administrators.  Takes[0m
                [40man optional argument in the same form as the [4muser[0m
                [40msubstitution.[0m

        [40mARCHitecture[0m
                [40mThis substitution is replaced by the architecture name[0m
                [40mappropriate for the current execution environment.  Requires[0m
                [40mno arguments.  See the [4marchitecture[24m field of [4maepconf[24m(5) for[0m
                [40mmore information.  When used in commands, you may need to[0m
                [40msurround this substitution with the [4mquote[24m substitution (see[0m
                [40mbelow), if any of your architecture names contain shell[0m
                [40mspecial characters.[0m

        [40mBaseLine[0m
                [40mAbsolute path of the the project's baseline.[0m

        [40mBasename[0m
                [40mThis substitution takes one argument, a pathname.  The value[0m
                [40mof the substitution will be the last element of the pathname.[0m
                [40mThis is similar to the [4mbasename[24m(1) command.[0m

        [40mBAse_RElative[0m
                [40mThis substitution takes at least one pathname.  The value of[0m
                [40mthe substitution is the base-relative filenames, with any[0m
                [40mchange-specific or project baseline specific leading path[0m
                [40mremoved.  The file does not have to be a project source file.[0m
                [40m(This is almost the inverse of the $source substitution,[0m
                [40mbelow.)[0m

        [40mBINary_DIRectory[0m
                [40mThe absolute path of Aegis' architecture-specific binary[0m
                [40m(executables) directory.  This corresponds to the "[4m./configure[0m
                [4m[40m-bindir[24m" option when Aegis was built.  This is where most of[0m
                [40mthe Aegis executable programs are installed.[0m

        [40mCAPitalize[0m
                [40mThis substitution takes at least one argument.  The value of[0m
                [40mthe substitution will be the arguments with the first letter[0m
                [40mof each word forced to upper case and the rest forced to lower[0m
                [40mcase.[0m

        [40mChange[0m
                [40mThis substitution provides various information about the[0m
                [40mchange, based on the argument it is given.[0m

                [40mattribute[0m
                        [40mThis substitution takes an additional argument, the[0m
                        [40mname of a change attribute (see [4maeca[24m(1) and [4maecattr[24m(5)[0m
                        [40mfor more information).  This returns the value listed[0m
                        [40min the change attributes, or the empty string if the[0m
                        [40mchange does not have the named attribute.[0m

                [40mcause   This returns the cause of the change.[0m

                [40mdate [4mformat[0m
                        [40mThis returns the completion date of the change.  See[0m
                        [4m[40mDATE[24m section for additional arguments.[0m

                [40mdelta   This returns the delta number of the change.  Only[0m
                        [40mvalid for completed changes.[0m

                [40mdelta_uuid[0m
                        [40mThis returns the delta UUID of the change, assigned on[0m
                        [40mintegrate pass, a globally unique identifier for the[0m
                        [40mstate of the project when this change was integrated[0m
                        [40m(different for all repositories).  Only valid for[0m
                        [4m[40mbeing_integrated[24m and [4mcompleted[24m [4mchanges.[0m

                [4m[40mdescription[0m
                        [40mThis returns the brief description of the change.[0m

                [40mdeveloper[0m
                        [40mThis returns the name of the developer of the change.[0m

                [40mdevelopment_directory[0m
                        [40mThis returns the development directory of the change.[0m

                [40mintegrator[0m
                        [40mThis returns the name of the integrator of the change.[0m

                [40mintegration_directory[0m
                        [40mThis returns the integration directory of the change.[0m

                [40mnumber  This returns the number of the change.  (This is the[0m
                        [40mdefault if no argument is given.)[0m

                [40mreviewer[0m
                        [40mThis returns the name of the reviewer of the change.[0m

                [40mstate   This returns the state of the change.[0m

                [40muuid    This returns the UUID of the change.[0m

                [40mversion This returns the version of the change.[0m

        [40mChange_Attribute[0m
                [40mThis substitution takes exactly one argument.  This argument[0m
                [40mis a name of a change attribute (see [4maeca[24m(1) and [4maecattr[24m(5)[0m
                [40mfor more information).  This returns the value listed in the[0m
                [40mchange attributes, or the empty string if the change does not[0m
                [40mhave the named attribute.[0m

        [40mChange_Files[0m
                [40mThis is replaced by a space separated list of change file[0m
                [40mnames.  There are several qualifying arguments you can give to[0m
                [40mthis substitution:[0m

                [4m[40maction[24m  You may give one or more file actions (e.g. [4mmodify[24m).[0m
                        [40mOnly files with one of the actions will be returned.[0m
                        [40mBy default, all file actions are returned.[0m

                [4m[40mtype[24m    You may give one or more file types (e.g. [4msource[24m).[0m
                        [40mOnly files with one of the types will be returned.  By[0m
                        [40mdefault, all file types are returned.[0m

                [40mnot     Inverts the sense of operations.  For example[0m
                        [4m[40m${change_files[24m [4mnot[24m [4mremove}[24m will return the names of[0m
                        [40mall change files not being removed.[0m

                [40mquote   This does not affect which file are selected, but it[0m
                        [40mcauses the file names to be quoted if they contain[0m
                        [40mshell meta-characters.[0m

                [40mIf you specify both actions and types, only files both[0m
                [40mqualifiers will be returned.  For example [4m${change_files[0m
                [4m[40mmodify[24m [4mtest}[24m will return only the names of automatic test[0m
                [40mfiles which are being modified.[0m

        [40mChange_Developer_List[0m
                [40mSpace separated list of all the change's developers.  Note[0m
                [40mthat this is different than the Developer_List substitution.[0m

        [40mChange_Reviewer_List[0m
                [40mSpace separated list of the change's reviewers since the last[0m
                [4m[40mdevelop[24m [4mend[24m.  Note that this is different than the Reviewer_-[0m
                [40mList substitution.  Bt using the [4mreview_policy_command[24m field[0m
                [40mof the project configuration file this value can have more[0m
                [40mthan one reviewer, because this allows a project to require a[0m
                [40mchange to need to be reviewed more than once before it can be[0m
                [40mintegrated.[0m

        [40mCOMment[0m
                [40mInserts exactly nothing; any and all arguments are ignored.[0m
                [40mAnother form of comment is "$#" which extends to the end of[0m
                [40mthe current line.[0m

        [40mCopyright_Years[0m
                [40mInserts a comma separated list of copyright years from the[0m
                [40mproject attributes.  This list of years is maintained by [4maegis[0m
                [40mat integrate begin, and so is only guaranteed to be up-to-date[0m
                [40min the'[4mbeing[24m [4mintegrated[24m' state.  Do not use this substitution[0m
                [40min new file templates, it is not guaranteed to be up-to-date[0m
                [40min the '[4mbeing[24m [4mdeveloped[24m' state; use the ${date %Y}[0m
                [40msubstitution in new file templates.[0m

                [40mThis list contains spaces, so if you use it to build commands,[0m
                [40myou will probably need to quote, it as well.[0m

        [40mDATa_DIRectory[0m
                [40mThe absolute path of Aegis' architecture-neutral library[0m
                [40mdirectory.  This corresponds to the "[4m./configure[24m [4m-datadir[24m"[0m
                [40moption when Aegis was built.  This is where most of the[0m
                [40mscripts included with Aegis are installed.[0m

        [40mDAte[0m
                [40mWith no arguments, the output is the current date.  If there[0m
                [40mare arguments, they form a format string.  This is similar to[0m
                [40mthe [4mdate[24m(1) command on many UNIX systems.  For a description[0m
                [40mof the date formats, see the [4mDATE[24m section, below.[0m

        [40mDELta[0m
                [40mThe delta number of the change.  This is only available when[0m
                [40mthe change is in the [4mbeing[24m [4mintegrated[24m state or the [4mcompleted[0m
                [40mstate.[0m

        [40mDEVeloper[0m
                [40mThe name of the developer.  Takes an optional argument in the[0m
                [40msame form as the [4muser[24m substitution.[0m

        [40mDEVeloper_List[0m
                [40mSpace separated list of the project's developers.  Takes an[0m
                [40moptional argument in the same form as the [4muser[24m substitution.[0m
                [40mNote that this is different than the Change_DeveloperList[0m
                [40msubstitution.[0m

        [40mDevelopment_Directory[0m
                [40mThe absolute path of the change's development directory.  Only[0m
                [40mavailable when the change is between the [4mbeing[24m [4mdeveloped[24m state[0m
                [40mand the [4mbeing[24m [4mintegrated[24m state.[0m

        [40mDIFF[0m
                [40mThe absolute path of the diff command, as discovered when[0m
                [40mAegis was built.  It tries to locate GNU Diff at build time to[0m
                [40mprovide maximum functionality.[0m

        [40mDirname[0m
                [40mThis substitution takes at least one argument, a pathname.[0m
                [40mThe value of the substitution will be everything but the last[0m
                [40melement of the pathname.  This is similar to the [4mdirname[24m(1)[0m
                [40mcommand.[0m

        [40mDirname_RELative[0m
                [40mThis substitution takes at least one argument, a pathname.[0m
                [40mThe value of the substitution will be everything but the last[0m
                [40melement of the pathname.  This is similar to the [4mdirname[0m
                [40msubstitution, except that if there are no directory[0m
                [40mcomponents, it returns dot (".").[0m

        [40mDownCase[0m
                [40mThis substitution takes at least one argument.  The value of[0m
                [40mthe substitution will be the argument with any upper case[0m
                [40mletters mapped to lower case.[0m

        [40mEMail_Address[0m
                [40mThis substitution takes one or more user names as arguments.[0m
                [40mIt replaces them with email addresses.  (It is an error if any[0m
                [40muser name is unknown.)[0m

                [40mThis substitution takes options.  You may specify one or more[0m
                [40mof them immediately after the substitution name.[0m

                [1m[40m-Comma  [22mThis option may be used to specify that the email[0m
                        [40maddresses are to be separated by commas.[0m

                [1m[40m-Quote  [22mThis option may be used to specify that the email[0m
                        [40maddresses are to be quoted to insulate shell special[0m
                        [40mcharacters.[0m

                [40mSee [4maeuconf[24m(5) for where this is set.[0m

        [40mENVironment[0m
                [40mThis substitution takes at least one argument.  The value of[0m
                [40mthe substitution is the value of the corresponding environment[0m
                [40mvariable, or empty of undefined.[0m

        [40mERrno[0m
                [40mThis substitution takes no arguments.  The value of the[0m
                [40msubstitution will be the value if the [4merrno[24m variable provided[0m
                [40mby the system, as mapped through the [4mstrerror[24m function.  Thus[0m
                [40myou may give the users informative system error messages.[0m

        [40mEXpression[0m
                [40mThis substitution evaluates simple arithmetic expressions.[0m
                [40mAddition, subtraction, division, multiplication, modulo and[0m
                [40mnegation are understood.  The 6 basic comparison operators are[0m
                [40mavailable.  The usual C syntax and precedence are used.  The[0m
                [40marguments must constitute a valid expression, white space and[0m
                [40mword boundaries are ignored.[0m

        [40mHistory_Directory[0m
                [40mThis substitution takes zero arguments.  It is replaced by the[0m
                [40mabsolute path of the history directory of the project.[0m

        [40mHistory_Path[0m
                [40mThis substitution takes one argument, the name of a source[0m
                [40mfile.  It is replaced by the absolute path of the history file[0m
                [40mfor that source file.  Note that you may beed to massage the[0m
                [40mfile name a little for you proticular history tool, just as[0m
                [40mthe history commands in the [4maegis.conf[24m file do.[0m
                [40mThis substitution takes zero arguments.  It is replaced by the[0m
                [40mabsolute path of the history directory of the project.[0m

        [40mIDentifier[0m
                [40mThis substitution takes at least one argument.  The value of[0m
                [40mthe substitution will be the argument with all characters but[0m
                [40malpha numerics mapped into an underscore (_), so as to form a[0m
                [40mlegal C identifier.[0m

        [40mINTegration_Directory[0m
                [40mThe absolute path of the change's integration directory.  Only[0m
                [40mavailable when the change is in the [4mbeing[24m [4mintegrated[24m state.[0m

        [40mINTegrator[0m
                [40mThe name of the change's integrator.  Only available when the[0m
                [40mchange is in the [4mbeing[24m [4mintegrated[24m state or the [4mcompleted[0m
                [40mstate.  Takes an optional argument in the same form as the[0m
                [4m[40muser[24m substitution.[0m

        [40mINTegrator_List[0m
                [40mSpace separated list of the project's integrators.  Takes an[0m
                [40moptional argument in the same form as the [4muser[24m substitution.[0m

        [40mLEFt    This substitution extracts the left hand side of strings.  It[0m
                [40mtakes two arguments: the first is the string, the second is[0m
                [40mthe number of characters.[0m

        [40mLENgth  This substitution determines the length of strings, the result[0m
                [40mis a number.  It takes one argument: the string to be[0m
                [40mmeasured.[0m

        [40mLIBrary[0m
                [40mThe absolute path of Aegis' library directory.  This[0m
                [40mcorresponds to the "[4m./configure[24m [4m-datadir[24m" option when Aegis[0m
                [40mwas built.  This substitution is deprecated - please use[0m
                [40m${datadir} instead.[0m

        [40mLIBrary_DIRectory[0m
                [40mThe absolute path of Aegis' architecture-specific library[0m
                [40mdirectory.  This corresponds to the "[4m./configure[24m [4m-libdir[24m"[0m
                [40moption when Aegis was built.[0m

        [40mName_Maximum[0m
                [40mThis substitution is used to get the maximum file name length[0m
                [40mwithin a file system.  It takes at least one argument: the[0m
                [40mname of a directory within the file system.  Frequently used[0m
                [40mwith ${left} to crop filenames to the file system maximum.[0m

        [40mPAth_Reduce[0m
                [40mThis function requires at least one argument.  It is used to[0m
                [40mremove duplicates from a command search path, such as may be[0m
                [40mfound in the PATH environment variable.  If more than one[0m
                [40margument is given, all are included in the results, as if they[0m
                [40mwere separated by colons.[0m

        [40mPERL    This function requires zero arguments.  It is replaced by the[0m
                [40mabsolute path of a Perl interpreter.[0m

        [40mPLural[0m
                [40mThis function requires 2 or 3 arguments.  The first argument[0m
                [40mis evaluated as a number, if it is plural (not equal to 1) the[0m
                [40msecond argument is the result, otherwise the third argument is[0m
                [40mthe result (or empty if not given).  This is mostly used to[0m
                [40mpluralize sentences in Germainic error messages.[0m

        [40mPLural_Forms[0m
                [40mThe [4mplural_forms[24m substitution is similar to the [4m${plural}[0m
                [40msubstitution, except that it reads and understands the Plural-[0m
                [40mForms: header in the message catalogue.  This means that it[0m
                [40munderstands a greater range of pluralization mechanisms than[0m
                [40mthe simple [4m${plural}[24m substitution.  (For a description of the[0m
                [40mPlural-Forms: header, see the GNU Gettext manual.)[0m

                [40mThe first argument is the number.  Second is the singular form[0m
                [40m(corresponding to the Plural-Forms: expression evaluating to[0m
                [40mzero), the third and subsequent arguments are the various[0m
                [40mplural forms (corresponding to the Plural-Forms: expression[0m
                [40mevaluating to 1, 2, 3, [4metc[24m.[0m

                [40mThe Plural-Forms: expression is required evaluate to less than[0m
                [40mnplurals.  If it does not, the second argument (the singular[0m
                [40mform) is used.  If there are too few arguments to this[0m
                [40msubstitution, the second argument (the singular form) is again[0m
                [40mused.[0m

                [40mNote that in the default case (used for English and other[0m
                [40mGermanic languages), the arguments are the [4mreverse[24m of those[0m
                [40mexpected by the [4m${plural}[24m substitution.[0m

        [40mProject[0m
                [40mThis substitution provides various information about the[0m
                [40mproject, based on the argument it is given.[0m

                [40mname    This returns the name of the project.  (This is the[0m
                        [40mdefault if no argument is given.)[0m

                [40mdescription[0m
                        [40mThis returns the description of the project (the one[0m
                        [40mwhich appears in the project listing).[0m

                [40mtrunk_name[0m
                        [40mThis returns the name of the trunk of the project[0m
                        [40m(i.e. no branch numbers included).[0m

                [40mtrunk_description[0m
                        [40mThis returns the description of the trunk of the[0m
                        [40mproject.[0m

                [40mversion This returns the version of the project.[0m

                [40mversion_long[0m
                        [40mThis returns the version of the project, including the[0m
                        [40mdelta number.[0m

        [40mProject_Specific[0m
                [40mThis substitution takes exactly one argument.  This argument[0m
                [40mis a name to be found in the project configuration file's[0m
                [4m[40mproject_specific[24m field (see [4maepconf[24m(5) for more information).[0m
                [40mThis returns the value listed in the project configuration[0m
                [40mfile.  Unknown attributes will be replaced with the empty[0m
                [40mstring.[0m

        [40mQUote[0m
                [40mThis substitution may be used to quote shell special[0m
                [40mcharacters.  If no quoting is required, not quotes will be[0m
                [40minserted.  This is used to insulate shell special characters[0m
                [40min filenames when forming commands.[0m

        [40mRead_File[0m
                [40mRead a file and substitute the contents of the file.  Requires[0m
                [40mexactly one argument, the pathname of the file to be read.  If[0m
                [40mthe pathname is a project source file, you will need to use[0m
                [40mthe [4msource[24m substitution to resolve the path.  It is a fatal[0m
                [40merror if the file does not exist, or is not readable.  It is a[0m
                [40mfatal error if the pathname is not absolute (because the[0m
                [40mcurrent directory is undefined).[0m

        [40mRead_File_Simple[0m
                [40mRead a file and without substituting the contents of the file.[0m
                [40mRequires exactly one argument, the pathname of the file to be[0m
                [40mread.  If the pathname is a project source file, you will need[0m
                [40mto use the [4msource[24m substitution to resolve the path.  It is a[0m
                [40mfatal error if the file does not exist, or is not readable.[0m
                [40mIt is a fatal error if the pathname is not absolute (because[0m
                [40mthe current directory is undefined).[0m

        [40mReviewer[0m
                [40mThe name of the change's reviewer.  Only available when the[0m
                [40mchange is between the [4mawaiting[24m [4mintegration[24m state and the[0m
                [4m[40mcompleted[24m state.  Takes an optional argument in the same form[0m
                [40mas the [4muser[24m substitution.[0m

        [40mReviewer_List[0m
                [40mSpace separated list of the project's reviewers.  Takes an[0m
                [40moptional argument in the same form as the [4muser[24m substitution.[0m
                [40mNote that this is different than the Change_Reviewer_List[0m
                [40msubstitution.[0m

        [40mRIght   This substitution extracts the right hand side of strings.  It[0m
                [40mtakes two arguments: the first is the string, the second is[0m
                [40mthe number of characters.[0m

        [40mSearch_Path[0m
                [40mThe Search_Path substitution is replaced by a colon separated[0m
                [40mlist of absolute paths to search when building a change, it[0m
                [40mwill point from a change to its branch and so on up to the[0m
                [40mproject trunk.[0m

        [40mSearch_Path_Executable[0m
                [40mThe Search_Path_Executable substitution is usually the same as[0m
                [40mthe Search_Path substitution.  However, during an "aegis -Test[0m
                [40m-BaseLine" command, it contains the baseline as the first[0m
                [40melement, rather then the development directory or the[0m
                [40mintegration directory.  This is of most use when looking for[0m
                [40mexecutables and executable support files while running tests.[0m

        [40mSHell[0m
                [40mThe absolute path of a Bourne shell which understands[0m
                [40mfunctions.  Requires exactly zero arguments.[0m

        [40mSource[0m
                [40mResolve the argument filename into a pathname.  It is an error[0m
                [40mif the file is not a source file.  An optional second argument[0m
                [40mmay be "Absolute" or "Relative", and may be abbreviated.[0m
                [40mRelative will attempt to provide a development-directory-[0m
                [40mrelative pathname whenever possible, absolute will always[0m
                [40mresult in an absolute path.  The default is "Relative".  (For[0m
                [40mthe inverse mapping, see [4m${BAse_RElative}[24m, above.)[0m

        [40mSPLit   This substitution may be used to split strings are specified[0m
                [40mseparators.  The first argument is the separator character to[0m
                [40mbe used, subsequent arguments are strings to be split.  The[0m
                [40mresult is the collection is split strings of the second a[0m
                [40mfollwoing arguments, separated by spaces.[0m

        [40mSTate[0m
                [40mThe state the current change is in.  It is an error if the[0m
                [40msubstitution does not refer to a change.[0m

        [40mSUBSTitute[0m
                [40mRegular expression substitution.  The first argument is the[0m
                [40mpattern to match, the second argument is the replacement[0m
                [40mstring.  The third and subsequent arguments are modified as[0m
                [40mspecified by the first two arguments.  The search is not[0m
                [40manchored, and the replacement will happen as many times as[0m
                [40mpossible.  Use "^" to match the beginning, and "$" to match[0m
                [40mthe end.[0m

        [40mSUBSTRing[0m
                [40mThis substitution extracts a substring from the middle of[0m
                [40mstrings.  It takes three arguments: the first is the string,[0m
                [40mthe second is the star character (counting from zero), the[0m
                [40mthird is the number of characters.[0m

        [40mSWitch[0m
                [40mSelect amongst a set of values.  The first argument is[0m
                [40mexpected to be a number.  If the number is zero, the second[0m
                [40margument is used; if the number is one, the third argument is[0m
                [40mused; etc.  If the number is negative, or exceeds the[0m
                [40mavailable arguments, the last argument is used.[0m

        [40mTrim_DIRectory[0m
                [40mThis substitution takes one or two arguments.  If given one[0m
                [40margument, one directory component (if present) is removed from[0m
                [40mthe argument, which is assumed to be a file name.  If two[0m
                [40marguments are present, the first is a directory count; at most[0m
                [40mthis many directory components (if present) will be removed.[0m
                [40mThe base file name is always left.[0m

        [40mTrim_EXTension[0m
                [40mThis substitution takes one argument.  Any file name extension[0m
                [40m(a dot characters and the characters following) will be[0m
                [40mremoved from the final filename section of the argument.[0m

        [40mUNSplit This substitution may be used to reverse the effects of the[0m
                [4m[40msplit[24m substitution.  The first arguments is a seaparator[0m
                [40mcharacter, the second and following arguments are strings to[0m
                [40mbe joined together using the separator character.  The result[0m
                [40mis a single string.[0m

        [40mUpCase[0m
                [40mThis substitution takes at least one argument.  The value of[0m
                [40mthe substitution will be the argument with any lower case[0m
                [40mletters mapped to upper case.[0m

        [40mUSer[0m
                [40mThis substitution provides various information about the user[0m
                [40mwho executed the command, based on the argument it is given.[0m

                [40mlogin   The login name of the user.  (This is the default if[0m
                        [40mno argument is given.)[0m

                [40mname    The full name of the user.[0m

                [40memail   The email address of the user.[0m

                [40mquoted_email[0m
                        [40mThe email address of the user, quoted to avoid shell[0m
                        [40mspecial characters.[0m

                [40mhome    The home directory of the user.[0m

        [40mVersion[0m
                [40mThe version of the change.  If the change is in the [4mbeing[0m
                [4m[40mintegrated[24m state or the [4mcompleted[24m state, the version will be[0m
                [40mof the form "[4ma[24m[1m.[4m[22mb[24m[1m.D[4m[22mddd[24m", where "a" is the project's major[0m
                [40mversion number, "b" is the project's minor version number, and[0m
                [40m"ddd" is the change's delta number.  If the change is in any[0m
                [40mother state, the version will be of the form "[4ma[24m[1m.[4m[22mb[24m[1m.C[4m[22mccc[24m", where[0m
                [40m"ccc" is the change number.[0m

                [40mdelta_uuid[0m
                        [40mThis variant gives the change's delta-UUID assigned at[0m
                        [40mintegrate pass.  Only valid for [4mbeing_integrated[24m and[0m
                        [4m[40mcompleted[24m changes.[0m

        [40mZero_Pad[0m
                [40mThis substitution is used to zero pad a string on the left.[0m
                [40mIt takes two arguments: the first is the string to be padded,[0m
                [40mthe second is the minimum string width.[0m

[1m[40mDATE[0m
        [40mThis section describes the format specifiers accepted by the date[0m
        [40msubstitution.  These are the same specifiers as defined by the ANSI C[0m
        [40mstandard for the strftime function.[0m

        [40m%%      The percent character (%)[0m

        [40m%a      the abbreviated weekday name[0m

        [40m%A      the full weekday name[0m

        [40m%b      the abbreviated month name[0m

        [40m%B      the full month name[0m

        [40m%c      the date and time[0m

        [40m%d      the day of the month, zero padded[0m

        [40m%H      the hour of the 24-hour day[0m

        [40m%I      the hour of the 12-hour day[0m

        [40m%j      the day number of year, zero padded, one based[0m

        [40m%m      the month of the year, zero padded, one based[0m

        [40m%M      the minute of the hour, zero padded[0m

        [40m%p      meridian indicator, AM or PM as appropriate[0m

        [40m%S      the second of the minute[0m

        [40m%U      the Sunday week of the year[0m

        [40m%w      the day of the week, Sunday is 0[0m

        [40m%W      the Monday week of the year[0m

        [40m%x      the date, as [4mmmm[24m [4mdd[24m [4myyyy[0m

        [40m%X      the time, as [4mhh:mm:ss[0m

        [40m%y      the year of the century[0m

        [40m%Y      the year including the century[0m

        [40m%Z      time zone abbreviation[0m

        [40mUsing an undefined format specifier will produce random results,[0m
        [40mdepending on the version of UNIX you are on.[0m

[1m[40mSEE ALSO[0m
        [1m[40maesub[22m(1)[0m
                [40mSubstitute and print strings.[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aetest(5)                                                            aetest(5)



[40m[1mNAME[0m
        [40maetest - aegis test results file format[0m

[1m[40mDESCRIPTION[0m
        [40mThe default configuration of the [4mtest_command[24m and [4mdevelopment_test_-[0m
        [4m[40mcommand[24m commands of the project [4mconfig[24m file (see [4maepconf[24m(5) for more[0m
        [40minformation) is for the test commands to test a single test file and a[0m
        [40msingle architecture at a time.  On some systems, this is not[0m
        [40mefficient.[0m

        [40mWhen configured to run multiple simultaneous tests, or multiple[0m
        [40msimultaneous architectures, a file of the format described here is[0m
        [40mused to communicate the test results back to Aegis.[0m

[1m[40mCONTENTS[0m
        [40mUse a separate row for each unique filename and architecture[0m
        [40mcombination.[0m

        [40mtest_result = [ { ... } ];[0m
                [40mAll the fields are mandatory.[0m

                [40mfile_name = string;[0m
                        [40mThis is the name of the file being tested.  Use the[0m
                        [40msame filename as was given to the test command.[0m

                [40mexit_status = integer;[0m
                        [40mThis is the exit status returned by the test.[0m

                [40marchitecture = string;[0m
                        [40mThis is the architecture which the test was run on.[0m
                        [40mDefaults to the architecture of the current system if[0m
                        [40mnot set.  (Try to avoid setting this field unless you[0m
                        [40mhave a very clever multi-architecture test system.)[0m

[1m[40mSEE ALSO[0m
        [4m[40maet[24m(1)  run tests[0m

        [4m[40maegis[24m(5)[0m
                [40maegis file format syntax[0m

        [4m[40maepconf[24m(5)[0m
                [40mProject configuration file format.[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aeuconf(5)                                                          aeuconf(5)



[40m[1mNAME[0m
        [40maeuconf - user configuration file[0m

[1m[40mSYNOPSIS[0m
        [4m[40m$AEGIS_FLAGS[0m
        [4m[40m$HOME[24m/.aegisrc[0m
        [4m[40m/usr/local/share/aegis/aegisrc[0m
        [4m[40m/usr/local/lib/aegis/aegisrc[0m

[1m[40mDESCRIPTION[0m
        [40mA user configuration file is used to hold user defaults.  This file is[0m
        [40mcreated and edited by the user.  This file is only ever read by aegis,[0m
        [40mit is never written.[0m

        [40mThe sources of user preferences are scanned in the order given above.[0m
        [40mEarlier sources have higher priority.[0m

   [1m[40mAEGIS_FLAGS[0m
        [40mThis environment variable has the same format.  It is read first, and[0m
        [40mover-rides the [4m.aegisrc[24m file contents.  This is intended to be used[0m
        [40mwithin the tests distributed with aegis, but can also be of use within[0m
        [40msome shell scripts.  It contains session specific preferences.[0m

   [4m[40m$HOME[24m/.aegisrc[0m
        [40mThis file contains user specific preferences.[0m

   [4m[40m/usr/local/share/aegis/aegisrc[0m
        [40mThis file contains architecture-neutral preferences.[0m

   [4m[40m/usr/local/lib/aegis/aegisrc[0m
        [40mThis file contains architecture-specific preferences.[0m

[1m[40mCONTENTS[0m
        [40mThe file contains the following fields:[0m

        [40mdefault_development_directory = string;[0m
                [40mThe pathname of where to place new development directories.[0m
                [40mThe pathname may be relative, in which case it is relative to[0m
                [4m[40m$HOME[24m.  The default is the field of the same name in the[0m
                [40mproject attributes, or [4m$HOME[24m neither is set.[0m

        [40mdefault_project_directory = string;[0m
                [40mThe pathname of where to place new project directories.  The[0m
                [40mpathname may be relative.  If this path is relative, it is[0m
                [40mrelative to [4m$HOME[24m.  The default is [4m$HOME[24m.[0m

        [40mdelete_file_preference = (no_keep, interactive, keep);[0m
                [40mAll of the commands which delete files will consult this field[0m
                [40mto determine if the file should be deleted.  Defaults to[0m
                [4m[40mno_keep[24m if not set.[0m

        [40mdefault_project_name = string;[0m
                [40mThe name of a project.[0m

        [40mdefault_change_number = integer;[0m
                [40mThe number of a change.[0m

        [40mPlease note that the [4mdefault_project_name[24m field and the[0m
        [4m[40mdefault_change_number[24m field are unrelated.  Specifying both does not[0m
        [40mmean that single change within that single project, they have nothing[0m
        [40mto do with each other.[0m

        [40mdiff_preference = (automatic_merge, no_merge, only_merge);[0m
                [40mThe [4maed(1)[24m command will consult this field to determine what[0m
                [40mto do:[0m

                [1m[40mno_merge[0m
                        [40mmeans only diff the files, even if some have out of[0m
                        [40mdate versions.[0m

                [1m[40monly_merge[0m
                        [40mmeans merge those files with out of date versions, and[0m
                        [40mdo not do anything else, even if they need to be[0m
                        [40mdiffed.[0m

                [1m[40mautomatic_merge[0m
                        [40mmeans to do [4monly_merge[24m if any source files require[0m
                        [40mmerging, otherwise do [4mno_merge[24m.  It never combines[0m
                        [40mmerges and differences in the same pass.[0m

                [40mThe corresponding command line options to the [4maed[24m(1) command[0m
                [40mtake precedence, this field is only consulted if you do not[0m
                [40mgive a corresponding command line argument.  Defaults to[0m
                [4m[40mautomatic_merge[24m if not set.[0m

        [40mpager_preference = (foreground, never);[0m
                [40mThis field is consulted for listings and help.  The standard[0m
                [40moutput is only piped to a pager if the command is run in the[0m
                [40mforeground and the standard output is directed at a terminal.[0m

                [40mforeground[0m
                        [40mThe standard output will be piped through the command[0m
                        [40mgiven in the PAGER environment variable (or [4mmore[24m if[0m
                        [40mnot set).[0m

                [40mnever   The standard output will not be redirected.[0m

                [40mThis field defaults to [4mforeground[24m if not set.[0m

        [40mpersevere_preference = (all, stop);[0m
                [40mThis field is consulted by the [4maet[24m(1) command, to determine if[0m
                [40mit should run all tests, or stop after the first failure.[0m
                [40mThis field defaults to [4mall[24m if not set.[0m

        [40mlog_file_preference = (snuggle, append, replace, never);[0m
                [40mThis field controls the behavior of the log file.  It usually[0m
                [40mdefaults to [4msnuggle[24m if not set, although some commands may[0m
                [40mdefault it to [4mappend[24m.  When the log file is in use, the output[0m
                [40mcontinues to be sent to the screen if the process is in the[0m
                [40mforeground and the standard output is a terminal.[0m

                [40mnever   Do not redirect the output to a log file.[0m

                [40mreplace Replace any log file that is present, create a new one[0m
                        [40mif none already exists.[0m

                [40mappend  Append the log to the end of any existing log file,[0m
                        [40mcreate a new one if none already exists.[0m

                [40msnuggle Append the log to the end of any existing log file if[0m
                        [40mthat log file was last modified less than 30 seconds[0m
                        [40mago, otherwise replace any existing log file; create a[0m
                        [40mnew one if none already exists.  This option allows[0m
                        [40mruns of aegis commands to produce a meaningful log[0m
                        [40mfile.[0m

        [40mlock_wait_preference = (always, background, never);[0m
                [40mThis field is consulted by all commands which wait for locks.[0m

                [40malways  The "always" setting says that all commands should[0m
                        [40malways wait for locks.  This is the default.[0m

                [40mbackground[0m
                        [40mThe "background" setting says that background commands[0m
                        [40mshould always wait for locks, and foreground commands[0m
                        [40mwill not.[0m

                [40mnever   The "never" setting says that no command should ever[0m
                        [40mwait for locks.  If the command would wait, it will[0m
                        [40mexit with status 1.[0m

                [40mThis user preference can be over-ridden by the [1m-wait [22mand[0m
                [1m[40m-nowait [22mcommand line options.[0m

        [40msymbolic_link_preference = (verify, assume);[0m
                [40mThis field is consulted by [4maeb[24m(1) when the project[0m
                [40mconfiguration file specifies[0m
                [4m[40mcreate_symbolic_links_before_build[24m as true.  The verification[0m
                [40mof the links can be quite time consuming; if you are confident[0m
                [40mthat they are already correct (say, from a recent build run)[0m
                [40myou may wish to assume they are correct and not verify them[0m
                [40mrepeatedly.[0m

                [40mverify  This setting says to always verify the symbolic links[0m
                        [40mto the baseline.  This is the default.[0m

                [40massume  This setting says to always assume the links are[0m
                        [40mcorrect, unless there has been a recent integration.[0m

                [40mThis user preference can be over-ridden by the[0m
                [1m[40m-Verify_Symbolic_Links [22mand [1m-Assume_Symbolic_Links [22mcommand line[0m
                [40moptions.[0m

        [40mrelative_filename_preference = (current, base);[0m
                [40mThis field is consulted by most commands which accept[0m
                [40mfilenames on the command line.  It controls whether relative[0m
                [40mfilenames are relative to the current directory (this is the[0m
                [40mdefault), or relative to the base of the project source tree.[0m

                [40mcurrent This setting says to interpret relative filenames[0m
                        [40magainst the current directory.[0m

                [40mbase    This setting says to interpret relative filenames[0m
                        [40magainst the base of the source tree.[0m

                [40mThis user preference can be over-ridden by the [1m-BAse_RElative[0m
                [40mand [1m-CUrrent_RElative [22mcommand line options.[0m

        [40memail_address = string;[0m
                [40mThis field may be used to set the preferred email address.  If[0m
                [40mnot set, defaults to `whoami`@`cat /etc/mailname` if not set,[0m
                [40mand if [4m/etc/mailname[24m exists.  Otherwise, defaults to[0m
                [40m`whoami`@`hostname` if not set, which is usually not what is[0m
                [40mrequired, particularly if you are behind a firewall.[0m

        [40mwhiteout_preference = (always, never);[0m
                [40mAll of the commands which cause a change to remove files will[0m
                [40mconsult this field to determine if the file should be have a[0m
                [40mdummy "whiteout" file put in the development directory.[0m
                [40mDefaults to "always" if not set.[0m

        [40meditor_command = string;[0m
                [40mThis command is used to edit a file, if the editing is being[0m
                [40mdone in the background.  Defaults to the EDITOR environment[0m
                [40mvariable if not set, or "ed" if not set.[0m

        [40mvisual_command = string;[0m
                [40mThis command is used to edit a file, if the editing is being[0m
                [40mdone in the foreground.  Defaults to the VISUAL environment[0m
                [40mvariable if not set, or to the EDITOR environment variable if[0m
                [40mnot set, or "vi" if not set.[0m

        [40mpager_command = string;[0m
                [40mThis is the command used to paginate report and listing[0m
                [40moutput.  Defaults to the PAGER environment variable if not[0m
                [40mset, or to "more" if not set.[0m

        [40mattribute = [ { ... } ];[0m
                [40mThis is a list of [4m(name,value)[24m pairs, defining user specified[0m
                [40mattributes.[0m

                [40mname = string;[0m
                        [40mThe name of the attribute.  By convention, names which[0m
                        [40mstart with an upper-case letter will appear in[0m
                        [40mlistings, and lower-case will not.  Attribute names[0m
                        [40mare case-insensitive.[0m

                        [40mArguably, most user attributes which may be altered by[0m
                        [40mthe user (and some that can't) should be of this form.[0m
                        [40mDue to an accident of history, this is not the case.[0m

                        [40mThe attributes known to Aegis are:[0m

                        [40mprogress-preference[0m
                                [40mboolean; true if [4maet[24m(1) should emit progress[0m
                                [40mmessages, false if not.  Can be overridden[0m
                                [40mwith the [1m-progress [22mand [1m-no-progress [22mcommand[0m
                                [40mline options.[0m

                        [40mFIXME: there needs to be a [4maesub[24m(5) way to get at[0m
                        [40mthese values.[0m

                [40mvalue = string;[0m
                        [40mThe value of the attribute.[0m

[1m[40mSEE ALSO[0m
        [4m[40maegis[24m(5)[0m
                [40maegis file format syntax[0m

        [4m[40maed[24m(1)  difference and merge files[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



aeustate(5)                                                        aeustate(5)



[40m[1mNAME[0m
        [40maeustate - aegis user state file[0m

[1m[40mSYNOPSIS[0m
        [40m/usr/local/com/aegis/user/[4muser-name[0m

[1m[40mDESCRIPTION[0m
        [40mA user state file is used to store information about a user.  These[0m
        [40mfile are created and maintained by aegis.  These file should not be[0m
        [40medited by humans.[0m

[1m[40mCONTENTS[0m
        [40mown = [{ ... }];[0m
                [40mThis field is a list of change the user is currently working[0m
                [40mon, within project.  The changes are in either the[0m
                [4m[40mbeing_developed[24m or [4mbeing_integrated[24m state.  The structure of[0m
                [40mthis field is as follows:[0m

                [40mproject = string;[0m
                        [40mThe name of a project.[0m

                [40mchange = [integer];[0m
                        [40mThe changes this user is working on in the project.[0m

[1m[40mSEE ALSO[0m
        [4m[40maegis[24m(5)[0m
                [40maegis file format syntax[0m

[1m[40mCOPYRIGHT[0m
        [40maegis version 4.24.3.D001[0m
        [40mCopyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,[0m
        [40m2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter[0m
        [40mMiller[0m

        [40mThe aegis program comes with ABSOLUTELY NO WARRANTY; for details use[0m
        [40mthe '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.  This is free software and you[0m
        [40mare welcome to redistribute it under certain conditions; for details[0m
        [40muse the '[4maegis[24m [4m-VERSion[24m [4mLicense[24m' command.[0m

[1m[40mAUTHOR[0m
        [40mPeter Miller   E-Mail:   millerp@canb.auug.org.au[0m
        [40m/\/\*             WWW:   http://www.canb.auug.org.au/~millerp/[0m



Table of Contents(Aegis)                              Table of Contents(Aegis)



[40m          [0mThe README File  [40m. . . . . . . . . . . . . . . . . . . . . . . .   [0m0
[40m          [0m    Windows NT [40m. . . . . . . . . . . . . . . . . . . . . . . . .   [0m3
[40m          [0mRelease Notes  [40m. . . . . . . . . . . . . . . . . . . . . . . . .   [0m5
[40m          [0mHow to Build the Sources [40m. . . . . . . . . . . . . . . . . . . .  [0m61
[40m          [0m    Windows NT [40m. . . . . . . . . . . . . . . . . . . . . . . . .  [0m68
aegis(1)[40m  [0mproject change supervisor  [40m. . . . . . . . . . . . . . . . . . .  [0m70
ae-cvs-ci(1)[40m                                                               [0mcheckin a change set to CVS 76
ae-repo-ci(1)[40m                                                              [0mredundant repository checkin 76
ae-sccs-put(1)[40m                                                             [0mput file version into SCCS 78
ae_c(1)[40m   [0mset change number  [40m. . . . . . . . . . . . . . . . . . . . . . .  [0m78
ae_diff2htm(1)[40m                                                             [0mwraps the diff2html command 79
ae_p(1)[40m   [0mset project name [40m. . . . . . . . . . . . . . . . . . . . . . . .  [0m79
aeannotate(1)[40m                                                              [0mannotated source file listing 80
aeb(1)[40m    [0mbuild a change [40m. . . . . . . . . . . . . . . . . . . . . . . . .  [0m81
aebisect(1)[40m                                                                [0msearch for a delta which changed  project  be-
haviour [40m.                                                                  [0m85
aebuffy(1)[40m                                                                 [0mwatch for changes 86
aeca(1)[40m   [0mmodify the attributes of a change  [40m. . . . . . . . . . . . . . .  [0m87
aecd(1)[40m   [0mchange directory [40m. . . . . . . . . . . . . . . . . . . . . . . .  [0m89
aechown(1)[40m                                                                 [0mset change owner 91
aeclean(1)[40m                                                                 [0mclean files from development directory 93
aeclone(1)[40m                                                                 [0mmake an exact copy of a change 95
aecomp(1)[40m [0mcompare two changes  [40m. . . . . . . . . . . . . . . . . . . . . .  [0m98
aecomplete(1)[40m                                                              [0mcommand completion 99
aecp(1)[40m   [0mcopy a file into a change  [40m. . . . . . . . . . . . . . . . . . .  [0m99
aecpu(1)[40m  [0mreverse action of aecp [40m. . . . . . . . . . . . . . . . . . . . . [0m103
aecvsserver(1)[40m                                                             [0mserve  CVS  client  protocol  against Aegis
projects [40m.                                                                 [0m105
aed(1)[40m    [0mdifference a change  [40m. . . . . . . . . . . . . . . . . . . . . . [0m106
aedb(1)[40m   [0mbegin development of a change  [40m. . . . . . . . . . . . . . . . . [0m110
aedbu(1)[40m  [0mundo the effects of aedb [40m. . . . . . . . . . . . . . . . . . . . [0m112
aede-policy(1)[40m                                                             [0mcheck change set is ready for aede 114
aede(1)[40m   [0mcomplete development of a change [40m. . . . . . . . . . . . . . . . [0m116
aedeu(1)[40m  [0mrecall a change for further development  [40m. . . . . . . . . . . . [0m117
aediff(1)[40m [0mfile differences between deltas  [40m. . . . . . . . . . . . . . . . [0m119
aedist(1)[40m [0mremotely distribute a change [40m. . . . . . . . . . . . . . . . . . [0m120
aedn(1)[40m   [0massign a symbolic name to a project delta  [40m. . . . . . . . . . . [0m125
aeedit(1)[40m [0medit a change's files  [40m. . . . . . . . . . . . . . . . . . . . . [0m126
aefa(1)[40m   [0mmodify the attributes of a file  [40m. . . . . . . . . . . . . . . . [0m126
aefind(1)[40m [0msearch for files in directory hierarchy  [40m. . . . . . . . . . . . [0m128
aefinish(1)[40m                                                                [0mfinish a change 131
aefp(1)[40m   [0mcalculate file fingerprint [40m. . . . . . . . . . . . . . . . . . . [0m132
aeget(1)[40m  [0mAegis CGI file access  [40m. . . . . . . . . . . . . . . . . . . . . [0m132
aegis.cgi(1)[40m                                                               [0mAegis web interface script 133
aeib(1)[40m   [0mbegin integrating a change [40m. . . . . . . . . . . . . . . . . . . [0m134
aeibu(1)[40m  [0mreverse the aeib command [40m. . . . . . . . . . . . . . . . . . . . [0m136
aeifail(1)[40m                                                                 [0mfail a change integration 137
aeimport(1)[40m                                                                [0mimport foreign repository into Aegis 138
aeintegratq(1)[40m                                                             [0mintegrate changes into projects 141
aeipass(1)[40m                                                                 [0mpass a change integration 143
ael(1)[40m    [0mlist interesting things  [40m. . . . . . . . . . . . . . . . . . . . [0m146
aelcf(1)[40m  [0mlist change files  [40m. . . . . . . . . . . . . . . . . . . . . . . [0m148
aelic(1)[40m  [0mGNU General Public License [40m. . . . . . . . . . . . . . . . . . . [0m149
aelock(1)[40m [0mtake a lock while a command runs [40m. . . . . . . . . . . . . . . . [0m154
aelpf(1)[40m  [0mlist project files [40m. . . . . . . . . . . . . . . . . . . . . . . [0m154
aels(1)[40m   [0mannotated directory listing  [40m. . . . . . . . . . . . . . . . . . [0m155
aemakegen(1)[40m                                                               [0mgenerate a Makefile.in from file manifest 156
aemeasure(1)[40m                                                               [0msimple file metrics 157
aemt(1)[40m   [0mmake branch file transparent [40m. . . . . . . . . . . . . . . . . . [0m158
aemtu(1)[40m  [0mno longer make branch file transparent [40m. . . . . . . . . . . . . [0m159
aemv(1)[40m   [0mrename one or more files as part of a change [40m. . . . . . . . . . [0m160
aemvu(1)[40m  [0mundo the rename a file as part of a change [40m. . . . . . . . . . . [0m163
aena(1)[40m   [0madd a new administrator to a project [40m. . . . . . . . . . . . . . [0m165
aenbr(1)[40m  [0mcreate a new branch  [40m. . . . . . . . . . . . . . . . . . . . . . [0m165
aenbru(1)[40m [0mremove a branch  [40m. . . . . . . . . . . . . . . . . . . . . . . . [0m166
aenc(1)[40m   [0madd a new change to a project  [40m. . . . . . . . . . . . . . . . . [0m167
aencu(1)[40m  [0mremove a change  [40m. . . . . . . . . . . . . . . . . . . . . . . . [0m168
aend(1)[40m   [0madd new developers to a project  [40m. . . . . . . . . . . . . . . . [0m169
aenf(1)[40m   [0madd new files to be created by a change  [40m. . . . . . . . . . . . [0m170
aenfu(1)[40m  [0mremove new files from a change [40m. . . . . . . . . . . . . . . . . [0m172
aeni(1)[40m   [0madd new integrators to a project [40m. . . . . . . . . . . . . . . . [0m173
aenpa(1)[40m  [0mcreate a new project alias [40m. . . . . . . . . . . . . . . . . . . [0m174
aenpr(1)[40m  [0mcreate a new project [40m. . . . . . . . . . . . . . . . . . . . . . [0m175
aenrls(1)[40m [0mcreate a new project from an  old-style  project
[40m. . . . .                                                                  [0m176
aenrv(1)[40m  [0madd new reviewers to a project [40m. . . . . . . . . . . . . . . . . [0m178
aent(1)[40m   [0madd a new test to a change [40m. . . . . . . . . . . . . . . . . . . [0m178
aentu(1)[40m  [0mremove new tests from a change [40m. . . . . . . . . . . . . . . . . [0m181
aepa(1)[40m   [0mmodify the attributes of a project [40m. . . . . . . . . . . . . . . [0m182
aepatch(1)[40m                                                                 [0msend and receive changes as patches 183
aepromptcmd(1)[40m                                                             [0mchange prompt color by change state 185
aer(1)[40m    [0mreport generator [40m. . . . . . . . . . . . . . . . . . . . . . . . [0m185
aera(1)[40m   [0mremove administrators from a project [40m. . . . . . . . . . . . . . [0m186
aerb(1)[40m   [0mbegin a change review  [40m. . . . . . . . . . . . . . . . . . . . . [0m187
aerbu(1)[40m  [0mstop reviewing a change  [40m. . . . . . . . . . . . . . . . . . . . [0m188
aerd(1)[40m   [0mremove developers from a project [40m. . . . . . . . . . . . . . . . [0m188
aerect[40m    [0mdraw a rectangle [40m. . . . . . . . . . . . . . . . . . . . . . . . [0m189
aerevml(1)[40m                                                                 [0msend and receive RevML change sets 189
aerfail(1)[40m                                                                 [0mfail a change review 191
aeri(1)[40m   [0mremove integrators from a project  [40m. . . . . . . . . . . . . . . [0m192
aerm(1)[40m   [0madd files to be deleted to a change  [40m. . . . . . . . . . . . . . [0m193
aermpr(1)[40m [0mremove project [40m. . . . . . . . . . . . . . . . . . . . . . . . . [0m194
aermu(1)[40m  [0mremove files to be deleted from a change [40m. . . . . . . . . . . . [0m195
aerpa(1)[40m  [0mremove a project alias [40m. . . . . . . . . . . . . . . . . . . . . [0m195
aerpass(1)[40m                                                                 [0mpass a change review 196
aerpu(1)[40m  [0mrescind a change review pass [40m. . . . . . . . . . . . . . . . . . [0m197
aerrv(1)[40m  [0mremove reviewers from a project  [40m. . . . . . . . . . . . . . . . [0m198
aesub(1)[40m  [0msubstitute and echo strings  [40m. . . . . . . . . . . . . . . . . . [0m198
aesubunit(1)[40m                                                               [0mrun SubUnit tests 198
aesvt(1)[40m  [0msimple vertion tool  [40m. . . . . . . . . . . . . . . . . . . . . . [0m199
aet(1)[40m    [0mrun tests  [40m. . . . . . . . . . . . . . . . . . . . . . . . . . . [0m200
aetar(1)[40m  [0mremotely distribute a change via tar [40m. . . . . . . . . . . . . . [0m201
aev(1)[40m    [0mversion information  [40m. . . . . . . . . . . . . . . . . . . . . . [0m203
aexml(1)[40m  [0mAegis database to XML  [40m. . . . . . . . . . . . . . . . . . . . . [0m203
aexver(1)[40m [0mgraphical file history [40m. . . . . . . . . . . . . . . . . . . . . [0m204
tkaeca(1)[40m [0mGUI interface for aeca, using TCL/TK [40m. . . . . . . . . . . . . . [0m204
tkaegis(1)[40m                                                                 [0mGUI interface for Aegis, using TCL/TK 204
tkaenc(1)[40m [0mGUI interface for aenc, using TCL/TK [40m. . . . . . . . . . . . . . [0m205
tkaeca(1)[40m [0mGUI interface for aeca, using TCL/TK [40m. . . . . . . . . . . . . . [0m206
tkaer(1)[40m  [0mGUI tool for reviewing Aegis change  sets,  using
TCL/TK  [40m.                                                                  [0m206
aecattr(5)[40m                                                                 [0mchange attributes file format 206
aecstate(5)[40m                                                                [0mchange state file format 207
aedir(5)[40m  [0mdirectory structures [40m. . . . . . . . . . . . . . . . . . . . . . [0m209
aefattr(5)[40m                                                                 [0mfile attribute file format 210
aefstate(5)[40m                                                                [0mfile state file format 210
aegis(5)[40m  [0mfile format  [40m. . . . . . . . . . . . . . . . . . . . . . . . . . [0m211
aegstate(5)[40m                                                                [0mglobal state file format 211
aelock(5)[40m [0m how locking works, and which commands use  them
[40m. . . . .                                                                  [0m212
aemetrics(5)[40m                                                               [0mmetrics values file format 212
aepattr(5)[40m                                                                 [0mproject attribute file format 212
aepconf(5)[40m                                                                 [0mproject configuration file format 213
aepstate(5)[40m                                                                [0mproject state file format 220
aer(5)[40m    [0mreport script language definition  [40m. . . . . . . . . . . . . . . [0m221
aerptidx(5)[40m                                                                [0mreport index file format 223
aesub(5)[40m  [0maegis command substitutions  [40m. . . . . . . . . . . . . . . . . . [0m224
aetest(5)[40m [0mtest results file format [40m. . . . . . . . . . . . . . . . . . . . [0m226
aeuconf(5)[40m                                                                 [0muser configuration file format 226
aeustate(5)[40m                                                                [0muser state file 227



Permuted Index(Aegis)                                    Permuted Index(Aegis)



[40maeget(1)         132      aeget - Aegis CGI file   access[0m
[40maecpu(1)         103      aegis copy file undo -   action of aecp[0m
                                         [40mreverse[0m
[40maena(1)          165   aegis new administrator -   add a new administrator[0m
                                                   [40mto a project[0m
[40maenc(1)          167          aegis new change -   add a new change to a[0m
                                                   [40mproject[0m
[40maent(1)          178            aegis new test -   add a new test to a[0m
                                                   [40mchange[0m

[40maerm(1)          193         aegis remove file -   add files to be deleted[0m
                                                   [40mto a change[0m
[40maend(1)          169       aegis new developer -   add new developers to a[0m
                                                   [40mproject[0m
[40maenf(1)          170            aegis new file -   add new files to be[0m
                                                   [40mcreated by a change[0m
[40maeni(1)          173      aegis new integrator -   add new integrators to a[0m
                                                   [40mproject[0m
[40maenrv(1)         178        aegis new reviewer -   add new reviewers to a[0m
                                                   [40mproject[0m
[40maena(1)          165                   aegis new   administrator - add a new[0m
                                                   [40madministrator to a[0m
                                                   [40mproject[0m
[40maera(1)          186                aegis remove   administrator - remove[0m
                                                   [40madministrators from a[0m
                                                   [40mproject[0m
[40maera(1)          186                aegis remove   administrators from a[0m
                          [40madministrator - remove   project[0m
[40maena(1)          165   aegis new administrator -   administrator to a[0m
                                       [40madd a new   project[0m
[40maeannotate(1)     80                               aeannotate - annotated[0m
                                                   [40msource file listing[0m
[40maebuffy(1)        86                               aebuffy - watch for[0m
                                                   [40mchanges[0m
[40maecattr(5)       206                               aecattr - aegis change[0m
                                                   [40mattributes file[0m
[40mtkaeca(1)        206      tkaeca - GUI interface   aeca, using TCL/TK[0m
                                             [40mfor[0m
[40mtkaepa(1)                 tkaepa - GUI interface   aeca, using TCL/TK[0m
                                             [40mfor[0m
[40maecomp(1)         98                               aecomp - compare two[0m
                                                   [40mchanges[0m
[40maecomplete(1)     99                               aecomplete - command[0m
                                                   [40mcompletion[0m
[40maecpu(1)         103      aegis copy file undo -   aecp[0m
                               [40mreverse action of[0m
[40mae_c(1)           78                               ae c - set change number[0m
[40maecstate(5)      207                               aecstate - aegis change[0m
                                                   [40mstate file[0m
[40mae-cvs-ci(1)      76                               ae-cvs-ci - checkin a[0m
                                                   [40mchange set to CVS[0m
[40maecvsserver(1)   105                               aecvsserver - serve CVS[0m
                                                   [40mclient protocol against[0m
                                                   [40mAegis projects[0m
[40maedbu(1)         112    aegis develop begin undo   aedb[0m
                           [40m- undo the effects of[0m
[40maede-policy(1)   114         aede-policy - check   aede[0m
                         [40mchange set is ready for[0m
[40maede-policy(1)   114                               aede-policy - check[0m
                                                   [40mchange set is ready for[0m
                                                   [40maede[0m
[40mae_diff2htm(1)    79                               ae diff2htm - wraps the[0m
                                                   [40mdiff2html command[0m
[40maediff(1)        119                               aediff - file differences[0m
                                                   [40mbetween deltas[0m
[40maedir(5)         209                               aedir - aegis directory[0m
                                                   [40mstructures[0m
[40maedist(1)        120                               aedist - remotely[0m
                                                   [40mdistribute a change[0m
[40maeedit(1)        126                               aeedit - edit a change's[0m
                                                   [40mfiles[0m
[40maefattr(5)       210                               aefattr - aegis file[0m
                                                   [40mattribute file format[0m
[40maefind(1)        128                               aefind - search for files[0m
                                                   [40min directory hierarchy[0m
[40maefinish(1)      131                               aefinish - finish a[0m
                                                   [40mchange[0m
[40maefp(1)          132                               aefp - calculate file[0m
                                                   [40mfingerprint[0m
[40maefstate(5)      210                               aefstate - aegis file[0m
                                                   [40mstate file[0m
[40maeget(1)         132                               aeget - Aegis CGI file[0m
                                                   [40maccess[0m
[40maeimport(1)      138   aeimport - import foreign   Aegis[0m
                                 [40mrepository into[0m
[40maeget(1)         132                     aeget -   Aegis CGI file access[0m
[40mtkaer(1)         206        tkaer - GUI tool for   Aegis change sets, using[0m
                                       [40mreviewing   TCL/TK[0m
[40maexml(1)         203                     aexml -   Aegis database to XML[0m
[40maecvsserver(1)   105     aecvsserver - serve CVS   Aegis projects[0m
                         [40mclient protocol against[0m
[40mtkaegis(1)       204     tkaegis - GUI interface   Aegis, using TCL/TK[0m
                                             [40mfor[0m
[40maegis.cgi(1)     133                 aegis.cgi -   Aegis web interface[0m
                                                   [40mscript[0m
[40maegstate(5)      211                               aegstate - aegis global[0m
                                                   [40mstate file[0m
[40maeibu(1)         136       aegis integrate begin   aeib command[0m
                              [40mundo - reverse the[0m
[40maeimport(1)      138                               aeimport - import foreign[0m
                                                   [40mrepository into Aegis[0m
[40maeintegratq(1)   141                               aeintegratq - integrate[0m
                                                   [40mchanges into projects[0m
[40maelcf(1)         148                               aelcf - list change files[0m
[40maelock(1)        154                               aelock - take a lock[0m
                                                   [40mwhile a command runs[0m
[40maelpf(1)         154                               aelpf - list project[0m
                                                   [40mfiles[0m
[40maels(1)          155                               aels - annotated[0m
                                                   [40mdirectory listing[0m
[40maemakegen(1)     156                               aemakegen - generate a[0m
                                                   [40mMakefile.in from file[0m
                                                   [40mmanifest[0m
[40maemeasure(1)     157                               aemeasure - simple file[0m
                                                   [40mmetrics[0m
[40maemetrics(5)     212                               aemetrics - metrics[0m
                                                   [40mvalues file format[0m
[40mtkaenc(1)        205      tkaenc - GUI interface   aenc, using TCL/TK[0m
                                             [40mfor[0m
[40maepatch(1)       183                               aepatch - send and[0m
                                                   [40mreceive changes as[0m
                                                   [40mpatches[0m
[40maepattr(5)       212                               aepattr - aegis project[0m
                                                   [40mattribute file[0m
[40maepconf(5)       213                               aepconf - aegis project[0m
                                                   [40mconfiguration file[0m
[40maepromptcmd(1)   185                               aepromptcmd - change[0m
                                                   [40mprompt color by change[0m
                                                   [40mstate[0m
[40mae_p(1)           79                               ae p - set project name[0m
[40maepstate(5)      220                               aepstate - aegis project[0m
                                                   [40mstate file[0m
[40maer(5)           221                               aer - aegis report script[0m
                                                   [40mlanguage definition[0m
[40maerect(1)                                          aerect - draw a rectangle[0m
[40mae-repo-ci(1)     76                               ae-repo-ci - redundant[0m
                                                   [40mrepository checkin[0m
[40maerevml(1)       189                               aerevml - send and[0m
                                                   [40mreceive RevML change sets[0m
[40maerptidx(5)      223                               aerptidx - aegis report[0m
                                                   [40mindex file format[0m
[40mae-sccs-put(1)    78                               ae-sccs-put - put sccs[0m
                                                   [40mversion[0m
[40maesub(5)         224                               aesub - aegis command[0m
                                                   [40msubstitutions[0m
[40maesub(1)         198                               aesub - substitute and[0m
                                                   [40mecho strings[0m
[40maesubunit(1)     198                               aesubunit - run SubUnit[0m
                                                   [40mtests[0m
[40maesvt(1)         199                               aesvt - simple version[0m
                                                   [40mtool[0m
[40maetar(1)         201                               aetar - remotely[0m
                                                   [40mdistribute a change via[0m
                                                   [40mtar[0m
[40maetest(5)        226                               aetest - aegis test[0m
                                                   [40mresults file format[0m
[40maeuconf(5)       226                               aeuconf - user[0m
                                                   [40mconfiguration file[0m
[40maeustate(5)      227                               aeustate - aegis user[0m
                                                   [40mstate file[0m
[40maexml(1)         203                               aexml - Aegis database to[0m
                                                   [40mXML[0m


[40maexver(1)        204                               aexver - graphical file[0m
                                                   [40mhistory[0m
[40maecvsserver(1)   105     aecvsserver - serve CVS   against Aegis projects[0m
                                 [40mclient protocol[0m
[40maenpa(1)         174   aegis new project alias -   alias[0m
                            [40mcreate a new project[0m
[40maerpa(1)         195        aegis remove project   alias[0m
                        [40malias - remove a project[0m
[40maenpa(1)         174           aegis new project   alias - create a new[0m
                                                   [40mproject alias[0m
[40maerpa(1)         195        aegis remove project   alias - remove a project[0m
                                                   [40malias[0m
[40maeclone(1)        95          aegis clone - make   an exact copy of a change[0m
[40maels(1)          155                      aels -   annotated directory[0m
                                                   [40mlisting[0m
[40maeannotate(1)     80                aeannotate -   annotated source file[0m
                                                   [40mlisting[0m
[40maenrls(1)        176         aegis new release -   an old-style project.[0m
                       [40mcreate a new project from[0m
[40maedn(1)          125          aegis delta name -   assign a symbolic name to[0m
                                                   [40ma project delta[0m
[40maepattr(5)       212     aepattr - aegis project   attribute file[0m
[40maefattr(5)       210        aefattr - aegis file   attribute file format[0m
[40maecattr(5)       206      aecattr - aegis change   attributes file[0m
[40maeca(1)           87                aegis change   attributes - modify the[0m
                                                   [40mattributes of a change[0m
[40maefa(1)          126                  aegis file   attributes - modify the[0m
                                                   [40mattributes of a file[0m
[40maepa(1)          182               aegis project   attributes - modify the[0m
                                                   [40mattributes of a project[0m
[40maeca(1)           87   aegis change attributes -   attributes of a change[0m
                                      [40mmodify the[0m
[40maefa(1)          126     aegis file attributes -   attributes of a file[0m
                                      [40mmodify the[0m
[40maepa(1)          182    aegis project attributes   attributes of a project[0m
                                    [40m- modify the[0m
[40maed(1)           106     aegis difference - find   baseline[0m
                           [40mdifferences between a[0m
                                  [40mchange and the[0m
[40maerb(1)          187        aegis review begin -   begin a change review[0m
[40maerb(1)          187                aegis review   begin - begin a change[0m
                                                   [40mreview[0m
[40maedb(1)          110               aegis develop   begin - begin development[0m
                                                   [40mof a change[0m
[40maeib(1)          134             aegis integrate   begin - begin integrating[0m
                                                   [40ma change[0m
[40maedb(1)          110       aegis develop begin -   begin development of a[0m
                                                   [40mchange[0m
[40maeib(1)          134     aegis integrate begin -   begin integrating a[0m
                                                   [40mchange[0m
[40maeibu(1)         136             aegis integrate   begin undo - reverse the[0m
                                                   [40maeib command[0m
[40maerbu(1)         188                aegis review   begin undo - stop[0m
                                                   [40mreviewing a change[0m
[40maedbu(1)         112               aegis develop   begin undo - undo the[0m
                                                   [40meffects of aedb[0m
[40maed(1)           106     aegis difference - find   between a change and the[0m
                                     [40mdifferences   baseline[0m
[40maediff(1)        119   aediff - file differences   between deltas[0m
[40maenbr(1)         165   aegis new branch - create   branch[0m
                                           [40ma new[0m
[40maenbru(1)        166     aegis new branch undo -   branch[0m
                                        [40mremove a[0m
[40maenbr(1)         165                   aegis new   branch - create a new[0m
                                                   [40mbranch[0m
[40maemt(1)          158    aegis make transparent -   branch file transparent[0m
                                            [40mmake[0m
[40maemtu(1)         159      aegis make transparent   branch file transparent[0m
                           [40mundo - no longer make[0m
[40maenbru(1)        166                   aegis new   branch undo - remove a[0m
                                                   [40mbranch[0m
[40maeb(1)            81               aegis build -   build a change[0m
[40maeb(1)            81                       aegis   build - build a change[0m
[40maefp(1)          132                      aefp -   calculate file[0m
                                                   [40mfingerprint[0m
[40maegis.cgi(1)     133                      aegis.   cgi - Aegis web interface[0m
                                                   [40mscript[0m
[40maeget(1)         132               aeget - Aegis   CGI file access[0m
[40maedist(1)        120           aedist - remotely   change[0m
                                    [40mdistribute a[0m
[40maefinish(1)      131         aefinish - finish a   change[0m
[40maeb(1)            81       aegis build - build a   change[0m
[40maeca(1)           87   aegis change attributes -   change[0m
                        [40mmodify the attributes of[0m
                                               [40ma[0m
[40maeclone(1)        95       aegis clone - make an   change[0m
                                 [40mexact copy of a[0m
[40maecp(1)           99    aegis copy file - copy a   change[0m
                                     [40mfile into a[0m
[40maedb(1)          110       aegis develop begin -   change[0m
                          [40mbegin development of a[0m
[40maede(1)          116         aegis develop end -   change[0m
                       [40mcomplete development of a[0m
[40maeib(1)          134     aegis integrate begin -   change[0m
                             [40mbegin integrating a[0m
[40maemv(1)          160    aegis move file - rename   change[0m
                       [40mone or more files as part[0m
                                            [40mof a[0m
[40maemvu(1)         163      aegis move file undo -   change[0m
                       [40mundo the rename a file as[0m
                                       [40mpart of a[0m
[40maenf(1)          170    aegis new file - add new   change[0m
                        [40mfiles to be created by a[0m
[40maenfu(1)         172       aegis new file undo -   change[0m
                         [40mremove new files from a[0m
[40maent(1)          178      aegis new test - add a   change[0m
                                   [40mnew test to a[0m
[40maentu(1)         181       aegis new test undo -   change[0m
                         [40mremove new tests from a[0m
[40maerm(1)          193     aegis remove file - add   change[0m
                        [40mfiles to be deleted to a[0m
[40maermu(1)         195    aegis remove file undo -   change[0m
                              [40mremove files to be[0m
                                  [40mdeleted from a[0m
[40maerbu(1)         188   aegis review begin undo -   change[0m
                                [40mstop reviewing a[0m
[40maenc(1)          167                   aegis new   change - add a new change[0m
                                                   [40mto a project[0m
[40maed(1)           106     aegis difference - find   change and the baseline[0m
                           [40mdifferences between a[0m
[40maecattr(5)       206             aecattr - aegis   change attributes file[0m
[40maeca(1)           87                       aegis   change attributes -[0m
                                                   [40mmodify the attributes of[0m
                                                   [40ma change[0m
[40maecd(1)           89    aegis change directory -   change directory[0m
[40maecd(1)           89                       aegis   change directory - change[0m
                                                   [40mdirectory[0m
[40maelcf(1)         148                aelcf - list   change files[0m
[40maedeu(1)         117    aegis develop end undo -   change for further[0m
                                        [40mrecall a   development[0m
[40maencu(1)         168     aegis new change undo -   change from a project[0m
                                    [40mremove a new[0m
[40maeifail(1)       137      aegis integrate fail -   change integration[0m
                                          [40mfail a[0m
[40maeipass(1)       143      aegis integrate pass -   change integration[0m
                                          [40mpass a[0m
[40mae_c(1)           78                  ae c - set   change number[0m
[40maechown(1)        91    aegis change owner - set   change owner[0m
[40maechown(1)        91                       aegis   change owner - set change[0m
                                                   [40mowner[0m
[40maepromptcmd(1)   185               aepromptcmd -   change prompt color by[0m
                                                   [40mchange state[0m
[40maerb(1)          187        aegis review begin -   change review[0m
                                         [40mbegin a[0m
[40maerfail(1)       191    aegis review fail - fail   change review[0m
                                               [40ma[0m
[40maerpass(1)       196    aegis review pass - pass   change review[0m
                                               [40ma[0m
[40maerpu(1)         197    aegis review pass undo -   change review pass[0m
                                       [40mrescind a[0m
[40maebuffy(1)        86         aebuffy - watch for   changes[0m
[40maecomp(1)         98        aecomp - compare two   changes[0m


[40maepatch(1)       183          aepatch - send and   changes as patches[0m
                                         [40mreceive[0m
[40maede-policy(1)   114         aede-policy - check   change set is ready for[0m
                                                   [40maede[0m
[40maerevml(1)       189          aerevml - send and   change sets[0m
                                   [40mreceive RevML[0m
[40mtkaer(1)         206        tkaer - GUI tool for   change sets, using TCL/TK[0m
                                 [40mreviewing Aegis[0m
[40mae-cvs-ci(1)      76       ae-cvs-ci - checkin a   change set to CVS[0m
[40maeedit(1)        126             aeedit - edit a   change's files[0m
[40maeintegratq(1)   141     aeintegratq - integrate   changes into projects[0m
[40maepromptcmd(1)   185        aepromptcmd - change   change state[0m
                                 [40mprompt color by[0m
[40maecstate(5)      207            aecstate - aegis   change state file[0m
[40maegis(1)          70             aegis - project   change supervisor[0m
[40maenc(1)          167    aegis new change - add a   change to a project[0m
                                             [40mnew[0m
[40maencu(1)         168                   aegis new   change undo - remove a[0m
                                                   [40mnew change from a project[0m
[40maetar(1)         201            aetar - remotely   change via tar[0m
                                    [40mdistribute a[0m
[40maede-policy(1)   114               aede-policy -   check change set is ready[0m
                                                   [40mfor aede[0m
[40mae-repo-ci(1)     76      ae-repo-ci - redundant   checkin[0m
                                      [40mrepository[0m
[40mae-cvs-ci(1)      76                 ae-cvs-ci -   checkin a change set to[0m
                                                   [40mCVS[0m
[40mae-cvs-ci(1)      76                     ae-cvs-   ci - checkin a change set[0m
                                                   [40mto CVS[0m
[40mae-repo-ci(1)     76                    ae-repo-   ci - redundant repository[0m
                                                   [40mcheckin[0m
[40maeclean(1)        93                       aegis   clEan - clean files from[0m
                                                   [40mdevelopment directory[0m
[40maeclean(1)        93               aegis clEan -   clean files from[0m
                                                   [40mdevelopment directory[0m
[40maecvsserver(1)   105     aecvsserver - serve CVS   client protocol against[0m
                                                   [40mAegis projects[0m
[40maeclone(1)        95                       aegis   clone - make an exact[0m
                                                   [40mcopy of a change[0m
[40maepromptcmd(1)   185        aepromptcmd - change   color by change state[0m
                                          [40mprompt[0m
[40mae_diff2htm(1)    79     ae diff2htm - wraps the   command[0m
                                       [40mdiff2html[0m
[40maeibu(1)         136       aegis integrate begin   command[0m
                         [40mundo - reverse the aeib[0m
[40maecomplete(1)     99                aecomplete -   command completion[0m
[40maelock(1)        154        aelock - take a lock   command runs[0m
                                         [40mwhile a[0m
[40maesub(5)         224               aesub - aegis   command substitutions[0m
[40maelock(5)        212   aegis locks - how locking   commands use them[0m
                                [40mworks, and which[0m
[40maecomp(1)         98                    aecomp -   compare two changes[0m
[40maede(1)          116         aegis develop end -   complete development of a[0m
                                                   [40mchange[0m
[40maecomplete(1)     99        aecomplete - command   completion[0m
[40maepconf(5)       213     aepconf - aegis project   configuration file[0m
[40maeuconf(5)       226              aeuconf - user   configuration file[0m
[40maecp(1)           99           aegis copy file -   copy a file into a change[0m
[40maecp(1)           99                       aegis   copy file - copy a file[0m
                                                   [40minto a change[0m
[40maecpu(1)         103                       aegis   copy file undo - reverse[0m
                                                   [40maction of aecp[0m
[40maeclone(1)        95       aegis clone - make an   copy of a change[0m
                                           [40mexact[0m
[40maenbr(1)         165          aegis new branch -   create a new branch[0m
[40maenpr(1)         175         aegis new project -   create a new project[0m
[40maenpa(1)         174   aegis new project alias -   create a new project[0m
                                                   [40malias[0m
[40maenrls(1)        176         aegis new release -   create a new project from[0m
                                                   [40man old-style project.[0m
[40maenf(1)          170    aegis new file - add new   created by a change[0m
                                     [40mfiles to be[0m
[40mae_c(1)           78                          ae   c - set change number[0m
[40mae-cvs-ci(1)      76       ae-cvs-ci - checkin a   CVS[0m
                                   [40mchange set to[0m
[40mae-cvs-ci(1)      76                         ae-   cvs-ci - checkin a change[0m
                                                   [40mset to CVS[0m
[40maecvsserver(1)   105         aecvsserver - serve   CVS client protocol[0m
                                                   [40magainst Aegis projects[0m
[40maexml(1)         203               aexml - Aegis   database to XML[0m
[40maegis(5)         211               aegis - meta-   data file format[0m
[40maer(5)           221   aer - aegis report script   definition[0m
                                        [40mlanguage[0m
[40maermu(1)         195    aegis remove file undo -   deleted from a change[0m
                              [40mremove files to be[0m
[40maerm(1)          193     aegis remove file - add   deleted to a change[0m
                                     [40mfiles to be[0m
[40maedn(1)          125   aegis delta name - assign   delta[0m
                            [40ma symbolic name to a[0m
                                         [40mproject[0m
[40maedn(1)          125                       aegis   delta name - assign a[0m
                                                   [40msymbolic name to a[0m
                                                   [40mproject delta[0m
[40maediff(1)        119   aediff - file differences   deltas[0m
                                         [40mbetween[0m
[40maedb(1)          110                       aegis   develop begin - begin[0m
                                                   [40mdevelopment of a change[0m
[40maedbu(1)         112                       aegis   develop begin undo - undo[0m
                                                   [40mthe effects of aedb[0m
[40maede(1)          116                       aegis   develop end - complete[0m
                                                   [40mdevelopment of a change[0m
[40maedeu(1)         117                       aegis   develop end undo - recall[0m
                                                   [40ma change for further[0m
                                                   [40mdevelopment[0m
[40maend(1)          169                   aegis new   developer - add new[0m
                                                   [40mdevelopers to a project[0m
[40maerd(1)          188                aegis remove   developer - remove[0m
                                                   [40mdevelopers from a project[0m
[40maerd(1)          188    aegis remove developer -   developers from a project[0m
                                          [40mremove[0m
[40maend(1)          169   aegis new developer - add   developers to a project[0m
                                             [40mnew[0m
[40maedeu(1)         117    aegis develop end undo -   development[0m
                             [40mrecall a change for[0m
                                         [40mfurther[0m
[40maeclean(1)        93   aegis clEan - clean files   development directory[0m
                                            [40mfrom[0m
[40maedb(1)          110       aegis develop begin -   development of a change[0m
                                           [40mbegin[0m
[40maede(1)          116         aegis develop end -   development of a change[0m
                                        [40mcomplete[0m
[40mae_diff2htm(1)    79     ae diff2htm - wraps the   diff2html command[0m
[40mae_diff2htm(1)    79                          ae   diff2htm - wraps the[0m
                                                   [40mdiff2html command[0m
[40maed(1)           106                       aegis   difference - find[0m
                                                   [40mdifferences between a[0m
                                                   [40mchange and the baseline[0m
[40maed(1)           106     aegis difference - find   differences between a[0m
                                                   [40mchange and the baseline[0m
[40maediff(1)        119               aediff - file   differences between[0m
                                                   [40mdeltas[0m
[40maecd(1)           89    aegis change directory -   directory[0m
                                          [40mchange[0m
[40maeclean(1)        93   aegis clEan - clean files   directory[0m
                                [40mfrom development[0m
[40maecd(1)           89                aegis change   directory - change[0m
                                                   [40mdirectory[0m
[40maefind(1)        128   aefind - search for files   directory hierarchy[0m
                                              [40min[0m
[40maels(1)          155            aels - annotated   directory listing[0m
[40maedir(5)         209               aedir - aegis   directory structures[0m
[40maedist(1)        120           aedist - remotely   distribute a change[0m
[40maetar(1)         201            aetar - remotely   distribute a change via[0m
                                                   [40mtar[0m
[40maerect(1)                               aerect -   draw a rectangle[0m
[40maesub(1)         198      aesub - substitute and   echo strings[0m
[40maeedit(1)        126                    aeedit -   edit a change's files[0m
[40maedbu(1)         112    aegis develop begin undo   effects of aedb[0m
                                      [40m- undo the[0m
[40maede(1)          116               aegis develop   end - complete[0m
                                                   [40mdevelopment of a change[0m



[40maedeu(1)         117               aegis develop   end undo - recall a[0m
                                                   [40mchange for further[0m
                                                   [40mdevelopment[0m
[40maeclone(1)        95       aegis clone - make an   exact copy of a change[0m
[40maeifail(1)       137      aegis integrate fail -   fail a change integration[0m
[40maerfail(1)       191         aegis review fail -   fail a change review[0m
[40maeifail(1)       137             aegis integrate   fail - fail a change[0m
                                                   [40mintegration[0m
[40maerfail(1)       191                aegis review   fail - fail a change[0m
                                                   [40mreview[0m
[40maecattr(5)       206      aecattr - aegis change   file[0m
                                      [40mattributes[0m
[40maecstate(5)      207     aecstate - aegis change   file[0m
                                           [40mstate[0m
[40maefstate(5)      210       aefstate - aegis file   file[0m
                                           [40mstate[0m
[40maefa(1)          126     aegis file attributes -   file[0m
                        [40mmodify the attributes of[0m
                                               [40ma[0m
[40maegstate(5)      211     aegstate - aegis global   file[0m
                                           [40mstate[0m
[40maepattr(5)       212     aepattr - aegis project   file[0m
                                       [40mattribute[0m
[40maepconf(5)       213     aepconf - aegis project   file[0m
                                   [40mconfiguration[0m
[40maepstate(5)      220    aepstate - aegis project   file[0m
                                           [40mstate[0m
[40maeuconf(5)       226              aeuconf - user   file[0m
                                   [40mconfiguration[0m
[40maeustate(5)      227       aeustate - aegis user   file[0m
                                           [40mstate[0m
[40maeget(1)         132           aeget - Aegis CGI   file access[0m
[40maerm(1)          193                aegis remove   file - add files to be[0m
                                                   [40mdeleted to a change[0m
[40maenf(1)          170                   aegis new   file - add new files to[0m
                                                   [40mbe created by a change[0m
[40maemvu(1)         163      aegis move file undo -   file as part of a change[0m
                               [40mundo the rename a[0m
[40maefattr(5)       210             aefattr - aegis   file attribute file[0m
                                                   [40mformat[0m
[40maefa(1)          126                       aegis   file attributes - modify[0m
                                                   [40mthe attributes of a file[0m
[40maecp(1)           99                  aegis copy   file - copy a file into a[0m
                                                   [40mchange[0m
[40maediff(1)        119                    aediff -   file differences between[0m
                                                   [40mdeltas[0m
[40maefp(1)          132            aefp - calculate   file fingerprint[0m
[40maefattr(5)       210        aefattr - aegis file   file format[0m
                                       [40mattribute[0m
[40maegis(5)         211           aegis - meta-data   file format[0m
[40maemetrics(5)     212         aemetrics - metrics   file format[0m
                                          [40mvalues[0m
[40maerptidx(5)      223     aerptidx - aegis report   file format[0m
                                           [40mindex[0m
[40maetest(5)        226         aetest - aegis test   file format[0m
                                         [40mresults[0m
[40maexver(1)        204          aexver - graphical   file history[0m
[40maecp(1)           99    aegis copy file - copy a   file into a change[0m
[40maeannotate(1)     80      aeannotate - annotated   file listing[0m
                                          [40msource[0m
[40maemakegen(1)     156      aemakegen - generate a   file manifest[0m
                                [40mMakefile.in from[0m
[40maemeasure(1)     157          aemeasure - simple   file metrics[0m
[40maemv(1)          160                  aegis move   file - rename one or more[0m
                                                   [40mfiles as part of a change[0m
[40maeedit(1)        126    aeedit - edit a change's   files[0m
[40maelcf(1)         148         aelcf - list change   files[0m
[40maelpf(1)         154        aelpf - list project   files[0m
[40maemv(1)          160    aegis move file - rename   files as part of a change[0m
                                     [40mone or more[0m
[40maenfu(1)         172       aegis new file undo -   files from a change[0m
                                      [40mremove new[0m
[40maeclean(1)        93         aegis clEan - clean   files from development[0m
                                                   [40mdirectory[0m
[40maefind(1)        128         aefind - search for   files in directory[0m
                                                   [40mhierarchy[0m
[40maefstate(5)      210            aefstate - aegis   file state file[0m
[40maenf(1)          170    aegis new file - add new   files to be created by a[0m
                                                   [40mchange[0m
[40maermu(1)         195    aegis remove file undo -   files to be deleted from[0m
                                          [40mremove   a change[0m
[40maerm(1)          193     aegis remove file - add   files to be deleted to a[0m
                                                   [40mchange[0m
[40maemt(1)          158    aegis make transparent -   file transparent[0m
                                     [40mmake branch[0m
[40maemtu(1)         159      aegis make transparent   file transparent[0m
                           [40mundo - no longer make[0m
                                          [40mbranch[0m
[40maermu(1)         195                aegis remove   file undo - remove files[0m
                                                   [40mto be deleted from a[0m
                                                   [40mchange[0m
[40maenfu(1)         172                   aegis new   file undo - remove new[0m
                                                   [40mfiles from a change[0m
[40maecpu(1)         103                  aegis copy   file undo - reverse[0m
                                                   [40maction of aecp[0m
[40maemvu(1)         163                  aegis move   file undo - undo the[0m
                                                   [40mrename a file as part of[0m
                                                   [40ma change[0m
[40maed(1)           106          aegis difference -   find differences between[0m
                                                   [40ma change and the baseline[0m
[40maefp(1)          132       aefp - calculate file   fingerprint[0m
[40maefinish(1)      131                  aefinish -   finish a change[0m
[40mtkaeca(1)        206      tkaeca - GUI interface   for aeca, using TCL/TK[0m
[40mtkaepa(1)                 tkaepa - GUI interface   for aeca, using TCL/TK[0m
[40maede-policy(1)   114         aede-policy - check   for aede[0m
                             [40mchange set is ready[0m
[40mtkaegis(1)       204     tkaegis - GUI interface   for Aegis, using TCL/TK[0m
[40mtkaenc(1)        205      tkaenc - GUI interface   for aenc, using TCL/TK[0m
[40maebuffy(1)        86             aebuffy - watch   for changes[0m
[40maeimport(1)      138           aeimport - import   foreign repository into[0m
                                                   [40mAegis[0m
[40maefind(1)        128             aefind - search   for files in directory[0m
                                                   [40mhierarchy[0m
[40maedeu(1)         117    aegis develop end undo -   for further development[0m
                                 [40mrecall a change[0m
[40maefattr(5)       210        aefattr - aegis file   format[0m
                                  [40mattribute file[0m
[40maegis(5)         211      aegis - meta-data file   format[0m
[40maemetrics(5)     212         aemetrics - metrics   format[0m
                                     [40mvalues file[0m
[40maerptidx(5)      223     aerptidx - aegis report   format[0m
                                      [40mindex file[0m
[40maetest(5)        226         aetest - aegis test   format[0m
                                    [40mresults file[0m
[40mtkaer(1)         206            tkaer - GUI tool   for reviewing Aegis[0m
                                                   [40mchange sets, using TCL/TK[0m
[40maenfu(1)         172       aegis new file undo -   from a change[0m
                                [40mremove new files[0m
[40maentu(1)         181       aegis new test undo -   from a change[0m
                                [40mremove new tests[0m
[40maermu(1)         195    aegis remove file undo -   from a change[0m
                              [40mremove files to be[0m
                                         [40mdeleted[0m
[40maenrls(1)        176         aegis new release -   from an old-style[0m
                            [40mcreate a new project   project.[0m
[40maencu(1)         168     aegis new change undo -   from a project[0m
                             [40mremove a new change[0m
[40maera(1)          186                aegis remove   from a project[0m
                          [40madministrator - remove[0m
                                  [40madministrators[0m
[40maerd(1)          188    aegis remove developer -   from a project[0m
                               [40mremove developers[0m
[40maeri(1)          192   aegis remove integrator -   from a project[0m
                              [40mremove integrators[0m
[40maerrv(1)         198     aegis remove reviewer -   from a project[0m
                                [40mremove reviewers[0m
[40maeclean(1)        93   aegis clEan - clean files   from development[0m
                                                   [40mdirectory[0m
[40maemakegen(1)     156      aemakegen - generate a   from file manifest[0m
                                     [40mMakefile.in[0m
[40maedeu(1)         117    aegis develop end undo -   further development[0m
                             [40mrecall a change for[0m


[40maemakegen(1)     156                 aemakegen -   generate a Makefile.in[0m
                                                   [40mfrom file manifest[0m
[40maer(1)           185       aegis report - report   generator[0m
[40maev(1)           203             aegis version -   give version information[0m
[40maegstate(5)      211            aegstate - aegis   global state file[0m
[40maexver(1)        204                    aexver -   graphical file history[0m
[40mtkaeca(1)        206                    tkaeca -   GUI interface for aeca,[0m
                                                   [40musing TCL/TK[0m
[40mtkaepa(1)                               tkaepa -   GUI interface for aeca,[0m
                                                   [40musing TCL/TK[0m
[40mtkaegis(1)       204                   tkaegis -   GUI interface for Aegis,[0m
                                                   [40musing TCL/TK[0m
[40mtkaenc(1)        205                    tkaenc -   GUI interface for aenc,[0m
                                                   [40musing TCL/TK[0m
[40mtkaer(1)         206                     tkaer -   GUI tool for reviewing[0m
                                                   [40mAegis change sets, using[0m
                                                   [40mTCL/TK[0m
[40maefind(1)        128   aefind - search for files   hierarchy[0m
                                    [40min directory[0m
[40maexver(1)        204     aexver - graphical file   history[0m
[40maelock(5)        212               aegis locks -   how locking works, and[0m
                                                   [40mwhich commands use them[0m
[40mae_diff2htm(1)    79     ae diff2htm - wraps the   html command[0m
                                           [40mdiff2[0m
[40mae_diff2htm(1)    79                    ae diff2   htm - wraps the diff2html[0m
                                                   [40mcommand[0m
[40maeimport(1)      138                  aeimport -   import foreign repository[0m
                                                   [40minto Aegis[0m
[40maerptidx(5)      223     aerptidx - aegis report   index file format[0m
[40maefind(1)        128   aefind - search for files   in directory hierarchy[0m
[40maev(1)           203        aegis version - give   information[0m
                                         [40mversion[0m
[40maemakegen(1)     156      aemakegen - generate a   in from file manifest[0m
                                       [40mMakefile.[0m
[40maeib(1)          134                       aegis   integrate begin - begin[0m
                                                   [40mintegrating a change[0m
[40maeibu(1)         136                       aegis   integrate begin undo -[0m
                                                   [40mreverse the aeib command[0m
[40maeintegratq(1)   141               aeintegratq -   integrate changes into[0m
                                                   [40mprojects[0m
[40maeifail(1)       137                       aegis   integrate fail - fail a[0m
                                                   [40mchange integration[0m
[40maeipass(1)       143                       aegis   integrate pass - pass a[0m
                                                   [40mchange integration[0m
[40maeib(1)          134     aegis integrate begin -   integrating a change[0m
                                           [40mbegin[0m
[40maeifail(1)       137      aegis integrate fail -   integration[0m
                                   [40mfail a change[0m
[40maeipass(1)       143      aegis integrate pass -   integration[0m
                                   [40mpass a change[0m
[40maeni(1)          173                   aegis new   integrator - add new[0m
                                                   [40mintegrators to a project[0m
[40maeri(1)          192                aegis remove   integrator - remove[0m
                                                   [40mintegrators from a[0m
                                                   [40mproject[0m
[40maeri(1)          192   aegis remove integrator -   integrators from a[0m
                                          [40mremove   project[0m
[40maeni(1)          173      aegis new integrator -   integrators to a project[0m
                                         [40madd new[0m
[40mael(1)           146           aegis list - list   interesting things[0m
                                      [40m(possibly)[0m
[40mtkaeca(1)        206                tkaeca - GUI   interface for aeca, using[0m
                                                   [40mTCL/TK[0m
[40mtkaepa(1)                           tkaepa - GUI   interface for aeca, using[0m
                                                   [40mTCL/TK[0m
[40mtkaegis(1)       204               tkaegis - GUI   interface for Aegis,[0m
                                                   [40musing TCL/TK[0m
[40mtkaenc(1)        205                tkaenc - GUI   interface for aenc, using[0m
                                                   [40mTCL/TK[0m
[40maegis.cgi(1)     133       aegis.cgi - Aegis web   interface script[0m
[40maecp(1)           99    aegis copy file - copy a   into a change[0m
                                            [40mfile[0m
[40maeimport(1)      138   aeimport - import foreign   into Aegis[0m
                                      [40mrepository[0m
[40maeintegratq(1)   141     aeintegratq - integrate   into projects[0m
                                         [40mchanges[0m
[40maede-policy(1)   114         aede-policy - check   is ready for aede[0m
                                      [40mchange set[0m
[40maer(5)           221   aer - aegis report script   language definition[0m
[40maelcf(1)         148                     aelcf -   list change files[0m
[40maeannotate(1)     80      aeannotate - annotated   listing[0m
                                     [40msource file[0m
[40maels(1)          155            aels - annotated   listing[0m
                                       [40mdirectory[0m
[40mael(1)           146                       aegis   list - list (possibly)[0m
                                                   [40minteresting things[0m
[40mael(1)           146                aegis list -   list (possibly)[0m
                                                   [40minteresting things[0m
[40maelpf(1)         154                     aelpf -   list project files[0m
[40maelock(5)        212           aegis locks - how   locking works, and which[0m
                                                   [40mcommands use them[0m
[40maelock(5)        212                       aegis   locks - how locking[0m
                                                   [40mworks, and which commands[0m
                                                   [40muse them[0m
[40maelock(1)        154             aelock - take a   lock while a command runs[0m
[40maemtu(1)         159      aegis make transparent   longer make branch file[0m
                                       [40mundo - no   transparent[0m
[40maeclone(1)        95               aegis clone -   make an exact copy of a[0m
                                                   [40mchange[0m
[40maemt(1)          158    aegis make transparent -   make branch file[0m
                                                   [40mtransparent[0m
[40maemtu(1)         159      aegis make transparent   make branch file[0m
                                [40mundo - no longer   transparent[0m
[40maemakegen(1)     156      aemakegen - generate a   Makefile.in from file[0m
                                                   [40mmanifest[0m
[40maemt(1)          158                       aegis   make transparent - make[0m
                                                   [40mbranch file transparent[0m
[40maemtu(1)         159                       aegis   make transparent undo -[0m
                                                   [40mno longer make branch[0m
                                                   [40mfile transparent[0m
[40maemakegen(1)     156      aemakegen - generate a   manifest[0m
                           [40mMakefile.in from file[0m
[40maegis(5)         211                     aegis -   meta-data file format[0m
[40maemeasure(1)     157     aemeasure - simple file   metrics[0m
[40maemetrics(5)     212                 aemetrics -   metrics values file[0m
                                                   [40mformat[0m
[40maeca(1)           87   aegis change attributes -   modify the attributes of[0m
                                                   [40ma change[0m
[40maefa(1)          126     aegis file attributes -   modify the attributes of[0m
                                                   [40ma file[0m
[40maepa(1)          182    aegis project attributes   modify the attributes of[0m
                                               [40m-   a project[0m
[40maemv(1)          160    aegis move file - rename   more files as part of a[0m
                                          [40mone or   change[0m
[40maemv(1)          160                       aegis   move file - rename one or[0m
                                                   [40mmore files as part of a[0m
                                                   [40mchange[0m
[40maemvu(1)         163                       aegis   move file undo - undo the[0m
                                                   [40mrename a file as part of[0m
                                                   [40ma change[0m
[40mae_p(1)           79          ae p - set project   name[0m
[40maedn(1)          125                 aegis delta   name - assign a symbolic[0m
                                                   [40mname to a project delta[0m
[40maedn(1)          125   aegis delta name - assign   name to a project delta[0m
                                      [40ma symbolic[0m
[40maena(1)          165                       aegis   new administrator - add a[0m
                                                   [40mnew administrator to a[0m
                                                   [40mproject[0m
[40maena(1)          165   aegis new administrator -   new administrator to a[0m
                                           [40madd a   project[0m
[40maenbr(1)         165   aegis new branch - create   new branch[0m
                                               [40ma[0m
[40maenbr(1)         165                       aegis   new branch - create a new[0m
                                                   [40mbranch[0m
[40maenbru(1)        166                       aegis   new branch undo - remove[0m
                                                   [40ma branch[0m
[40maenc(1)          167                       aegis   new change - add a new[0m
                                                   [40mchange to a project[0m
[40maencu(1)         168     aegis new change undo -   new change from a project[0m
                                        [40mremove a[0m
[40maenc(1)          167    aegis new change - add a   new change to a project[0m



[40maencu(1)         168                       aegis   new change undo - remove[0m
                                                   [40ma new change from a[0m
                                                   [40mproject[0m
[40maend(1)          169                       aegis   new developer - add new[0m
                                                   [40mdevelopers to a project[0m
[40maend(1)          169   aegis new developer - add   new developers to a[0m
                                                   [40mproject[0m
[40maenf(1)          170                       aegis   new file - add new files[0m
                                                   [40mto be created by a change[0m
[40maenfu(1)         172       aegis new file undo -   new files from a change[0m
                                          [40mremove[0m
[40maenf(1)          170        aegis new file - add   new files to be created[0m
                                                   [40mby a change[0m
[40maenfu(1)         172                       aegis   new file undo - remove[0m
                                                   [40mnew files from a change[0m
[40maeni(1)          173                       aegis   new integrator - add new[0m
                                                   [40mintegrators to a project[0m
[40maeni(1)          173      aegis new integrator -   new integrators to a[0m
                                             [40madd   project[0m
[40maenpr(1)         175         aegis new project -   new project[0m
                                        [40mcreate a[0m
[40maenpa(1)         174   aegis new project alias -   new project alias[0m
                                        [40mcreate a[0m
[40maenpa(1)         174                       aegis   new project alias -[0m
                                                   [40mcreate a new project[0m
                                                   [40malias[0m
[40maenpr(1)         175                       aegis   new project - create a[0m
                                                   [40mnew project[0m
[40maenrls(1)        176         aegis new release -   new project from an old-[0m
                                        [40mcreate a   style project.[0m
[40maenrls(1)        176                       aegis   new release - create a[0m
                                                   [40mnew project from an old-[0m
                                                   [40mstyle project.[0m
[40maenrv(1)         178                       aegis   new reviewer - add new[0m
                                                   [40mreviewers to a project[0m
[40maenrv(1)         178    aegis new reviewer - add   new reviewers to a[0m
                                                   [40mproject[0m
[40maent(1)          178                       aegis   new test - add a new test[0m
                                                   [40mto a change[0m
[40maentu(1)         181       aegis new test undo -   new tests from a change[0m
                                          [40mremove[0m
[40maent(1)          178      aegis new test - add a   new test to a change[0m
[40maentu(1)         181                       aegis   new test undo - remove[0m
                                                   [40mnew tests from a change[0m
[40maemtu(1)         159      aegis make transparent   no longer make branch[0m
                                          [40mundo -   file transparent[0m
[40mae_c(1)           78           ae c - set change   number[0m
[40maenrls(1)        176         aegis new release -   old-style project.[0m
                       [40mcreate a new project from[0m
                                              [40man[0m
[40maemv(1)          160    aegis move file - rename   one or more files as part[0m
                                                   [40mof a change[0m
[40maemv(1)          160    aegis move file - rename   or more files as part of[0m
                                             [40mone   a change[0m
[40maechown(1)        91    aegis change owner - set   owner[0m
                                          [40mchange[0m
[40maechown(1)        91                aegis change   owner - set change owner[0m
[40maemv(1)          160    aegis move file - rename   part of a change[0m
                            [40mone or more files as[0m
[40maemvu(1)         163      aegis move file undo -   part of a change[0m
                       [40mundo the rename a file as[0m
[40maerpu(1)         197    aegis review pass undo -   pass[0m
                         [40mrescind a change review[0m
[40maeipass(1)       143      aegis integrate pass -   pass a change integration[0m
[40maerpass(1)       196         aegis review pass -   pass a change review[0m
[40maeipass(1)       143             aegis integrate   pass - pass a change[0m
                                                   [40mintegration[0m
[40maerpass(1)       196                aegis review   pass - pass a change[0m
                                                   [40mreview[0m
[40maerpu(1)         197                aegis review   pass undo - rescind a[0m
                                                   [40mchange review pass[0m
[40maepatch(1)       183          aepatch - send and   patches[0m
                              [40mreceive changes as[0m
[40maede-policy(1)   114                       aede-   policy - check change set[0m
                                                   [40mis ready for aede[0m
[40mael(1)           146         aegis list - list (   possibly) interesting[0m
                                                   [40mthings[0m
[40maena(1)          165   aegis new administrator -   project[0m
                         [40madd a new administrator[0m
                                            [40mto a[0m
[40maenc(1)          167    aegis new change - add a   project[0m
                                 [40mnew change to a[0m
[40maencu(1)         168     aegis new change undo -   project[0m
                        [40mremove a new change from[0m
                                               [40ma[0m
[40maend(1)          169   aegis new developer - add   project[0m
                             [40mnew developers to a[0m
[40maeni(1)          173      aegis new integrator -   project[0m
                        [40madd new integrators to a[0m
[40maenpr(1)         175         aegis new project -   project[0m
                                    [40mcreate a new[0m
[40maenrls(1)        176         aegis new release -   project.[0m
                       [40mcreate a new project from[0m
                                    [40man old-style[0m
[40maenrv(1)         178    aegis new reviewer - add   project[0m
                              [40mnew reviewers to a[0m
[40maepa(1)          182    aegis project attributes   project[0m
                         [40m- modify the attributes[0m
                                            [40mof a[0m
[40maera(1)          186                aegis remove   project[0m
                          [40madministrator - remove[0m
                           [40madministrators from a[0m
[40maerd(1)          188    aegis remove developer -   project[0m
                        [40mremove developers from a[0m
[40maeri(1)          192   aegis remove integrator -   project[0m
                       [40mremove integrators from a[0m
[40maermpr(1)        194      aegis remove project -   project[0m
                                          [40mremove[0m
[40maerrv(1)         198     aegis remove reviewer -   project[0m
                         [40mremove reviewers from a[0m
[40maenpa(1)         174   aegis new project alias -   project alias[0m
                                    [40mcreate a new[0m
[40maerpa(1)         195        aegis remove project   project alias[0m
                                [40malias - remove a[0m
[40maenpa(1)         174                   aegis new   project alias - create a[0m
                                                   [40mnew project alias[0m
[40maerpa(1)         195                aegis remove   project alias - remove a[0m
                                                   [40mproject alias[0m
[40maepattr(5)       212             aepattr - aegis   project attribute file[0m
[40maepa(1)          182                       aegis   project attributes -[0m
                                                   [40mmodify the attributes of[0m
                                                   [40ma project[0m
[40maegis(1)          70                     aegis -   project change supervisor[0m
[40maepconf(5)       213             aepconf - aegis   project configuration[0m
                                                   [40mfile[0m
[40maenpr(1)         175                   aegis new   project - create a new[0m
                                                   [40mproject[0m
[40maedn(1)          125   aegis delta name - assign   project delta[0m
                            [40ma symbolic name to a[0m
[40maelpf(1)         154                aelpf - list   project files[0m
[40maenrls(1)        176         aegis new release -   project from an old-style[0m
                                    [40mcreate a new   project.[0m
[40mae_p(1)           79                  ae p - set   project name[0m
[40maermpr(1)        194                aegis remove   project - remove project[0m
[40maecvsserver(1)   105     aecvsserver - serve CVS   projects[0m
                         [40mclient protocol against[0m
                                           [40mAegis[0m
[40maeintegratq(1)   141     aeintegratq - integrate   projects[0m
                                    [40mchanges into[0m
[40maepstate(5)      220            aepstate - aegis   project state file[0m
[40maepromptcmd(1)   185        aepromptcmd - change   prompt color by change[0m
                                                   [40mstate[0m
[40maecvsserver(1)   105     aecvsserver - serve CVS   protocol against Aegis[0m
                                          [40mclient   projects[0m
[40mae_p(1)           79                          ae   p - set project name[0m
[40mae-sccs-put(1)    78                    ae-sccs-   put - put sccs version[0m
[40mae-sccs-put(1)    78               ae-sccs-put -   put sccs version[0m
[40maede-policy(1)   114         aede-policy - check   ready for aede[0m
                                   [40mchange set is[0m
[40maedeu(1)         117    aegis develop end undo -   recall a change for[0m
                                                   [40mfurther development[0m
[40maepatch(1)       183          aepatch - send and   receive changes as[0m
                                                   [40mpatches[0m

[40maerevml(1)       189          aerevml - send and   receive RevML change sets[0m
[40maerect(1)                        aerect - draw a   rectangle[0m
[40mae-repo-ci(1)     76                ae-repo-ci -   redundant repository[0m
                                                   [40mcheckin[0m
[40maenrls(1)        176                   aegis new   release - create a new[0m
                                                   [40mproject from an old-style[0m
                                                   [40mproject.[0m
[40maedist(1)        120                    aedist -   remotely distribute a[0m
                                                   [40mchange[0m
[40maetar(1)         201                     aetar -   remotely distribute a[0m
                                                   [40mchange via tar[0m
[40maenbru(1)        166     aegis new branch undo -   remove a branch[0m
[40maera(1)          186                       aegis   remove administrator -[0m
                                                   [40mremove administrators[0m
                                                   [40mfrom a project[0m
[40maera(1)          186                aegis remove   remove administrators[0m
                                 [40madministrator -   from a project[0m
[40maencu(1)         168     aegis new change undo -   remove a new change from[0m
                                                   [40ma project[0m
[40maerpa(1)         195        aegis remove project   remove a project alias[0m
                                         [40malias -[0m
[40maerd(1)          188                       aegis   remove developer - remove[0m
                                                   [40mdevelopers from a project[0m
[40maerd(1)          188    aegis remove developer -   remove developers from a[0m
                                                   [40mproject[0m
[40maerm(1)          193                       aegis   remove file - add files[0m
                                                   [40mto be deleted to a change[0m
[40maermu(1)         195    aegis remove file undo -   remove files to be[0m
                                                   [40mdeleted from a change[0m
[40maermu(1)         195                       aegis   remove file undo - remove[0m
                                                   [40mfiles to be deleted from[0m
                                                   [40ma change[0m
[40maeri(1)          192                       aegis   remove integrator -[0m
                                                   [40mremove integrators from a[0m
                                                   [40mproject[0m
[40maeri(1)          192   aegis remove integrator -   remove integrators from a[0m
                                                   [40mproject[0m
[40maenfu(1)         172       aegis new file undo -   remove new files from a[0m
                                                   [40mchange[0m
[40maentu(1)         181       aegis new test undo -   remove new tests from a[0m
                                                   [40mchange[0m
[40maermpr(1)        194      aegis remove project -   remove project[0m
[40maerpa(1)         195                       aegis   remove project alias -[0m
                                                   [40mremove a project alias[0m
[40maermpr(1)        194                       aegis   remove project - remove[0m
                                                   [40mproject[0m
[40maerrv(1)         198                       aegis   remove reviewer - remove[0m
                                                   [40mreviewers from a project[0m
[40maerrv(1)         198     aegis remove reviewer -   remove reviewers from a[0m
                                                   [40mproject[0m
[40maemvu(1)         163      aegis move file undo -   rename a file as part of[0m
                                        [40mundo the   a change[0m
[40maemv(1)          160           aegis move file -   rename one or more files[0m
                                                   [40mas part of a change[0m
[40mae-repo-ci(1)     76                         ae-   repo-ci - redundant[0m
                                                   [40mrepository checkin[0m
[40maer(1)           185              aegis report -   report generator[0m
[40maerptidx(5)      223            aerptidx - aegis   report index file format[0m
[40maer(1)           185                       aegis   report - report generator[0m
[40maer(5)           221                 aer - aegis   report script language[0m
                                                   [40mdefinition[0m
[40mae-repo-ci(1)     76      ae-repo-ci - redundant   repository checkin[0m
[40maeimport(1)      138   aeimport - import foreign   repository into Aegis[0m
[40maerpu(1)         197    aegis review pass undo -   rescind a change review[0m
                                                   [40mpass[0m
[40maetest(5)        226         aetest - aegis test   results file format[0m
[40maecpu(1)         103      aegis copy file undo -   reverse action of aecp[0m
[40maeibu(1)         136       aegis integrate begin   reverse the aeib command[0m
                                          [40mundo -[0m
[40maerb(1)          187        aegis review begin -   review[0m
                                  [40mbegin a change[0m
[40maerfail(1)       191    aegis review fail - fail   review[0m
                                        [40ma change[0m
[40maerpass(1)       196    aegis review pass - pass   review[0m
                                        [40ma change[0m
[40maerb(1)          187                       aegis   review begin - begin a[0m
                                                   [40mchange review[0m
[40maerbu(1)         188                       aegis   review begin undo - stop[0m
                                                   [40mreviewing a change[0m
[40maenrv(1)         178                   aegis new   reviewer - add new[0m
                                                   [40mreviewers to a project[0m
[40maerrv(1)         198                aegis remove   reviewer - remove[0m
                                                   [40mreviewers from a project[0m
[40maerrv(1)         198     aegis remove reviewer -   reviewers from a project[0m
                                          [40mremove[0m
[40maenrv(1)         178    aegis new reviewer - add   reviewers to a project[0m
                                             [40mnew[0m
[40maerfail(1)       191                       aegis   review fail - fail a[0m
                                                   [40mchange review[0m
[40maerbu(1)         188   aegis review begin undo -   reviewing a change[0m
                                            [40mstop[0m
[40mtkaer(1)         206        tkaer - GUI tool for   reviewing Aegis change[0m
                                                   [40msets, using TCL/TK[0m
[40maerpu(1)         197    aegis review pass undo -   review pass[0m
                                [40mrescind a change[0m
[40maerpass(1)       196                       aegis   review pass - pass a[0m
                                                   [40mchange review[0m
[40maerpu(1)         197                       aegis   review pass undo -[0m
                                                   [40mrescind a change review[0m
                                                   [40mpass[0m
[40maerevml(1)       189          aerevml - send and   RevML change sets[0m
                                         [40mreceive[0m
[40maelock(1)        154        aelock - take a lock   runs[0m
                                 [40mwhile a command[0m
[40maesubunit(1)     198                 aesubunit -   run SubUnit tests[0m
[40maet(1)           200                aegis test -   run tests[0m
[40mae-sccs-put(1)    78                         ae-   sccs-put - put sccs[0m
                                                   [40mversion[0m
[40mae-sccs-put(1)    78           ae-sccs-put - put   sccs version[0m
[40maegis.cgi(1)     133       aegis.cgi - Aegis web   script[0m
                                       [40minterface[0m
[40maer(5)           221          aer - aegis report   script language[0m
                                                   [40mdefinition[0m
[40maefind(1)        128                    aefind -   search for files in[0m
                                                   [40mdirectory hierarchy[0m
[40maepatch(1)       183                   aepatch -   send and receive changes[0m
                                                   [40mas patches[0m
[40maerevml(1)       189                   aerevml -   send and receive RevML[0m
                                                   [40mchange sets[0m
[40maecvsserver(1)   105               aecvsserver -   serve CVS client protocol[0m
                                                   [40magainst Aegis projects[0m
[40mae_c(1)           78                      ae c -   set change number[0m
[40maechown(1)        91        aegis change owner -   set change owner[0m
[40maede-policy(1)   114         aede-policy - check   set is ready for aede[0m
                                          [40mchange[0m
[40mae_p(1)           79                      ae p -   set project name[0m
[40maerevml(1)       189          aerevml - send and   sets[0m
                            [40mreceive RevML change[0m
[40mtkaer(1)         206        tkaer - GUI tool for   sets, using TCL/TK[0m
                          [40mreviewing Aegis change[0m
[40mae-cvs-ci(1)      76       ae-cvs-ci - checkin a   set to CVS[0m
                                          [40mchange[0m
[40maeedit(1)        126     aeedit - edit a change'   s files[0m
[40maemeasure(1)     157                 aemeasure -   simple file metrics[0m
[40maesvt(1)         199                     aesvt -   simple version tool[0m
[40maeannotate(1)     80      aeannotate - annotated   source file listing[0m
[40maepromptcmd(1)   185        aepromptcmd - change   state[0m
                          [40mprompt color by change[0m
[40maecstate(5)      207     aecstate - aegis change   state file[0m
[40maefstate(5)      210       aefstate - aegis file   state file[0m
[40maegstate(5)      211     aegstate - aegis global   state file[0m
[40maepstate(5)      220    aepstate - aegis project   state file[0m
[40maeustate(5)      227       aeustate - aegis user   state file[0m
[40maerbu(1)         188   aegis review begin undo -   stop reviewing a change[0m
[40maesub(1)         198      aesub - substitute and   strings[0m
                                            [40mecho[0m
[40maedir(5)         209     aedir - aegis directory   structures[0m
[40maenrls(1)        176         aegis new release -   style project.[0m
                       [40mcreate a new project from[0m
                                         [40man old-[0m
[40maesub(1)         198                     aesub -   substitute and echo[0m
                                                   [40mstrings[0m
[40maesub(5)         224       aesub - aegis command   substitutions[0m

[40maesubunit(1)     198             aesubunit - run   SubUnit tests[0m
[40maegis(1)          70      aegis - project change   supervisor[0m
[40maedn(1)          125   aegis delta name - assign   symbolic name to a[0m
                                               [40ma   project delta[0m
[40maelock(1)        154                    aelock -   take a lock while a[0m
                                                   [40mcommand runs[0m
[40maetar(1)         201            aetar - remotely   tar[0m
                         [40mdistribute a change via[0m
[40mtkaeca(1)        206      tkaeca - GUI interface   TCL/TK[0m
                                 [40mfor aeca, using[0m
[40mtkaegis(1)       204     tkaegis - GUI interface   TCL/TK[0m
                                [40mfor Aegis, using[0m
[40mtkaenc(1)        205      tkaenc - GUI interface   TCL/TK[0m
                                 [40mfor aenc, using[0m
[40mtkaepa(1)                 tkaepa - GUI interface   TCL/TK[0m
                                 [40mfor aeca, using[0m
[40mtkaer(1)         206        tkaer - GUI tool for   TCL/TK[0m
                          [40mreviewing Aegis change[0m
                                     [40msets, using[0m
[40maent(1)          178                   aegis new   test - add a new test to[0m
                                                   [40ma change[0m
[40maetest(5)        226              aetest - aegis   test results file format[0m
[40maet(1)           200                       aegis   test - run tests[0m
[40maet(1)           200            aegis test - run   tests[0m
[40maesubunit(1)     198     aesubunit - run SubUnit   tests[0m
[40maentu(1)         181       aegis new test undo -   tests from a change[0m
                                      [40mremove new[0m
[40maent(1)          178      aegis new test - add a   test to a change[0m
                                             [40mnew[0m
[40maentu(1)         181                   aegis new   test undo - remove new[0m
                                                   [40mtests from a change[0m
[40maelock(5)        212   aegis locks - how locking   them[0m
                       [40mworks, and which commands[0m
                                             [40muse[0m
[40mael(1)           146           aegis list - list   things[0m
                          [40m(possibly) interesting[0m
[40mtkaeca(1)        206      tkaeca - GUI interface   TK[0m
                            [40mfor aeca, using TCL/[0m
[40mtkaegis(1)       204     tkaegis - GUI interface   TK[0m
                           [40mfor Aegis, using TCL/[0m
[40mtkaenc(1)        205      tkaenc - GUI interface   TK[0m
                            [40mfor aenc, using TCL/[0m
[40mtkaepa(1)                 tkaepa - GUI interface   TK[0m
                            [40mfor aeca, using TCL/[0m
[40mtkaer(1)         206        tkaer - GUI tool for   TK[0m
                          [40mreviewing Aegis change[0m
                                [40msets, using TCL/[0m
[40mtkaeca(1)        206                               tkaeca - GUI interface[0m
                                                   [40mfor aeca, using TCL/TK[0m
[40mtkaegis(1)       204                               tkaegis - GUI interface[0m
                                                   [40mfor Aegis, using TCL/TK[0m
[40mtkaenc(1)        205                               tkaenc - GUI interface[0m
                                                   [40mfor aenc, using TCL/TK[0m
[40mtkaepa(1)                                          tkaepa - GUI interface[0m
                                                   [40mfor aeca, using TCL/TK[0m
[40mtkaer(1)         206                               tkaer - GUI tool for[0m
                                                   [40mreviewing Aegis change[0m
                                                   [40msets, using TCL/TK[0m
[40maesvt(1)         199      aesvt - simple version   tool[0m
[40mtkaer(1)         206                 tkaer - GUI   tool for reviewing Aegis[0m
                                                   [40mchange sets, using TCL/TK[0m
[40maemt(1)          158    aegis make transparent -   transparent[0m
                                [40mmake branch file[0m
[40maemtu(1)         159      aegis make transparent   transparent[0m
                           [40mundo - no longer make[0m
                                     [40mbranch file[0m
[40maemt(1)          158                  aegis make   transparent - make branch[0m
                                                   [40mfile transparent[0m
[40maemtu(1)         159                  aegis make   transparent undo - no[0m
                                                   [40mlonger make branch file[0m
                                                   [40mtransparent[0m
[40maecomp(1)         98            aecomp - compare   two changes[0m
[40maemtu(1)         159      aegis make transparent   undo - no longer make[0m
                                                   [40mbranch file transparent[0m
[40maedeu(1)         117           aegis develop end   undo - recall a change[0m
                                                   [40mfor further development[0m
[40maenbru(1)        166            aegis new branch   undo - remove a branch[0m
[40maencu(1)         168            aegis new change   undo - remove a new[0m
                                                   [40mchange from a project[0m
[40maermu(1)         195           aegis remove file   undo - remove files to be[0m
                                                   [40mdeleted from a change[0m
[40maenfu(1)         172              aegis new file   undo - remove new files[0m
                                                   [40mfrom a change[0m
[40maentu(1)         181              aegis new test   undo - remove new tests[0m
                                                   [40mfrom a change[0m
[40maerpu(1)         197           aegis review pass   undo - rescind a change[0m
                                                   [40mreview pass[0m
[40maecpu(1)         103             aegis copy file   undo - reverse action of[0m
                                                   [40maecp[0m
[40maeibu(1)         136       aegis integrate begin   undo - reverse the aeib[0m
                                                   [40mcommand[0m
[40maerbu(1)         188          aegis review begin   undo - stop reviewing a[0m
                                                   [40mchange[0m
[40maedbu(1)         112    aegis develop begin undo   undo the effects of aedb[0m
                                               [40m-[0m
[40maemvu(1)         163      aegis move file undo -   undo the rename a file as[0m
                                                   [40mpart of a change[0m
[40maedbu(1)         112         aegis develop begin   undo - undo the effects[0m
                                                   [40mof aedb[0m
[40maemvu(1)         163             aegis move file   undo - undo the rename a[0m
                                                   [40mfile as part of a change[0m
[40maeuconf(5)       226                   aeuconf -   user configuration file[0m
[40maeustate(5)      227            aeustate - aegis   user state file[0m
[40maelock(5)        212   aegis locks - how locking   use them[0m
                       [40mworks, and which commands[0m
[40mtkaeca(1)        206      tkaeca - GUI interface   using TCL/TK[0m
                                       [40mfor aeca,[0m
[40mtkaegis(1)       204     tkaegis - GUI interface   using TCL/TK[0m
                                      [40mfor Aegis,[0m
[40mtkaenc(1)        205      tkaenc - GUI interface   using TCL/TK[0m
                                       [40mfor aenc,[0m
[40mtkaepa(1)                 tkaepa - GUI interface   using TCL/TK[0m
                                       [40mfor aeca,[0m
[40mtkaer(1)         206        tkaer - GUI tool for   using TCL/TK[0m
                          [40mreviewing Aegis change[0m
                                           [40msets,[0m
[40maemetrics(5)     212         aemetrics - metrics   values file format[0m
[40mae-sccs-put(1)    78      ae-sccs-put - put sccs   version[0m
[40maev(1)           203                       aegis   version - give version[0m
                                                   [40minformation[0m
[40maev(1)           203        aegis version - give   version information[0m
[40maesvt(1)         199              aesvt - simple   version tool[0m
[40maetar(1)         201            aetar - remotely   via tar[0m
                             [40mdistribute a change[0m
[40maebuffy(1)        86                   aebuffy -   watch for changes[0m
[40maegis.cgi(1)     133           aegis.cgi - Aegis   web interface script[0m
[40maelock(5)        212   aegis locks - how locking   which commands use them[0m
                                      [40mworks, and[0m
[40maelock(1)        154        aelock - take a lock   while a command runs[0m
[40maelock(5)        212   aegis locks - how locking   works, and which commands[0m
                                                   [40muse them[0m
[40mae_diff2htm(1)    79               ae diff2htm -   wraps the diff2html[0m
                                                   [40mcommand[0m
[40maexml(1)         203   aexml - Aegis database to   XML[0m



Reference Manual                     Aegis                             -cmxcvi
