Change Log(Aegis)                                            Change Log(Aegis)



RREELLEEAASSEE NNOOTTEESS
   VVeerrssiioonn 44..1166 ((1144--JJaann--22000044))
        * There is a new _a_e_c_p _-_k_e_e_p option, causing _a_e_c_p(1) nnoott to overwrite
        file contents in the development directory.

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

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

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

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

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

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

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

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

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

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

        * The problem with test 134 failing has been fixed.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        * The Russian message translation has been updated.

        * The German message translation has been updated.

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

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

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

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

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

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

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

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

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

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

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

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

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

        * A partial Romainian translation has been added.

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

        * The French localization has been improved.

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

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

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

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

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

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

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

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

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

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

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

        * Trunk version number no longer have a leading dot.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        * The Russian error messages have been updated.

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

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

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

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

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

        * Some build problems have been fixed.

        * Numerous improvements have been made to the web interface.

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

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

        * Several build issues have been resolved.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        * A few build problems have been fixed.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        * The Dutch error message translations have been updated.

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

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

        * A French error message translation has been contributed.

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

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

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

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

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

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

        * Some improvements have been made to the web pages.

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

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

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

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

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

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

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

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

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

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

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

        * Some error message translations have been improved.

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

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

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

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

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

        * A number of small build problems have been fixed.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        * There is a new German message translation.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        * Numerous documentation patches were received and have been applied.

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

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

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

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

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

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

        * The -UNFormatted option no longer truncates column values.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        * A Cygwin 20.1 portability bug has been fixed.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        Changes made in the previous release included:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        * The command substitutions have been vastly improved, and are now
        documented.



Change Log                           Aegis                   Change Log(Aegis)
