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

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



Reference Manual                     Aegis                      Read Me(Aegis)
