1Read Me(Aegis) Read Me(Aegis)
2
3NAME
4 aegis - project change supervisor
5 Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
6 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
7 2011, 2012 Peter Miller
8
9 Aegis is distributed under the terms of the GNU General Public
10 License. See the LICENSE section, below, for more details.
11
12 aegis (ee.j.iz) n., a protection, a defense.
13
14DESCRIPTION
15 Aegis is a CASE tool with a difference. In the spirit of the UNIX
16 Operating System, Aegis is a small component designed to work with
17 other programs.
18
19 Many CASE systems attempt to provide everything, from bubble charts to
20 source control to compilers. Users are trapped with the components
21 supplied by the CASE system, and if you don't like one of the
22 components (it may be too limited, for instance), then that is just
23 tough.
24
25 In contrast, UNIX provides many components of a CASE system -
26 compilers, editors, dependency maintenance tools (such as make),
27 source control tools (such as RCS). You may substitute the tool of
28 your choice if you don't like the ones supplied with the system - gcc,
29 jove, cake, to name just a few. Aegis adds to this list with software
30 configuration management, and true to UNIX philosophy, Aegis does not
31 dictate the choice of any of the other tools (although it may stretch
32 them to their limits).
33
34 Enough hype, what is it that Aegis does? Just what is software
35 configuration management? This question is sufficiently broad as to
36 require a book in answer. In essence, Aegis is a project change
37 supervisor. It provides a framework within which a team of developers
38 may work on many changes to a program independently, and Aegis
39 coordinates integrating these changes back into the master source of
40 the program, with as little disruption as possible. Resolution of
41 contention for source files, a major headache for any project with
42 more than one developer, is one of Aegis' major functions.
43
44 It should be noted that Aegis is a developer's tool, in the same sense
45 as make or RCS are developer's tools. It is not a manager's tool - it
46 does not provide progress tracking or manage work allocation.
47
48BENEFITS
49 So why should you use Aegis?
50
51 Aegis uses a particular model of the development of software projects.
52 This model has a master source (or baseline) of a project, and a team
53 of developers creating changes to be made to this baseline. When a
54 change is complete, it is integrated with the baseline, to become the
55 new baseline. Each change must be atomic and self-contained, no
56 change is allowed to cause the baseline to cease to work. "Working"
57 is defined as passing it's own tests. The tests are considered part
58 of the baseline. Aegis provides support for the developer so that an
59 entire copy of the baseline need not be taken to change a few files,
60 only those files which are to be changed need to be copied.
61
62 In order to ensure that changes are unable to cause the baseline to
63 cease to work, Aegis mandates that changes be accompanied by at least
64 one test, and that all such tests be known to complete successfully.
65 These steadily accumulated tests form an ever increasing regression
66 test suite for all later changes. There is also a mandatory review
67 stage for each change to the baseline. While these requirements may
68 be relaxed per-change or even per-project, doing so potentially
69 compromises the "working" definition of the baseline.
70
71 The win in using Aegis is that there are O(n) interactions between
72 developers and the baseline. Contrast this with a master source which
73 is being edited directly by the developers - there are O(n!)
74 interactions between developers - this makes adding "just one more"
75 developer a potential disaster.
76
77 Another win is that the project baseline always works. Always having
78 a working baseline means that a version is always available for
79 demonstrations, or those "pre-release snapshots" we are always forced
80 to provide.
81
82 The above advantages are all very well - for management types. Why
83 should Joe Average Programmer use Aegis? Recall that RCS provides
84 file locking, but only for one file at a time. Aegis provides the
85 file locking, atomically, for the set of files in the change. Recall
86 also that RCS locks the file the instant you start editing it. This
87 makes popular files a project bottleneck. Aegis allows concurrent
88 editing, and a resolution mechanism just before the change must be
89 integrated, meaning fewer delays for J.A.Programmer.
90
91 Aegis also has strong support for geographically distributed
92 development. It supports both push and pull models, and many
93 distribution topologies. Aegis' normal development process is used to
94 validate received change sets before committing them.
95
96ARCHIVE SITE
97 The latest version of Aegis is available by HTTP from:
98
99 URL: http://miller.emu.id.au/pmiller/
100 File: aegis.html # the Aegis page
101 File: aegis.4.25.README # Description, from tar file
102 File: aegis.4.25.lsm # Description, in LSM format
103 File: aegis.4.25.ae # the complete source, aedist format
104 File: aegis.4.25.spec # RedHat package specification
105 File: aegis.4.25.tar.gz # the complete source
106
107 This directory also contains a few other pieces of software written by
108 me. Some are referred to in the Aegis documentation. Please have a
109 look if you are interested.
110
111 Mirrors
112 See http://miller.emu.id.au/pmiller/ for a list of mirror sites.
113
114 Aegis is also carried by metalab.unc.edu in its Linux archives. You
115 will be able to find Aegis on any of its mirrors.
116
117 URL: ftp://metalab.unc.edu/pub/Linux/devel/vc/
118 File: aegis.4.25.README # Description, from tar file
119 File: aegis.4.25.lsm # Description, in LSM format
120 File: aegis.4.25.spec # RedHat package specification
121 File: aegis.4.25.ae # the complete source, aedist format
122 File: aegis.4.25.tar.gz # the complete source
123 This site is extensively mirrored around the world, so look for a copy
124 near you (you will get much better response).
125
126MAILING LIST
127 A mailing list has been created so that users of Aegis may exchange
128 ideas about how to use Aegis. Discussion may include, but is not
129 limited to: bugs, enhancements, and applications. The list is not
130 moderated.
131
132 The address of the mailing list is
133 aegis-users@auug.org.au
134 Please DO NOT attempt to subscribe by sending email to this address.
135 It is for content only.
136
137 How To Subscribe
138 To subscribe to this mailing list, visit the Aegis-users mailing list
139 page (http://www.auug.org.au/mailman/listinfo/aegis-users) and go
140 through the subscribe dialogue.
141
142 Archive
143 The mailing list is archived at eGroups. The URL is
144 http://www.egroups.com/list/aegis-users/info.html
145
146 No Files By EMail
147 The software which handles this mailing list CANNOT send you a copy of
148 Aegis. Please use FTP or ftp-by-email, instead.
149
150BUILDING
151 Instructions on how to build and test Aegis are to be found in the
152 BUILDING file included in this distribution.
153
154SOME HISTORY
155 The idea for Aegis did not come full-blown into my head in the shower,
156 as some of my programs do, but rather from working in a software shop
157 which used a simplistic form of something similar. That system was
158 held together by chewing-gum and string, it was written in a
159 disgusting variant of Basic, and by golly the damn thing worked
160 (mostly). Aegis is nothing like it, owes none of its code to that
161 system, and is far more versatile. It turns out that the system used
162 is nothing new, and is described in many SCM textbooks; it is the
163 result of systematically resolving development issues for large-ish
164 teams.
165
166 Since that company decided to close down our section (the company was
167 under attack by a hostile takeover bid) we all moved on simultaneously
168 (all 60 of us), sometimes working together, and sometimes not, but
169 always keeping in touch. With suggestions and conversations with some
170 of them early in 1990, the manual entries for Aegis took shape, and
171 formed most of the design document for Aegis.
172
173 Since getting the first glimmerings of a functional Aegis late in 1990
174 it is increasingly obvious that I never want to be without it ever
175 again. All of my sources that I modify are instantly placed under
176 Aegis, as is anything I distribute. All code I write for myself, and
177 all new code I write for my employer, goes under Aegis. Why? Because
178 it has fewer bugs!
179
180 Example: one of the sources I carry with me from job to job is "cook",
181 my dependency maintenance tool. Cook had existed for 3 years before
182 Aegis appeared on the scene, and I used it daily. When I placed cook
183 under Aegis, I found 6 bugs! Since then I have found a few more. Not
184 only are there now fewer bugs, but they never come back, because the
185 regression test suite always grows.
186
187 Branching
188 In 1997 the full branching support was released (it took nearly 18
189 months to retro-fit. The underlying data structures for projects and
190 change sets need to be merged. While I noticed back in 1990 that they
191 were very similar, it wasn't until branch support design was well
192 underways that they should have been the same data structure from the
193 beginning.
194
195 Geographically Distributed Development
196 In 1999 a conversation on the aegis-users mailing list resulted in the
197 creation of aedist, a program which packages and unpackages Aegis
198 changes so they can be sent by e-mail, or WWW or whatever. With 20:20
199 hindsight, this could have been done way back in 1991, because the
200 basic idea builds on Aegis change process model.
201
202Windows NT
203 Aegis depends on the underlying security provided by the operating
204 system (rather than re-invent yet another security mechanism).
205 However, in order to do this, Aegis uses the POSIX seteuid system
206 call, which has no direct equivalent on Windows NT. This makes
207 porting difficult. Single-user ports are possible (e.g. using
208 Cygwin), but are not usually what folks want.
209
210 Compounding this is the fact that many sites want to develop their
211 software for both Unix and Windows NT simultaneously. This means that
212 the security of the repository needs to be guaranteed to be handled in
213 the same way by both operating systems, otherwise one can act as a
214 "back door" into the repository. Many sites do not have the same
215 users and permissions (sourced from the same network register of
216 users) on both Unix and Windows NT, making the mapping almost
217 impossible even if the security models did actually correspond.
218
219 Most sites using Aegis and Windows NT together do so by running Aegis
220 on the Unix systems, but building and testing on the NT systems. The
221 work areas and repository are accessed via Samba or NFS.
222
223LICENSE
224 Aegis is free software; you can redistribute it and/or modify it under
225 the terms of the GNU General Public License as published by the Free
226 Software Foundation; either version 3 of the License, or (at your
227 option) any later version. In addition, as a special exception, the
228 copyright holders give permission to link the code of this program
229 with the OpenSSL library, and distribute linked combinations including
230 the two.
231
232 Aegis is distributed in the hope that it will be useful, but WITHOUT
233 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
234 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
235 for more details.
236
237 You should have received a copy of the GNU General Public License
238 along with this program. If not, see <http://www.gnu.org/licenses/>.
239
240 It should be in the LICENSE file included in this distribution. The
241 full test of the OpenSSL exception should be in the LICENSE.openssl
242 file included in this distribution.
243
244AUTHOR
245 Peter Miller E-Mail: pmiller@opensource.org.au
246 /\/\* WWW: http://miller.emu.id.au/pmiller/
247
248RELEASE NOTES
249 For excruciating detail, and also acknowledgments of those who
250 generously sent me feedback, please see the etc/CHANGES.* files
251 included in this distribution.
252
253 Upgrading
254 In general, all the machines on your network need to be running the
255 same release of Aegis. While the database format is backwards
256 compatible, it is rarely forwards compatible in the face of new
257 capabilities.
258
259 Version 4.26 (N-MMM-NNNN)
260 * Added OpenSSL license exception (LICENSE.openssl).
261
262 Version 4.25 (8-Mar-2008)
263 Version 4.24 (09-Mar-2008)
264 * Numerous portability improvements.
265
266 * Numerous improvements to the history reconstruction code.
267
268 * Numerous improvements and bug fixes to the distributed development
269 code. See aedist(1), aeget(1), aetar(1) and aepatch(1) for more
270 information.
271
272 * The site specific architecture information has been split into a
273 separate file, maked with an entire-source-hide attribute, so that new
274 Aegis-under-Aegis projects don't have such bad architecture problems.
275
276 * The license has been changed to GPLv3.
277
278 * A bug has been fixed the the change::pconf_get method which
279 sometimes caused segfaults.
280
281 * A bug has been fixed in aeclone which caused aecp -delta to segfault
282 when: a change set whith a removed file was cloned, and the clone
283 change set subsequently integrated.
284
285 * The aediff command is now smarter about files which may have moved.
286
287 * A bug has been fixed in the aeannotate command, it no longer
288 segfaults for some file histories.
289
290 * A Vietnamese error mesage translation has been added.
291
292 * There is a new Portugese (Brazillian) message catalogue translation.
293
294 * It is now possible to develop begin undo and new change undo in a
295 single command.
296
297 * The ael(1) command now understands are much wider range of ways to
298 specify changes.
299
300 * A segfault has been fixed in the use of --delta and --delta-data
301 options.
302
303 * This change set fix a problem in the aesvt(1) checkout command that
304 can fail to extract from a gzip compressed archive.
305
306 * A bug has been fixed in the aechown(1) command, to stop a segfault
307 when printing some error messages.
308
309 * There is a new aebisect(1) command which helps to find project
310 regressions not handled by the test suite.
311
312 * Many commands now cope with renames in more situations.
313
314 * A bug has been fixed in aeclone(1) which caused aecp -delta to
315 segfault when a change set whith a removed file was cloned, and the
316 clone change set subsequently integrated.
317
318 * The aede-policy(1) manual page has been updated to document the
319 aede-policy-line-length file attribute.
320
321 * A vietnamese translation has been added.
322
323 * The aereport(1) command now understands more ways to specify
324 changes.
325
326 * There is a new ${path_reduce} substitution which may be used to
327 remove redundant elements from path lists, such as used by the $PATH
328 environment variable.
329
330 * When the development directory style required actions to be perfomed
331 on the development directory, the obsolete "creating symbolic links to
332 baseline" message was produced. This was confusing. A more generic
333 message is now used, which is intended to be less confusing.
334
335 * The aecp(1) -delta command now follows the whiteout preference when
336 copying a "removed" file. The test suite now runs much faster.
337
338 * A bug has been fixed in the aedbu(1) command. It no longer complains
339 about permissions when the develop_begin_undo_command has been set.
340
341 * A bug has been fixed in the aeimport(1) command. It no longer uses
342 the Attic portion of filenames when populating the history directory
343 tree.
344
345 * The change details listing now prints comments in a wide column when
346 the comments are lengthy.
347
348 * There is a new $Active_Directory substitution, used to obtain the
349 development directory, or the integration directory, depending on the
350 change state. This is rather like the default behaviour of the aecd(1)
351 command.
352
353 * There is a new ${project version} substitution.
354
355 * The commands run by aeipass are now accompanied by more file name
356 information, so that you can know which source file corresponds to
357 which UUID history file, if there is a failure in the history
358 commands.
359
360 * The aeca(1) command now checks for and discards duplicate
361 architecture names. This fixes a bug with unsatifiable architecture
362 dependencies.
363
364 * The aeb(1) command has been improved, it no longer keeps running the
365 project_file_comand over and over again.
366
367 * A bug has been fixed in the aenf(1) command; it now preserves
368 existing file contents if new files already exist in the development
369 directory.
370
371 * A bug has been fixed in the "aet -regression" command, it no longer
372 reports free()ing a non-existent string.
373
374 * A bug has been fixed in the aed(1) command, it no longer reports a
375 bug when a cross branch merege is attempted for a file independently
376 created in both branches.
377
378 Version 4.23
379 Version 4.22.2 (18-Oct-2007)
380 This is an update for the 4.22 stable release, it is meant to help
381 Aegis users while the next release cycle ends.
382
383 * [ 1684820 ] Fixed a bug in aeclone that caused aecp -delta
384 segfaults.
385
386 * The symlink farm now handle derived files registered within Aegis
387 more like normal derived files.
388
389 * [ 1697199 ] The change_pconf_get function no longer looks for
390 historical versions of files, if it can help it. This makes many
391 things go faster and solved the problem of configuration fields
392 redefinition. While this change does not make Aegis more time safe,
393 it cures one of the symptoms.
394
395 * Fixed test 222 to work with recent releases of subversion.
396
397 * The aepconf(5) man page has been improved.
398
399 * [ Debian 435422 ] The reference manual was wrongly referring to
400 -Page-Headings instead of -Page-Header. The documentation has been
401 updated to match the source code.
402
403 * [ 1704108 ] The aecp(1) -delta command now follows the whiteout
404 preference when copying a "removed"file.
405
406 * [ 1704100 ] A bug has been fixed that caused aecp(1) -delta X to
407 copy in a change also a file with the old name of a file aemv(1)ed
408 before delta X.
409
410 * The generated Makefile now installs aelock(1) with the correct
411 permissions.
412
413 * [ 1701701 ] A bug has been fixed in the aetar(1) command, it no
414 longer creates tarballs that cause BSD and other tar to complain like
415 this: tar: End of archive volume 1 reached tar: Unexpected EOF on
416 archive file
417
418 * The configure script now handle correctly the datadir substitution.
419
420 Version 4.22.1 (14-Apr-2007)
421 * Test t0247a-walt.sh has been fixed, it was not exporting
422 AEGIS_TEST_DIR. This make aeintegratq(1) leaving stuff in the home
423 directory of the user.
424
425 * Some minor fix that prevented Aegis to build on RPM based
426 distributions has been fixed.
427
428 * The t0011a.sh test script failed when lex(1) was missing, since it
429 is not required to build Aegis the test script has been modified to
430 pass even when lex(1) is missing.
431
432 * aedist(1) now handle certain renamed files correctly when receiving
433 branches or entire-source.
434
435 * The t0011a.sh test script failed when lex(1) was missing, since it
436 is not required to build Aegis the test script has been modified to
437 pass even when lex(1) is missing.
438
439 * aedist(1) now handle certain renamed files correctly when receiving
440 branches or entire-source.
441
442 * [ 1691122 ] Newer versions of the autoconf tools introduced a new
443 @datarootdir@, and complained loudly if it wasn't used. Aegis
444 configure does not trigger anymore those warnings.
445
446 * The test suite does not use anymore diff(1) -u because not all
447 systems have gnu diff, so the use of gnu diff's -u option is nor
448 portable, and will give false negatives on some systems.
449
450 * The test suite does not use anymore diff(1) -u because not all
451 systems have gnu diff, so the use of gnu diff's -u option is nor
452 portable, and will give false negatives on some systems.
453
454 * aedist(1) -rec now save the UUID as the user defined original-UUID
455 if the UUID is already present in the repository. This is especially
456 useful when receiving changes in the same repository.
457
458 * aeclone(1) now preserve the the UUID of the original change as the
459 original-UUID user defined attribute of the new change. It also copy
460 any other used-defined attribute.
461
462 * Test 89 has been disable on HP-UX-10 because that system has a
463 "vendor specific" (i.e. broken) cpio(1) archive format.
464
465 * Test 95 has been improved to be less sensitive to libmagic(3)
466 differences.
467
468 * Test 207 has been changed to be less sensitive to sort(1)
469 differences.
470
471 * The project_specific setenv:* variables are now exported only once.
472
473 * [ 1674882 ] The following bug as been fixed: if a file is created
474 and renamed within a single branch, and that branch is integrated,
475 then the file is not included in the output of 'aedist -send -es' from
476 subsequent branches.
477
478 * A bug has been fixed in the aedbu(1) command. It no longer
479 complains about permissions when the develop_begin_undo_command has
480 been set.
481
482 * The aedist(1) -rec command now better handles file renamed (not
483 aemved) to match the local repository state.
484
485 * A bug has been fixed that caused the change_pconf_get function
486 terminate aegis(1) with a fatal error if applied to a branch without a
487 config file (e.g. if the trunk does not contain any closed branch).
488
489 * The aenpr(1) -keep command now set the administrator recursively.
490
491 * A bug has been fixed in the ${project-specific} substitution, it now
492 works correctly with the aesub(1) -bl command.
493
494 * aedist(1) -received has been modified to set the user defined
495 attribute foreign-copyright to true when receiving a remote change
496 set. This in order to avoid aede-policy(1) complain about incorrect
497 copyright notice at aede(1) time.0
498
499 * A bug has been fixed that caused an aemv(1) followed by an aenf(1)
500 to generate two different files with the same UUID.
501
502 * Avoid the "multiple permission set" error on quit.
503
504 * A bug has been fixed in the UUID generating code; it was running out
505 of file descriptors.
506
507 * A bug has been fixed in the aet(1) -regression command, it no longer
508 reports free()ing a non-existent string.
509
510 * A bug has been fixed in the aed(1) command, it no longer reports a
511 bug when a cross branch merge is attempted for a file independently
512 created in both branches.
513
514 * A bug has been fixed which caused aeipass(1) to assign UUID to files
515 at branch integration pass time. This can happen if the files was
516 created and integrated with an old Aegis release, lacking support for
517 file's UUID. This bug make it possible to have the history for a file
518 split into two part, one accessible via the file_name, the other
519 accessible using the UUID.
520
521 * A segfault in aeannotate(1) has been fixed.
522
523 * A bug has been fixed related to the use of the
524 unchanged_file_integrate_pass_policy=remove policy described in
525 aepconf(5). In this case aeipass failed to reset the locked_by field
526 from the project fstate file, this prevented subsequent changes to
527 modify the removed file.
528
529 * A bug has been fixed in the handling of the symlink farm, for
530 development directory styles which use them for derived files.
531 Derived files in the baseline directory which were formerly source
532 files, but then aerm-ed, are now included in the development directory
533 when copy/link styles are used.
534
535 * A bug has been fixed in the aenf(1) command; it now preserves
536 existing file contents if new files already exist in the file
537 development directory.
538
539 * The ./configure script has been improved to stop with a fatal error
540 if the bzip2 library is not available.
541
542 Version 4.22 (29-Mar-2006)
543 * A bug has been fixed in the aeclean(1) command, it now correctly
544 resets the change build and test times.
545
546 * A bug has been fixed in writing of tar and cpio data, in cases where
547 there was one byte too much padding.
548
549 * A bug has been fixed in the aeintegratq(1) command, it no longer
550 ignores change number zero.
551
552 * A bug has been fixed in the aepromptcmd(1) comand, it now
553 understands that when the build command is "exit 0" then no build is
554 required.
555
556 * The aede(1) comand now runs the review_pass_notify_command (instead
557 of the develop_end_notify_command) for projects configured to skip the
558 being reviewed state.
559
560 * A bug has been fixed in the aeannotate(1) command, it no longer uses
561 the wrong timestamp when creating histories for completed branches.
562
563 * A bug in the aed(1) command has been fixed, it no longer reports a
564 bug when trying to merge a file that has been renamed.
565
566 * A bug has been fixed in the aet(1) command, it now correctly handles
567 multiple architectures being reported for batch test results.
568
569 * A bug has been fixed in the aet -regression command, the batch_-
570 test_command now correctly handles multiple architectures in the
571 results.
572
573 * The notification scripts distributed with Aegis have been fixed,
574 they now correctly substitute recipients' email addresses.
575
576 * A bug has been fixed in the aediff(1) command, the -change option is
577 now ablew to cope with degenerate forms of the delta name in cases
578 like aediff -change D001 and similar.
579
580 * A bug has been fixed in the aenc(1) command, it now takes more
581 notice of project testing default settings.
582
583 * A bug has been fixed in the aeget(1) interface, the adjective for
584 the alternate listing link at the bottom of the Integration Histogram
585 pages has been inverted.
586
587 * A bug has been fixed in the aeget(1) command, is is now always
588 possible to see the error produced by a script when the noerror
589 modifier is specified.
590
591 * A bug has been fixed in the aeget(1) web interface, it now provides
592 the correct links to the more and less detailed file history pages.
593
594 * The aeget(1) web interface no longer emits broken links to removed
595 source files.
596
597 * A bug has been fixed in the aenbr(1) command, the protect_database
598 project attribute is now correctly inherited from the parent branch.
599
600 * A bug has been fixed the the RSS feed, where HTML special characters
601 were not rendered correctly.
602
603 * A bug has been fixed in the aeipass(1) command, it no longer fails
604 if the history_create_command was not set, it uses the history_put_-
605 command instead, as it is supposed to.
606
607 * A bug has been fixed in the aedist -send command, it no longer
608 attempts to include the source of removed files.
609
610 * A bug has been fixed in the aedist(1) command, it no longer
611 segfaults when compiled with DEBUG defined.
612
613 * A bug has been fixed in the aedist -replay command, it no longer
614 downloads change sets more than once.
615
616 * A bug has been fixed in the aedist -send command, it no longer
617 obtains the wrong version of the project files when building patches
618 for files which have been renamed.
619
620 * A bug has been fixed in the aedist(1) command, no longer attempts to
621 include the source of removed files.
622
623 * A bug has been fixed in the aedist -pending command, it now resolves
624 project aliases.
625
626 * A bug has been fixed in the aedist(1) command, it no longer
627 segfaults on IRIX.
628
629 * A bug was fixed which caused the development_directory of a branch
630 to be recorded as an absolute path in the Aegis meta-data, rather than
631 relative to the home of the project. This problem make it difficult
632 to move a project to a different location in the filesystem.
633
634 * There is a new open source project example on the web site, which
635 allows tarballs to be unpacked and turned into an Aegis project in
636 less than 30 minutes.
637
638 * There is a new aefinish(1) command which may be used to read the
639 state of a change set and then run all of the Aegis commands necessary
640 to to end development. See aefinish(1) for more information.
641
642 * The aexml(1) command now understands ".bz" output file suffix, in
643 addition to the ".gz" suffix it already understood. The man page has
644 been updated to cover the -output opion.
645
646 * The aerevml -send command is now able to produce bzip2 compressed
647 output.
648
649 * The restrictions on project alias names have been eased. It is now
650 possible to have any alias name you like, so long as it doesn't
651 contain any shell special characters.
652
653 * It is now possible to set change attributes from the command line,
654 without going via an editor. See aeca(1) for more information.
655
656 * The aetar -send command is now able to produce bzip2 compressed
657 output.
658
659 * There is an new aetar -exclude command line option, allowing you to
660 exclude files from the tarball being unpacked and used to for the
661 change set. This is typically necessary when a tarball includes
662 derived files (e.g. the ./configure script in most open source
663 projects).
664
665 * There is a new aetar -exclude-auto-tools option, which can be used
666 to exclude derived files commonly found in open source projects using
667 the GNU Autoconf and GNU Automake tools.
668
669 * There is a new aede-policy(1) command which may be invoked by
670 develop_end_policy_command to enforce additional local policies. See
671 aede-policy(1) for more information.
672
673 * When symlinking files (source or derived) into the development
674 directory, the last-modified time of the link is set to the last-
675 modified time of the file being linked to, when the underlying
676 filesystem supports it.
677
678 * The aefa(1) command now accepts name=value attribute assignments on
679 the command line.
680
681 * The aet(1) command now understands name=value pairs on the command
682 line, and passes them unchanged to the test command. The -force
683 option implies a force=1 variable setting.
684
685 * The aepatch -send command is now able to produce bzip2 compressed
686 output.
687
688 * The aesvt(1) command now uses the bzip2(1) algorithm by default.
689 There is a aesvt -compression-algorithm=gzip option for forwards
690 compatibility.
691
692 * There is a new ae-repo-ci(1) command which may be used in an
693 integrate_pass_notify_command to do a parallel check-in of a change
694 set into a second parallel repository. It understands CVS and SVN at
695 the moment; it is easy to extend to understand more repository types.
696 The old ae-cvs-ci(1) script now invokes the ae-repo-ci(1) command.
697
698 * The build step of the development process can now be made optional.
699 Configuring a build_command of "exit 0" will tell Aegis your project
700 does not need to be built.
701
702 * The aedist -replay command now adds a compatibility modifier to all
703 of the downloads URLs, so that the change set received will be
704 compatible with the version of aedist at the receiving end.
705
706 * The aedist -send command now accepts a -no-mime-header option, to
707 make it easier to validate the aedist(1) output against the real
708 cpio(1) command.
709
710 * The aedist -send command is now able to produce bzip2 compressed
711 output.
712
713 * There is a new entire-source-hide file attribute which may be used
714 to omit site-specific files from aedist -send change sets.
715
716 * The aetar -remove-path-prefix option now also accepts a numeric
717 argument.
718
719 * The aeannotate(1) command now understands the -change and -delta
720 options.
721
722 * The aedb(1) command has been enhanced to check that directory
723 permissions above the development directory will be traversable by the
724 integrator and the reviewers.
725
726 * The aecpu(1) comand now understands the -read-only option to mean
727 uncopy all of the insulation files.
728
729 * There is a new aelock(1) command, which may be used to take read-
730 only locks. This can be useful for backups, and other activities
731 outside Aegis' scope which require a constant project state to operate
732 correctly.
733
734 * The aedist command can now perform file merges with better results.
735
736 * The aedist -receive command now looks to see if the executing user
737 has project admin priviledges, and if so does not cancel testing
738 exemptions.
739
740 * The aedist -receive command now applies patches using the patch(1)
741 command, rather than doing it less well itself.
742
743 * The aedist -replay command now attempts to use the same change
744 number as on the remote system. A bug has been fixed in the way it
745 looked for change numbers.
746
747 * There is a new unchanged_file_integrate_pass_policy field in the
748 project configuration file, which controls what to do when a change
749 set contains an unchanged file at integrate pass time.
750
751 * It is now possible for developers to edit a change description when
752 a change is in the awaiting development state, if the project has
753 developers_may_create_changes enabled.
754
755 * The aed(1) command is now optional. Configuring a diff_command of
756 "exit 0" will tell Aegis your project does not need to be differenced.
757
758 * The aeget(1) interface now places HTML anchors in description text
759 where it recognizes them.
760
761 * There is a new aeget:inventory:hide change attribute, which may be
762 used to prevent strictly local change sets from being advertised in
763 the aeget(1) change set inventory.
764
765 * The aeget(1) web interface file listings pages now link the edit
766 numbers to file versions. When history is available there are also
767 links to the previous verion, and the arrow is linked to a diff page.
768
769 * The aeget(1) presentation of file history has been improved to
770 highlight renaming of files.
771
772 * The aeget(1) web interface now has a recursive option on its project
773 integration history pages.
774
775 * The aebuffy(1) command is now able to run the tkaer(1) command from
776 more states, and it now accepts 'q' to quit. The display of changes
777 with double quotes (") in their brief description has been improved.
778
779 * A build problem with libcurl not being present has been fixed.
780
781 * A bug has been fixed which caused errors when Aegis was compiled
782 with g++ 4.1
783
784 * A build problem has been fixed on Solaris.
785
786 * A build problem related to bison(1) using libintl(3) has been fixed.
787
788 * The ./configure script has been improved to correctly detect
789 installation of the OSSP UUID library.
790
791 * A build problem on HP/UX has been fixed.
792
793 * A build problem on MacOS X has been fixed.
794
795 * A build problem has been fixed where libraries required by the
796 ./configure script are located under /usr/local/lib or some other non-
797 standard place.
798
799 Version 4.21 (10-Nov-2005)
800 You must have the Gnome libxml2 library (http://xmlsoft.org/)
801 installed in order to build Aegis. Please install the xml2 library
802 version 1.8.17 or later. You do not have to install the rest of
803 Gnome, the library can be used on its own. If you are using a package
804 based install, you will need the libxml2-devel or libxml2-dev package
805 in addition to the libxml2 package.
806
807 Ideally, you would also install the libmagic package, used to
808 determine file types, just as file(1) does. (This is not to be
809 confused with the libmagic6 image manipluation library. If you are
810 using a package based install, you will need the libmagic-devel or
811 libmagic-dev package in addition to the libmagic package.
812
813 * A bug has been fixed in the aecp -independent -output option, which
814 resulted in an error when Aegis tried to chmod nothing.
815
816 * The auto file promote feature previously available in aed(1) has
817 been added to the aeb(1), aecp(1), aerm(1) and aenf(1) commands.
818
819 * The aedist -pending and aedist -missing commands now print the
820 number of changes in the remote inventory.
821
822 * A bug was fixed in the aecp command which caused a segfault
823 sometimes when the user tries to copy a removed file.
824
825 * The aedist -replay command now accepts a -maximum option, which
826 includes change sets not yet completed in the local change set
827 inventory when considering what to download.
828
829 * There is a new develop_end_policy_command field in the project
830 configuration file. It can be used to add addition constrains to
831 change sets before they can complete aede(1) successfully.
832
833 * The aedist -receive command now annotates remote change sets
834 (typically, change sets downloaded via the aedist -replay command)
835 with their origin URL.
836
837 * A bug has been fixed in the aebuffy command where it would display
838 incorrectly when the brief_description of a change contained double
839 quotes.
840
841 * It is now possible to attach a comment to all commands which involve
842 a change state transition, e.g. aenc, aede, etc. This is done using
843 the -reason command line option, just as you are able to do for review
844 fail, etc.
845
846 * A bug has been fixed in aenc, where it did not correctly copy user
847 defined attributes.
848
849 * There is a new aelcf(1) command to efficiently generate lists of
850 change source files for use by your build tool.
851
852 * There is a new aelpf(1) command to efficiently generate lists of
853 project source files for use by your build tool.
854
855 * There is a new cache of state information attached to each delta,
856 the project file state at the time of the delta. This has the
857 potential to accelerate aecp -delta, and all other
858 project_file_roll_forward-based operations. Large projects may want
859 to turn this off, because each delta will produce another large
860 project file state cache.
861
862 * There is support for generating RSS feeds from Aegis. See the Aegis
863 project pages on the Aegis web interface for an example. See
864 aepconf(5) and aeget(1) for more information.
865
866 * The ${change delta_uuid} substitution now allows access to the
867 delta_uuid in the being integrated state.
868
869 * The "wrong file" error message from aedist has been improved, to say
870 what was expected.
871
872 * There is a new optional $filename substitution for the history_put_-
873 command, so that you can attach the current name of the check-in to
874 the history file meta-data. There is a new optional $uuid
875 substitution for history_put_command, so you can attach that as mete-
876 data, too.
877
878 * There is a new history tool bundled with Aegis. See aesvt(1) for
879 more information.
880
881 * There is a new default_regression_test_exempt project attribute.
882
883 * The aedist -receive delta selection mechanism has been improved:
884 previously the edit-origin-UUID attribute was considered in favour of
885 the original-UUID attribute, with this change it is used the change
886 set, bounded to the edit-origin-UUID or to original-UUID, more
887 recently integrated. This should reduce the frequency of logical
888 conflicts.
889
890 * There is a new aerevml(1) command, which can be used to send change
891 sets in the RevML format. See aerevml(1) for more information. The
892 aeget(1) web interface is also able to serve change sets in this
893 format.
894
895 * A problem has been fixed which caused Aegis to fail on the hppa port
896 of Debian.
897
898 * The aetar -receive program now uses the archive name as the brief
899 description.
900
901 * A bug was fixed in aedist -send which caused segfaults when
902 processing some files.
903
904 * A bug was fixed which caused aedist -send to produce an archive that
905 can not be aedist -receive because of an operation impossible to
906 replicate in a change set.
907
908 * There is an implementation of Robert Collins' subunit testing
909 framework available. See aesubunit(1) for more information.
910
911 * A bug was fixed in aedist that caused an error when receiving a
912 branch's archive generated with the aedist -send -entire-source
913 option.
914
915 * A bug has been fixed in aedist -receive that caused a segfault in
916 the rename handling code.
917
918 * The aedist -missing listing (and the aedist -replay behaviour) now
919 check for branch UUIDs as well, just in case someone fetched a branch
920 as a change set and applied it. However, aeget does not report these
921 UUIDs, because that would be too confusing.
922
923 * It is now possible to specify any sufficiently unique leading prefix
924 of a UUID rather than the full 36 characters.
925
926 * There is a new ${History_Path} substitution available. It gives you
927 the path name of the history file corresponding to the given
928 filenames.
929
930 * A bug in aedist -receive which caused incorrect delta selection has
931 been fixed.
932
933 * There is a new aedist -pending option which can print the list of
934 local change sets missing from a remote repository.
935
936 * The aedist -receive command is now able to use the edit-origin-UUID
937 attribute to copy modified files from the right origin.
938
939 * A bug has been fixed in aedist -send where some types of incomplete
940 changes would fail an assert.
941
942 * There is a new aexver(1) command which can be used to view
943 historical versions of files in an Aegis repository. See aexver(1)
944 for more information.
945
946 * A bug as been fixed which caused aemv(1) to incorrectly rename a
947 file to an existing directory
948
949 * It is now possible to specify user-defined user attributes in the
950 ~/.aegisrc file.
951
952 * The aenf(1) command now gives a warning if you specify the "config"
953 file without the "-config" option. This is the old name for the
954 project configuration file, the new name is "aegis.conf".
955
956 * The aefind(1) command now understands {+} to mean the resolved file
957 name, and {-} as the unresolved file name.
958
959 * There was a bug where Aegis would exit with a fatal error if one of
960 the directories on the AEGIS_PATH was read-only. Such directories are
961 now ignored.
962
963 * The aetar(1) command has been improved to process modified and
964 created files in a batched way; this improves the speed.
965
966 * Additional explanatory text has been added to the message printed
967 when error message translation files can't be found.
968
969 * The aenf(1) command now understands the -keep and -no-keep options,
970 to explicitly control the creation of new files in the development
971 directory.
972
973 * A bug has been fixed in aemv(1) which failed to check the new name
974 against the filename charset, etc.
975
976 Version 4.20 (28-Jan-2005)
977 Please Note: Users are advised to check the history command settings
978 in their project configuration files. With the advent of file UUIDs,
979 the history mechanism now decouples source file names from history
980 file names. In particular, the assumption that the history file
981 basename is the same as the source file basename is no longer true.
982 Correct settings may be found in the lib/config.example/ directory of
983 the source distribution.
984
985 * The defaulting rules for the change number (if none was specified on
986 the command line) have been altered. the current directory now takes
987 precedence over the "only one" rule. This seems to meet user
988 expectations better.
989
990 * A bug has been fixed in the aecvsserver(1) command which caused to
991 to fail when accessed by some clients.
992
993 * A bug has been fixed which caused many of the programs to leave
994 temporary files behind.
995
996 * A bug has been fixed in the aedist -send -entire-source command
997 where it would hang for some cases. (Actually, it would dump core
998 after using up all available swap space on an infinite recursion).
999
1000 * A bug has been fixed in the aedist command (and other places) where
1001 the open of the project configuration file could fail, due to not
1002 properly reconstructing in historical circumstances.
1003
1004 * A bug has been fixed in the integration build which was removing
1005 files it should not, for during_build_only = true work area styles.
1006
1007 * The aeb command now complains much less about "directory not empty"
1008 when using the link farm.
1009
1010 * A bug has been fixed in the aetar -send -entire-source command where
1011 some files were missing when asking for a complete set of historical
1012 sources.
1013
1014 * A bug has been fixed in the aedist -send -entire-source where some
1015 files were zero length when asking for a complete set of historical
1016 sources.
1017
1018 * A bug in aedist(1) has been fixed, it was forcing regression test on
1019 the receiving side even if the change set does not require it and
1020 default_test_exemption was set to true. It was annoying especially if
1021 the test suite take a long time to run completely.
1022
1023 * Some bugs have been fixed in aediff(1) which caused it to mis-parse
1024 the command line in some cases, and it was also barfing on the
1025 expected exit status 1 when an actual difference was found.
1026
1027 * A bug has been fixed in the aecpu(1), aemtu(1), aemvu(1), aenfu(1),
1028 aentu(1) and aermu(1) commands. They were not repairing the symlinks
1029 (etc) required by the development_directory_style settings.
1030
1031 * A bug has been fixed in the Change_Files listing; it was not showing
1032 the locked-by information.
1033
1034 * A bug has been fixed in the code which updates the development
1035 directory symlinks. It was failing to make all the directories
1036 required.
1037
1038 * A bug has been fixed in the aedist -send -entrie-source command,
1039 where it would segfault in some cases.
1040
1041 * A bug has been fixed in reading plain diff(1) format patches. This
1042 was particularly obvious because aeannotate(1) uses this form of diff
1043 by default.
1044
1045 * A bug has been fixed in aeget(1) where it was showing removed source
1046 files as available for download.
1047
1048 * A bug has been fixed in aeget(1) where it produced invalid output if
1049 the SCRIPT_NAME environment was not set.
1050
1051 * A bug has been fixed in aeget(1) where it would sometimes ignore
1052 modifiers. This was particularly noticable in the download pages.
1053
1054 * A bug has been fixed in the aeimport(1) command. It was using the
1055 old work area style configuration file parameters, instead of the new
1056 development_directory_style settings.
1057
1058 * A memory leak has been fixed in the symbol table code.
1059
1060 * A bug has been fixed in the project_file_find_by_uuid function. In
1061 some cases it would SEGFAULT, particularly once the memory leak in the
1062 symbol table code was fixed.
1063
1064 * Several build problems have been fixed.
1065
1066 * The aeintegratq(1) command has a new -loop options, which causes it
1067 to keep processing changes that become available while it is running.
1068
1069 * The aet(1) command has a new -sugest-limit option which runs as many
1070 regression tests as possible (from most relevant to least relevant)
1071 but stops after the given number of minutes. This is a way for
1072 running the most relevant tests in a limited time. For example, this
1073 option could be used if a project has so many integrations in a day
1074 that it can only afford 20 minutes of integration testing for each
1075 one.
1076
1077 * The aed(1) man page has been updated to better describe the
1078 behaviour around the merge command.
1079
1080 * The aetar -send command now accepts an -include-build option that
1081 also add build files, registered with aegis -new-file -build, to the
1082 ouput archive. A -not-include-build option is also accepted.
1083
1084 * The aetar -receive command now avoids copying build files from the
1085 baseline because this operation is forbidden and the error stops the
1086 processing.
1087
1088 * There is a new ${Change_Attribute} substitution, which is replaced
1089 by the values of the change attributes named.
1090
1091 * The history recapitulation code (project_file_roll_forward) now
1092 indexes by UUID rather than by file name (with backwards compatibility
1093 for UUID-less repositories). The user visable result is that file
1094 history reports and listings now accurately track renames.
1095
1096 * The aet -nopersevere option now also stops for no result as well as
1097 fail.
1098
1099 * The aedist -receive command now understands file UUIDs. This means
1100 that it will operate on the correct file even when one or the other
1101 repository has renamed the file.
1102
1103 * The aedist -receive command has been enhanced to perform file merges
1104 if necessary.
1105
1106 * There is a new aedist -replay option. When used in with an aeget(1)
1107 server, it can be used to synchronize two repositories. The aedist
1108 -missing option may be used to show what would be downloaded.
1109
1110 * The aefa(1) command, with the -edit option, now shows you the
1111 content type, rather than adding it silently.
1112
1113 * There is a new aediff -command option, allowing you to specify the
1114 command you want to use to display the difference. For example, you
1115 could use tkdiff(1) or mgdiff(1) to display the change graphically.
1116
1117 * The aediff(1) command now adds labels when it is producing a context
1118 or unified diff output.
1119
1120 * There is a new optional review_policy_command field in the project
1121 confioguration file. This allows for customised review policies for
1122 each project, including multiple reviewers and specific reviewers for
1123 portions of the sources.
1124
1125 * There is a new ${Change_Reviewer_List} substitution, which is
1126 replaced by a space separated list of reviewers of the current change,
1127 since the last develop end. This is of particular use to the review_-
1128 policy_command field of the project configuartion file.
1129
1130 * There is a new ${Change_Developer_List} substitution, which is
1131 replaced by a space separated list of all the developers of the
1132 current change.
1133
1134 * There is a new ${quoted_email_address} substitution, which replaces
1135 it arguments with the email addresses of the names users. See
1136 aesub(5) for more information.
1137
1138 * The notification scripts have been updated to use the new ${quoted-
1139 email-address} substitution.
1140
1141 * The remaining aegis.cgi(1) functions have been reproduced in
1142 aeget(1). The aegis.cgi(1) script is now deprecated.
1143
1144 * When the UUID of a change is cleared it (because some operation on
1145 the change set invalidates it) is saved in a change attribute named
1146 original-UUID.
1147
1148 * The aedist -receive command is now able to use the original-UUID
1149 attribute of the incoming change set to select the delta to merge
1150 with.
1151
1152 * The "path unrelated" error message has been updated to make it more
1153 informative.
1154
1155 * All attribute names (project, change and file) are now case-
1156 insensitive.
1157
1158 * The aedist -receive command has been enhanced to allow you to select
1159 the branch of the delta to merge with.
1160
1161 * Several classes within the source have been refactored.
1162
1163 Version 4.19 (30-Sep-2004)
1164 Please Note: Users are advised to check the history command settings
1165 in their project configuration files. With the advent of file UUIDs,
1166 the history mechanism now decouples source file names from history
1167 file names. In particular, the assumption that the history file
1168 basename is the same as the source file basename is no longer true.
1169 Correct settings may be found in the lib/config.example/ directory of
1170 the source distribution.
1171
1172 * There is a new development_directory_style field of the project
1173 configuration file. This allows CVS-style and Arch-style work areas,
1174 in addition to the BCS-style and viewpath work areas already
1175 supported. These new work area styles permit many existing projects
1176 to use Aegis with no change to their build systems. The libsndfile
1177 and OpenLDAP projects, for example, have been imported and built
1178 without modification. See aepconf(5) and the Dependency Maintenance
1179 Tool chapter of the User Guide for more information.
1180
1181 * There is a new aediff(1) command, which may be used to obtain a
1182 diff(1) listing of a file for different deltas.
1183
1184 * There is a new aepromptcmd(1) command, used with bash's
1185 PROMPT_COMMAND environment variable. It can be used to obtain a
1186 colored prompt, simulating the process described in Kent Beck's book
1187 Test Driven Development.
1188
1189 * There is a new signed_off_by field of the project configuration
1190 file. Set it to true if you want "Signed-off-by" lines appended to
1191 change set descriptions as the changes pass through the Aegis process.
1192 The aede(1) and aerpass(1) commands now understand two new -signed-
1193 off-by and -no-signed-off-by options, to override the project setting.
1194 The aedist -send and aepatch -send commands also understand the new
1195 -signed-off-by option, to add the "Signed-off-by" line to the outgoing
1196 change set description. Conforming to: http://www.ussg.iu.edu/-
1197 hypermail/linux/kernel/0405.2/1301.html and http://www.osdl.org/-
1198 newsroom/press_releases/2004/2004_05_24_dco.html
1199
1200 * The aet(1) command has been enhanced to allow integrators to run
1201 specific tests.
1202
1203 * The aesub(1) command can now read the text to be substituted from a
1204 file or standard input.
1205
1206 * It is now possible to use the project-specific attributes to specify
1207 environment variables to be set for commands executed by Aegis. This
1208 can be used to set a predictable PATH, for example.
1209
1210 * It is now possible to customize the aeget(1) web interface using
1211 project specific attributes.
1212
1213 * The ael(1) command and the aeget(1) web interface now have file
1214 inventory pages, for the project file inventory and the change file
1215 inventory.
1216
1217 * There is a new "change set inventory" listing available via the
1218 ael(1) command and the aeget(1) web interface, which lists changes and
1219 their corresponding UUIDs, and links to an aedist download for each
1220 change. The idea is that the aeget(1) pages may be used to automate
1221 downloading change set your repository does not yet have.
1222
1223 * There are two new history commands in the project configuration
1224 file, the history_transaction_begin and history_transaction_end
1225 fields. It is not an error if these fields are absent. If you need a
1226 transaction key, use the $version substitution.
1227
1228 * The aedist(1) command now runs all tests required for the change
1229 set, and honors test exemptions.
1230
1231 * The aedist(1) command now sleeps for a second to ensure that the
1232 last-time-modified of derived files will be strictly later than source
1233 files, and that the aeb(1) timestamp will also be strictly later then
1234 the last-time-modified for the source files.
1235
1236 * The tkdiff(1) man page has been updated to say how to use mgdiff(1)
1237 instead of tkdiff(1).
1238
1239 * All commands which accept the -change option may now be given a
1240 change set UUID. You can discover a change's UUID using the ael cd
1241 (list change details) or ael inventory listings.
1242
1243 * The aed(1) command now restores source file from backups (,B) when a
1244 merge fails. Previously this was not the case and subsquent aed
1245 invocations failed because the source file was missing.
1246
1247 * The aetar -send command now has an -add-path-prefix option, so that
1248 you can add a path prefix to all of the files in a tarball. The
1249 aeget(1) CGI interface now adds a path prefix to generated tarballs by
1250 default.
1251
1252 * Whenever you edit file attributes, there is a Content-Type attribute
1253 added automagically if none was there already. The idea is that this
1254 could be used by scripts to differentiate file types.
1255
1256 * The aepatch(1) command now uses diff -u by default.
1257
1258 * A number of build problems on different systems have been fixed.
1259
1260 * A number of minor problems with tests on different systems have been
1261 fixed.
1262
1263 * A bug has been fixed in the aepatch command; it was not parsing
1264 simple diff patches correctly.
1265
1266 * The example history commands have been updated to work better with
1267 the new UUID code.
1268
1269 * A bug has been fixed in aecp -delta, where it would fetch the wrong
1270 version of a file in some cases.
1271
1272 * A bug has been fixed in the handling of the executable bit.
1273
1274 * A bug has been fixed in aede(1), where is did not permit branches to
1275 end when they had a removed file (without a UUID) which has been
1276 subsequently recreated (with a UUID).
1277
1278 * A bug has been fixed in the aeget(1) command for file contents. It
1279 was giving a "multiple permissions set (bug)" error message.
1280
1281 * A bug in the aedist -receive command, where it was not accurately
1282 manipulating the incoming change set UUID.
1283
1284 * A bug has been fixed in aed(1) which caused it to SEGFAULT.
1285
1286 * A bug has been fixed in the aede(1) command, where it failed to copy
1287 the UUID when it promoted a file from "create" to "modify"
1288 automatically.
1289
1290 * A bug has been fixed in the $date substitution, it was not advancing
1291 properly when used in progress messages.
1292
1293 * A bug has been fixed in the command line processing of the aefa(1)
1294 command.
1295
1296 * A bug has been fixed in the aegis -review-begin command; it was not
1297 operating correctly when the change was in awaiting_review but the
1298 project was in goto_being_reviewed.
1299
1300 * A bug has been fixed in the $basename substitution; it now functions
1301 exactly like basename(1) command.
1302
1303 * A bug has been fixed in the aet -bl command; it erroneously stated
1304 that the $Search_Path_Executable substitution was mandatory, when it
1305 actually optional.
1306
1307 Version 4.18 (10-Jun-2004)
1308 * A number of build problems have been fixed, particularly concerning
1309 GCC 3.3 and later.
1310
1311 * The aemv(1) command has been enhanced to accept more than two file
1312 names. You are now able to move serveral files in the one command.
1313
1314 * The aedist -receive command has been enhanced to process move
1315 operations in a batched way. This improved performance when receiving
1316 a change that renames many files.
1317
1318 * The ./configure script has been changed to take note of the
1319 --sysconfdir option, used to specify the location of the /etc
1320 directory.
1321
1322 * A bug has been fixed in the aepatch(1) command. It would SEGFAULT
1323 when a non-source file was patched.
1324
1325 * A bug has been fixed in the aemeasure(1) command. It would SEGFAULT
1326 when no files were named on the command line.
1327
1328 * The Russian error message catalogue has been updated.
1329
1330 * A subtle bug in the change file out-of-date tests have been fixed.
1331 It did not adequately address the transition case for projects
1332 containing files with and without UUIDs.
1333
1334 * The ./configure --sysconfdir option is now honored. It is very
1335 important to set it to /etc when you configure Aegis.
1336
1337 Version 4.17 (3-Jun-2004)
1338 * Each new change set is now assigned a Universally Unique Identifier
1339 (UUID) to allow it to be tracked across geographically distributed
1340 development. The aedist(1) and aepatch(1) commands now send the
1341 change set UUIDs, and preserve them on receipt.
1342
1343 * Each file now has a Universally Unique Identifier (UUID) which
1344 allows tracking files across renames, even on geographically separate
1345 sites. (The aedist(1) and aepatch(1) commands send the file UUIDs,
1346 the next release will take advantage of them on receipt.)
1347
1348 * The history filename used to remember file history is now based in
1349 the file UUID, if the file has a UUID. This simplifies continuity of
1350 history across renames (this fucntion always been present in Aegis,
1351 but harder to access).
1352
1353 * As a consequence of the UUID being used to generate history file
1354 names, there is no longer the restriction that new files may not be
1355 named after the directory portion of a deleted file (or vice versa).
1356
1357 * There is a new aecvsserver(1) command, which presents Aegis projects
1358 and change sets as CVS modules. All of the core CVS functions are
1359 supported. This code needs to be exersized and tested by users.
1360
1361 * It is now possible to specify arbitrary attribute names and value
1362 for each source file. The aefa(1) command may be used to edit file
1363 attributes. The aedist(1) and aepatch(1) send these attributes; a
1364 future release will take advantage of the information on receipt.
1365
1366 * It is now possible to attach arbitrary attribute names and values to
1367 change sets. For example, you can use this to remember the bugzilla
1368 tracking number for a change.
1369
1370 * The aepatch(1) command now includes change set meta-data as a
1371 compressed BASE64 encoded block at the top of the patch, after the
1372 human-readable text but before the files. This means that aepatch(1)
1373 can be as effective as aedist(1) is transmitting chaneg sets. Patches
1374 without meta-data still work as before.
1375
1376 * There is a new report script which writes change logs in Debian
1377 format.
1378
1379 * The aeget(1) web interface has been improved. The aepatch(1)
1380 download now accepts compat=N modifier, and there is a new Project
1381 Staff page.
1382
1383 * There is a new ae-cvs-ci(1) support script which may be used as an
1384 integrate_pass_notify_command to commit change sets to CVS in
1385 parallel.
1386
1387 * There is more documentation in the User Guide about using GNU Diff,
1388 particularly using diff -U to provide whole-file listings with "change
1389 bars" on the left hand side.
1390
1391 * The files view of the aeget(1) web interface now accepts options to
1392 control the page contents. The simplest view allows recursive fetch
1393 of project sources using wget or similar, with no extraneous links to
1394 confuse the results. Previous behavior is preserved by the aeget-
1395 generated links.
1396
1397 * You now receive a warning when you are seeing the short version of
1398 the error messages. These are terse and often quite cryptic. the long
1399 form of the error messages is to be preferred.
1400
1401 * The behaviour of the aedeu(1) command has changed slightly. When
1402 changes are in the being reviewed state, and Aegis has been configured
1403 to use the awaiting review state, the aedeu(1) command will now report
1404 an error. This is so that reviewers don't waste their time reviewing
1405 changes which have already been returned to the being developed state.
1406 Think of the change as "belonging" to the reviewer while in the being
1407 reviewed state.
1408
1409 * The aedist -send command has a new -compatibility option, use to
1410 indicate the version of the receiving aedist program. This, in turn,
1411 selects the features which may be added to or omitted form the
1412 generated .ae file.
1413
1414 * There is a new config file usage, and a corresponding aenf
1415 -configure command line option. It is now possible to move project
1416 configuration files. It is now possible to remove project
1417 configuration files, provided there is at least one left. The
1418 aeimport(1) command now avoids files which have the same name as the
1419 default project configuration file ("aegis.conf" or "config") and will
1420 use something else.
1421
1422 * The aeipass(1) command now adds a symlink from the delta directory
1423 to the baseline once it has been integrated. This helps lots of
1424 (idiotic) compilers which insist on burying absolute paths into
1425 executables.
1426
1427 * It is now possible to assign to some project configuration file
1428 array fields more than once. This can be useful where the
1429 configuration file is split into several pieces on several branches.
1430
1431 * The source language has been changed from C to C++. Future releases
1432 will take advantage of this.
1433
1434 * Several bugs have been fixed in the aeget(1) web interface where it
1435 would display "-42" instead of "0" for changes and branches numbered
1436 zero.
1437
1438 * A bug has been fixed in the aed(1) command when merging files which
1439 have been renamed. It now recognises they need merging.
1440
1441 * A bug has been fixed in the aenf(1) command. It now correctly
1442 ignores difference files when given a directory name.
1443
1444 * A bug has been fixed in aedist(1) where one of the aegis -new-file
1445 commands was missing a -no-template argument. Under some
1446 circumstances, this resulted in change sets which could not be aedist
1447 -received.
1448
1449 * A bug has been fixed in the way invalid sequences of multi-byte
1450 characters are handled by the internationalization code. This
1451 potentially affected all reports, listings and error messages. The
1452 symptom was that aeannotate listings could sometimes have a blank
1453 source code column.
1454
1455 * A bug has been fixed in the aepatch(1) command. It was creating
1456 empty patches for some changes in completed project branches. This
1457 also affected aedist -send and aecp -delta and aecp -rescind in some
1458 cases. It was caused by a subtle flaw in the non-detailed case for
1459 the project_file_roll_forward function.
1460
1461 * A bug has been fixed in the handling of the MANPATH enviromnet
1462 variable by the profile and cshrc scripts.
1463
1464 * A bug has been fixed in the aedist -receive and aepatch -receive
1465 commands has been fixed. There were cases where these commands could
1466 access off the end of an array and SEGFAULT.
1467
1468 * A bug has been fixed in the aede(1) command when it received pre-
1469 config-usage change sets. It used to try to remove the last project
1470 configuration file, which is a fatal error, and made it impossible to
1471 receive the change set.
1472
1473 * A bug has been fixed which caused the aetar(1) command to hang
1474 (actually, any thing which consulted LDAP or NIS) because the reserved
1475 symbol "send" was being overloaded. The reserved symbol "clone" was
1476 also being overloaded. Both have been fixed.
1477
1478 * A bug has been fixed which caused the aedist(1) command to reprt the
1479 wrong error when the input file did not exist.
1480
1481 * A bug has been fixed in the aenbru(1) command which made project
1482 aliases disappear.
1483
1484 * A bug has been fixed in the aede command. It would fail with new
1485 build files already in the baseline.
1486
1487 Version 4.16 (14-Jan-2004)
1488 * There is a new aecp -keep option, causing aecp(1) not to overwrite
1489 file contents in the development directory.
1490
1491 * The aedist -receive option now understands changing the type of a
1492 file.
1493
1494 * It is now possible to specify a URL to the -file option on the
1495 command line of aedist(1), aepatch(1) and aetar(1). The data will be
1496 downloaded and applied.
1497
1498 * More work has been done towards making the code compilable by a C++
1499 compiler.
1500
1501 * The project list (see ael(1), aeget(1), etc) is now sorted in a
1502 slightly more natural way, as are the version statistics at the end of
1503 an aeannotate(1) listing.
1504
1505 * A bug has been fixed in aede(1) for branches, where Aegis would
1506 complain about build source files (created by the aenf -build command)
1507 being out-of-date. This, of course, was difficult or impossible to
1508 fix, and unnecessary because the next build would fix them.
1509
1510 * A bug has been fixed in the aecp -independent command, where it did
1511 not preserve the execute bit, nor honour the user's umask.
1512
1513 * The missing aemt and aemtu alias ve been added to the profile.
1514
1515 * More detail has been added to aepconf(5) detailing how to create the
1516 project configuration file for the first time.
1517
1518 * A bug has been fixed in aedist(1) and aepatch(1) which would cause
1519 an assertion failure (or segfault) when you tried to aedist -send
1520 -delta -es files which did not exist at that delta.
1521
1522 * A bug has been fixed in aedist(1) and aepatch(1) which caused an
1523 assert failure (or segfault) when you tried to send a file which had
1524 been created and removed in a branch, and after the branch was
1525 integrated only a remove record exists in the parent branch.
1526
1527 * The problem with test 134 failing has been fixed.
1528
1529 * A bug has been fixed in aeipass(1) which prevented changing a file's
1530 usage from being as straight-forward as it should have been.
1531
1532 * The source RPM (and the spec file) now has Build Prequisites
1533 specified.
1534
1535 * The -Change option now accepts more than just a change number. It
1536 now accepts many forms similar to those used by the ${version}
1537 substitution, allowing its output to be used directly as command line
1538 input; forms such as -c 1.2.C34 and -c=5.6.D78 are now understood to
1539 imply a -branch option as well as either -change or -change-from-
1540 delta, respectively. In addition, you may prepend a project name, to
1541 imply the -project option as well; form such as -c aegis.4.15.C28 are
1542 understood.
1543
1544 * The aemeasure(1) program now also generates Halstead metrics.
1545
1546 * A bug has been fixed in the symbolic link handling code. In some
1547 cases it would report "multiple user permissions (bug)" and not
1548 complete correctly.
1549
1550 * A bug has been fixed in the test of aedist(1) for moved files.
1551 There was nothing wrong with aedist(1), the test itself was broken.
1552
1553 Version 4.15 (17-Nov-2003)
1554 * A bug has been fixed in "ael cf". It used to fail an assertion when
1555 there were no files in the change.
1556
1557 * A bug has been fixed which caused aeipass to segfault when adjusting
1558 file modification time stamps in some circumstances.
1559
1560 * A bug has been fixed in the cross branch merging code. It would
1561 sometime erroneously complain about files no longer being in the
1562 baseline.
1563
1564 * A bug has been fixed which caused aedist(1) and aeannotate(1) to
1565 segfault. It was caused by the roll forward history mechanism
1566 ignoring some branches in some cases.
1567
1568 * A bugs has been fixed in the aenrv -Descend_Project_Tree option,
1569 which was free()ing a project twice, sometimes causing segfaults.
1570
1571 * The aeget CGI interface is now able to retrieve historical versions
1572 of files.
1573
1574 * The aeget CGI interface now has support for file metrics.
1575
1576 * The aeget CGI interface has been enhanced to provide more
1577 information about project files and change files: activity, conflicts,
1578 history.
1579
1580 * The aeipass(1) command now sets the AEGIS_INTEGRATION_DIRECTORY
1581 environment variable before running the integrate_pass_notify_command,
1582 so that you can add a symlink for compilers which insist on placing
1583 absolute paths into debugging information in object files.
1584
1585 * The aeget CGI interface has been enhanced to provide more
1586 information about project files and change files - activity,
1587 conflicts, history.
1588
1589 * The aeget CGI interface now reports more project information.
1590
1591 * The aeget CGI interface now has download links in many of its menus,
1592 allowing more and better downloads than the old aegis.cgi(1) script.
1593
1594 * The way aenf(1) and aent(1) work have been made more generous. It
1595 is now possible to aerm(1) a file and then aenf(1) or aent(1) the same
1596 file in the same change. This is useful for changing the type of a
1597 file. Previously this has to be done as two consecutive changes.
1598
1599 * The aecp -independent command has been enhanced to allow you to
1600 extract versions of built files (created with aenf -build and
1601 maintained at aeipass(1) time).
1602
1603 * Documentation has been added to aer(5) for the try/catch mechanism.
1604
1605 * There was a disagreement between the aereport(1), aeannotate(1),
1606 aedist(1), aefind(1), aeimport(1), aels(1), aepatch(1), aerect(1),
1607 aetar(1) and aexml(1) man pages and the commands themselves about the
1608 existence of the -version option. The commands now behave as
1609 documented.
1610
1611 * There is a new Project_Branch_Dates report, which may be used to see
1612 when branches of a project were begun and completed.
1613
1614 Version 4.12 (29-Sep-2003)
1615 * A bug has been fixed in aedist(1) where it handled moved files
1616 incorrectly.
1617
1618 * There is a new experimental aeget(1) program. It is a potentially
1619 faster, potentially more capable replacement for the aegis.cgi(1)
1620 script. At the moment it isn't, it's experimental.
1621
1622 * A bug has been fixed in aedist(1) where it would sometimes segfault
1623 when sending transparent files.
1624
1625 * Command completion now works for the aemt(1) and aemtu(1) commands.
1626
1627 * A bug has been fixed where the symbolic link farm could point to the
1628 wrong place when change files are transparent.
1629
1630 * Change file notification commands have been added for the aemt(1)
1631 and aemtu(1) commands. See aepconf(5) for more information.
1632
1633 * A bug has been fixed in aefind(1) command where it could report
1634 files which had been removed.
1635
1636 * A bug has been fixed in the aecp(1) command where it would scramble
1637 the aet -reg exemption.
1638
1639 * A bug has been fixed in the aede(1) command. The problem manifested
1640 as an aet -reg command which terminated early.
1641
1642 * There is a new aexml(1) command. You can now obtain various pieces
1643 of the Aegis database as XML. See aexml(1) for more information.
1644
1645 * The the new_file_command, copy_file_command and remove_file_command
1646 fields of the project config file are now defaulted correctly.
1647
1648 * Theer is a new $change_files substitution. See aesub(5) for more
1649 information.
1650
1651 * The project config file has a new architecture_discriminator_command
1652 field. Now you can use an arbitrary command (rather than uname(2)
1653 information) to determine the architecture. See aepconf(5) for more
1654 information.
1655
1656 * The Russian message translation has been updated.
1657
1658 * The German message translation has been updated.
1659
1660 * The ael(1) command now has a new incomplete listing. It lists
1661 changes between awaiting review and being integrated. inclusive.
1662
1663 * The ael(1) command now accepts arguments for the listings. The
1664 default-change, default-project, outstanding-changes and user-changes
1665 lists now accept a user name argument.
1666
1667 * The aemt(1) command now understand the -UNCHanged option, so that
1668 files which are in the branch, but unchanged from the deeper branch,
1669 may be made transparent.
1670
1671 * A bug has been fixed in the wecp(1) command where the -OverWrite
1672 option did not honor the presence/absence of the -ReadOnly flag.
1673
1674 * There is a new aeedit script. See aeedit(1) for more information.
1675
1676 * A bug has been fixed in the file history mechanism (as used by the
1677 -delta options, aeannotate(1), aedist(1), aepatch(1), etc) which did
1678 not correctly understand transparent files.
1679
1680 * The aeclean(1) command now touches all of the source sfiles. It
1681 also accepts a -NoTouch option.
1682
1683 * There is a new $change_files substitution. See aesub(5) for more
1684 information.
1685
1686 * The aeclean command now touches the source files as well. Use the
1687 now -no-touch option if you don't want this.
1688
1689 * There have been several improvements to the output of the aegis.cgi
1690 script and the web site.
1691
1692 * For Aegis developers: all of the K&R insulation has been removed;
1693 you now need an ANSI C compiler to build Aegis. Some preparation has
1694 also been done to get the source ready for a C++ compiler.
1695
1696 Version 4.11 (29-Jan-2003)
1697 * For Aegis developers: the developer build now uses sudo(8) to
1698 simplify and automate the tricky bit. The regular distribution build
1699 is unchanged.
1700
1701 * A bug has been fixed where the 'aet -reg' command could not find any
1702 tests to run, cause by inconsistencies in the view path handling for
1703 project file searches.
1704
1705 * A partial Romainian translation has been added.
1706
1707 * A Spanish localization has been added. It needs work by a human.
1708
1709 * The French localization has been improved.
1710
1711 * The aedist(1) command now preserves the executable bit on files.
1712
1713 * There is a new -descend-project-tree option for the aena(1),
1714 aera(1), aend(1), aerd(1), aeni(1), aeri(1), aenrv(1), aerrv(1) and
1715 aepa(1) commands, to apply the action to all descendant branches of
1716 the project.
1717
1718 * A bug has been fixed in tkaer(1) which stopped it working on some
1719 systems.
1720
1721 * The aeintegratq(1) command now copes better with changes leaving the
1722 awaiting integration state.
1723
1724 * A bug has been fixed in the aeimport(1) command which misunderstood
1725 RCS branches.
1726
1727 * A bug has been fixed where there aenf(1) command would use the new
1728 config file about to be created, which was almost always wrong.
1729
1730 * There is a new ${substr} substitution. See aesub(5) for more
1731 information.
1732
1733 * The aeclone(1) command now understands transparent files.
1734
1735 * The aecpu(1) command now restores test exemptions in some cases.
1736
1737 * There is a new aemeasure(1) command, which procudes simple file
1738 metrics for use with Aegis.
1739
1740 * There is a new project ancestors report.
1741
1742 * Trunk version number no longer have a leading dot.
1743
1744 * Command line completion now works for zsh(1).
1745
1746 * The aetar(1) command now preserves the executable bit on files.
1747
1748 * A bug has been fixed which caused aetar(1) to hang.
1749
1750 * The aereport(1) and aesub(1) commands now gave the same email
1751 address for users.
1752
1753 * The aeannotate(1) command now olny prints caption columns if their
1754 value changes. This highlights the differences, and is less
1755 distracting.
1756
1757 Version 4.10 (24-Dec-2002)
1758 * There is a new aemt(1) command, used to make branch files
1759 "transparent". This is like an aecpu(1) command for branches, but
1760 done through the agency of a change set.
1761
1762 Note: The behaviour of the view path in the presence of transparent
1763 files is complete, however full support for aecp -delta and reports is
1764 not. Support will be present in the next release. File transparency
1765 information stored by this release will be able to be used by aecp
1766 -delta and reports in the next release.
1767
1768 * There is a new aemtu(1) command, to undo the effects of the aemt(1)
1769 command.
1770
1771 * It is now possible to use the aeclone(1) command on changes in the
1772 awaiting development state.
1773
1774 * The problematics directory permissions check has been removed from
1775 the aeintegratq(1) command.
1776
1777 * A bug has been fixed in aecp(1) when retrieving deltas before files
1778 were removed.
1779
1780 * There are new ${split} and ${unsplit} substitutions for manipulating
1781 search paths (etc). See aesub(5) for more information.
1782
1783 * A bug has been fixed where test time stamps were not updated for
1784 batch tests which covered multiple architectures.
1785
1786 * The aedist(1) program now includes a change number, which will be
1787 used on receipt if possible. Note that this produces .ae files which
1788 are not backwards compatible; the -nopatch option will suppress
1789 inclusion of the change number in the archive.
1790
1791 * A German translation of Recursive Make Considered Harmful has been
1792 added, courtesy of CM Magazin.
1793
1794 * A bug with aeimport(1) and removed files has been fixed.
1795
1796 * A problem has been fixed with the transition case when a project
1797 changed from develop_end_action = goto_being_reviewed to
1798 goto_awaiting_review while having changes in the being reviewed state.
1799
1800 * A problem with long command lines has been fixed in the aedist
1801 -receive, aepatch -receive and aetar -receive commands.
1802
1803 * A problem with aeimport(1) and binary files has been fixed.
1804
1805 Version 4.9 (23-Oct-2002)
1806 * The aepatch(1) and aetar(1) commands now accept -add-path-prefix and
1807 -remove-path-prefix options, for manipulating the filenames when
1808 unpacking an creating a change set. The aepatch(1) documentation has
1809 been significantly improved.
1810
1811 * There is a new aecp -rescind option, which may be used to rescind
1812 (roll back) a completed change. See aecp(1) for more information.
1813
1814 * The Debian /etc/mailname file is now understood by the ${user email}
1815 substitution.
1816
1817 * There is a new project_gantt report, which produces comma-separated-
1818 value (CSV) output, for extracting data to import into Ms. Project.
1819 Unfortunately, Mr. Project does not yet know how to import CSV files.
1820
1821 * It is now possible to provide a comment to the aerpass(1) command,
1822 just as you always could to the aerfail(1) command.
1823
1824 * The aet(1) program now has a -progress option, to tell you where it
1825 is up to. See aet(1) for more information.
1826
1827 * The Russian error messages have been updated.
1828
1829 * The aeimport(1) program now understands the CVS Attic directory.
1830
1831 * There are new perl, PLural_Forms, capitalize, downcase and upcase
1832 substitutions. See aer(5) for more information.
1833
1834 * A work-around for the aeimport/delta bug has been added, for
1835 projects which were imported with the buggy aeimport.
1836
1837 * Aegis developers will need to upgrade to GNU Autoconf 2.53 or later,
1838 as the GNU Autoconf files have been updated to work with that version.
1839 This does not affect normal users.
1840
1841 * Many typos have been fixed in the documentation, and some
1842 improvements have been made.
1843
1844 * Some build problems have been fixed.
1845
1846 * Numerous improvements have been made to the web interface.
1847
1848 Version 4.8 (19-Aug-2002)
1849 * A bugs has been fixed in the aetar -receive command, where it
1850 incorrectly complained about shorty input files.
1851
1852 * Numerous changes have been made to the web interface. They now use
1853 cascading style sheets, have more navigation links, and inclde tarball
1854 downloads.
1855
1856 * Several build issues have been resolved.
1857
1858 * A bug has been fixed in the aeimport(1) command. The symptom was
1859 that the aecp -delta command misbehaved. The probelm was that the
1860 first delta needed a timestamp prior to the first change set taken
1861 from the import sets.
1862
1863 * A bug has been fixed in the aepatch -send command, where it would
1864 add Index lines for files with no differences.
1865
1866 * A bug has been fixed in the protect_development_directory = true;
1867 handling, where it would cause a "multiple user permissions setting"
1868 error message.
1869
1870 Version 4.7 (6-Aug-2002)
1871 * The aefind(1) command now has -resolve as the default. To get the
1872 previous behaviour, use the -NoResolve option.
1873
1874 * In the aeca -e and aepa -e commands, it is now possible to quote
1875 strings with at-signs (@) instead of double quotes. This type of
1876 string allows newlines within the string. See aegis(5) for more
1877 information.
1878
1879 * For the benefit of Aegis developers, there is now HTML documentation
1880 genaretd by Doxygen (if you have Doxygen installed). When developing
1881 an Aegis change, in your development directory, point your browser at
1882 doxygen-html/index.html. The common/str.h file is an example of the
1883 style desired, should you wish to contribute to the effort to get all
1884 of the header files suitably annotated. Also, the removal of the K&R
1885 C support has started, see the files in common/*.[ch] for examples.
1886 Also <varargs.h> is not longer used anywhere.
1887
1888 * The aedist(1) command has two new options, -patch and -nopatch,
1889 which may be used to control how and when aedist uses patches. See
1890 aepatch(1) for more information.
1891
1892 * A bug has been fixed inthe strncasecmp function. This only affected
1893 you if your system did not have a native version of this function.
1894
1895 * The aeca(1) command now accepts a -fix-architecture option. This
1896 option may be used to correct the architecture list of a change
1897 automatically.
1898
1899 * The aedist -receive command now runs the aeca -fixarch command when
1900 a change set arrives which modified the project config file. This
1901 should fix many of the "architecture not in project configuration
1902 file" problems when seeding new projects.
1903
1904 * Some deficiencies on the "How to Become a Developer " instructions
1905 have been addressed. The native Aegis build (but not the Makefile.in)
1906 now builds the "tags" and "TAGS" files so that it easier to navigate
1907 the sources.
1908
1909 * There is a new aetar(1) command. It may be used to send and receive
1910 tarballs as Aegis change sets. See aetar(1) for more information.
1911
1912 * Missing documentation on the aepconf(5) man page about the fine
1913 grained file change notification commands has been added.
1914
1915 * Some changes have been made to the Aegis web interface, with more
1916 back links. Also uses html2diff(1) if available.
1917
1918 * It is now possible for reviewers to use the aet(1) command to run
1919 tests against the changes they are reviewing.
1920
1921 * The command completion for the aet(1) command now works better; it
1922 now completes project test names as well as change test names.
1923
1924 * The aepatch(1) and aedist(1) commands now cope with a wider range of
1925 input vagueries, including some weird things done by MTAs and more
1926 content transfer encoding synonyms.
1927
1928 Version 4.6 (11-Jul-2002)
1929 /* vim: set ts=8 sw=4 et : */
1930
1931 * The aeipass(1) command now sleeps, rather than issue the rather
1932 alarming "warning: file modification times extend into the future"
1933 message. There is a new project config file field, build_time_adjust,
1934 which controls this behaviour, but it is strongly recommended that you
1935 leave it on the default setting.
1936
1937 * There is a new ${base_relative} substitiontion, almost the inverse
1938 of ${source}. See aesub(5) for more information.
1939
1940 * A bug has been fixed with the aeca and aepa -edit option. It was
1941 caused by the change in the previous release which added editor user
1942 preferences.
1943
1944 * A few build problems have been fixed.
1945
1946 * A bugs has been fixed in the tkaepa script. It would sometimes fail
1947 the "OK" button.
1948
1949 * A bug has been fixed in the "user changes" list. It was not
1950 explicitly passing the project name when it accessed the list of user
1951 owned changes.
1952
1953 Version 4.5 (26-Jun-2002)
1954 * It is now possible to set pager and editor preferences in your
1955 .aegisrc file. See aeuconf(5) for more information.
1956
1957 * A bug in aepatch -receive has been fixed, where it would sometimes
1958 misapply a patch. The search used to determine the patch position
1959 (when it needs to be offset) has been improved.
1960
1961 * The aedist(1) and aepatch(1) commands now accept -delta and -delta-
1962 date options.
1963
1964 * The integrate_q.sh shell script has been replaced by the
1965 aeintegratq(1) Perl script. It can now lots more useful things. See
1966 aeintegratq(1) for more information.
1967
1968 * A bug has been fixed in the date parsing code (used by the -delta-
1969 date option). There was the potential to mis-calculate dates after
1970 February 2000.
1971
1972 * A bug has been fixed in aepatch -receive, where it sometimes
1973 complain of "no uudecode data in file", for files which did not
1974 require uudecoding.
1975
1976 * There are more change-specific substitutions available. See
1977 ${change ...} within aesub(5) for more information.
1978
1979 * The aepatch(1) command now understands ordinary diff listings, in
1980 addition to the context and unified differences it already understood.
1981
1982 * There is a new aeannotate(1) command, used to produce annotated
1983 source file listings. See aeannotate(1) for more information.
1984
1985 Version 4.4 (12-May-2002)
1986 * It is now possible to specify system wide user preferences. See
1987 aeuconf(5) for more information.
1988
1989 * The aepatch(1) command now understands the quoted-printable content
1990 transfer encoding.
1991
1992 * The aepatch(1) is more robust when receiving patches that want to
1993 use a change number that has already been used.
1994
1995 * The Dutch error message translations have been updated.
1996
1997 * There was a problem with the way the install directory for aegis.cgi
1998 was being determined. The aegis.cgi script is now installed into
1999 $bindir by default. There is a aegis.cgi.i helper script to find your
2000 web server's cgi-bin directory and copy aegis.cgi there, but this is
2001 not done automatically. See aegis.cgi(1) for more information.
2002
2003 * Another change has been made to cope with still more Bison changes.
2004
2005 * A French error message translation has been contributed.
2006
2007 * A problem with aedist -receive has been fixed, where the new
2008 configuration_directory could interact with the order of file
2009 creation.
2010
2011 * A big has been fixed in the uuencode output, which could
2012 occasionally miss the "begin" line.
2013
2014 * A bug has been fiexed in the context diff parsing, where it would
2015 get the last hunk wrong if it was a hunk which deleted lines, due to
2016 incorrect end-of-file handling. This affected both aepatch -receive
2017 and aedist -receive, because aedist(1) now includes patches for better
2018 merge behaviour.
2019
2020 * Numerous issues concenting the new GNU Gettext versions have been
2021 addressed.
2022
2023 * A number of Solaris build problems have been fixed, and one genuine
2024 bug buried in the warning messages (change completion time was wrong
2025 for changes not yet completed).
2026
2027 * More information about the "mod times extend into the future"
2028 warning issued by aeipass(1) has been added to the man page.
2029
2030 * Some improvements have been made to the web pages.
2031
2032 Version 4.3 (16-Apr-2002)
2033 * The notification shell scripts all now use sendmail consistently.
2034 Autoconf support for locating sendmail is not yet present.
2035
2036 * A problem which caused a core dump on Cygwin has been fixed.
2037
2038 * The aede(1) command now gives a more informative error message when
2039 files in a branch require merging.
2040
2041 * There is now an interconnection between the aeib(1) and the aeb(1)
2042 command. When you specify a minimum integrate begin, you also get a
2043 minimum integrate build.
2044
2045 * A bug has been fixed which caused aenf(1) to dump core if you used
2046 the file name accept pattern.
2047
2048 * The executability or otherwise of each source file is now
2049 remembered. If any of the execute bits are set at aede(1) time, the
2050 file is remembed as executable. When an executable file is copied
2051 into an integration directory or development directory, all of the
2052 execute bits (minus the project umask) are set.
2053
2054 * A bug has been fixed in the "aecp -ind" command, where it would give
2055 a "there is no development directory" error when you tried to extract
2056 a file version from history of a completed branch.
2057
2058 * Many of the web pages have been updated to provide a more consistent
2059 and intuitive interface. It is also possible to get patches, via the
2060 aepatch command.
2061
2062 * Interrupts are now ignored during database writes. This should
2063 alleviate some of the problems induced by Ctrl-C. (It would be nice
2064 to find the actual cause.)
2065
2066 * The aedist(1) command has been enhanved to include a patch fragment
2067 for modified files, as well as the whole source files. On receipt, if
2068 the patch applies cleanly the whole source is ignored. If the file
2069 does not exist at the receiving end, or the patch does not apply
2070 cleanly, the whole source file is included. The incrimental cost is
2071 very low, because all of the patch pieces appear in the source file,
2072 and thus compress exceptionally well. The net result is to greatly
2073 reduce merge costs on recipt of .ae files. However, this change to
2074 aedist(1) is only backwards compatiple. Previous versions of
2075 aedist(1) will give a fatal error if they see a .ae file generated by
2076 this version of aedist(1).
2077
2078 * File name resolution is now more robust in the face of permission
2079 problems.
2080
2081 * Some error message translations have been improved.
2082
2083 * A small bug has been fixed in the history labeling.
2084
2085 * You can now use shell (#) and C++ (//) comments in your project
2086 config file, if you prefer them to C comments.
2087
2088 * A bug has been fixed in the maintenance of the symlink farm. It
2089 would often fail to make all of the necessary symlinks.
2090
2091 * There is a new project attribute, protect_development_directory,
2092 which when true causes the development directory to be read-only in
2093 states between awaiting_review and being_integrated.
2094
2095 * A problem has been fixed where some reports would fail is users had
2096 made their .aegisrc files unreadable.
2097
2098 * A number of small build problems have been fixed.
2099
2100 * Command completion has been added for the aeb(1), ae_c(1), aeca(1),
2101 aecd(1), aechown(1), aeclean(1), aecp(1), aecpu(1), aedb(1), aedbu(1),
2102 aede(1), aedeu(1), aedn(1), aeib(1), aeibu(1), aeipass(1), aeifail(1),
2103 aena(1), aencu(1), aend(1), aenf(1), aenfu(1), aeni(1), aenrv(1),
2104 aentu(1), ae_p(1), aepa(1), aera(1), aerb(1), aerbu(1), aerd(1),
2105 aerfail(1), aeri(1), aerm(1), aermu(1), aerpass(1), aerpu(1), aerrv(1)
2106 and aet(1) commands. More will be added in the future.
2107
2108 * It is now possible to specify a directory to contain project config
2109 file fragments. These fragments are then read in as if catenated as a
2110 single project config file. See aepfonf(5) for more information.
2111
2112 Version 4.2 (26-Feb-2002)
2113 // vim: set ts=8 sw=4 et :
2114
2115 * There is a new "-No-Page-Headers" option which may be used to
2116 suppress page and column headers in listings and reports.
2117
2118 * There is a new "aecp -delta-from-change" option, allowing the
2119 specification of a delta number by specifying the number of a
2120 completed change.
2121
2122 * The "aecp -ind -delta" command now omits files which did not exist
2123 at the given delta.
2124
2125 * There is a new history_label_command which may be used to label your
2126 history files at each integration. See aepconf(5) for more
2127 information.
2128
2129 * The code which guesses which change you are working on, based on
2130 your current directory, has been enhanced to cover far more cases. It
2131 can recognize the integration directory, too.
2132
2133 * There is a new Change_Log report, which generates reports in the
2134 style of common Internet change logs.
2135
2136 * The web interface is now able to show you file differences between
2137 deltas.
2138
2139 * A bug has been fixed in the "aecp -delta" command (for all delta
2140 variants). The problem occurred when you wanted to copy a version of
2141 the file before the file has been modified by the branch (but it
2142 wasonly a problem for files modified later in the branch, files never
2143 modified by the branch were OK). As a side-effect of the bug fix,
2144 "aecp -delta" now goes significantly faster (N times faster, where N
2145 is the number of files you are copying).
2146
2147 * Build problems caused by new Bison releases have been fixed.
2148
2149 * A number of oversights in handling the new awaiting review state
2150 have been corrected.
2151
2152 * The ${expr} substitution has been enhanced to include modulo,
2153 logical not and the six relative operators. All using the usual C
2154 syntax and precedences. See aesub(5) for more information.
2155
2156 * There is a new ${switch} substitution, see aesub(5) for more
2157 information.
2158
2159 * A Russian localization of the error messages has been contributed.
2160
2161 * A bug has been fixed in the "aecp -output" code, which sometimes
2162 incorrectly created directories.
2163
2164 * A bug has been fixed in the symbolic link maintenance code. It now
2165 repairs links which point to a file which is too deep in the ancestor
2166 tree, and has been subsequently replaced. It now uses a single pass,
2167 rather than two passes.
2168
2169 * The change_file_command field of the project config file is now
2170 available at a finer granularity. There are 8 new commands (the
2171 copy_file_command, copy_file_undo_command, new_file_command, new_-
2172 file_undo_command, new_test_command, new_test_undo_command, remove_-
2173 file_command and remove_file_undo_command fields) which may be
2174 individually configured. They default to the previous behaviour, for
2175 backwards compatibility. See aepconf(5) for more information.
2176
2177 * A bug has been fixed in the aepatch(1) command, which prevented it
2178 form constructing patches for changes on completed branches.
2179
2180 * The aeipass(1) command now issues an error message if the build
2181 changes a source file. (Previously it erroneously reported that the
2182 history tool had done the damage.)
2183
2184 * A bug has been fixed in "aecpu -unchanged" in the case where the
2185 change had no files. (It tried to uncopy a file called the empty
2186 thring.)
2187
2188 * The missing aemvu(1) man page has been added.
2189
2190 Version 4.1 (6-Dec-2001)
2191 Note: You will need to upgrade all of your Aegis machines
2192 simultaneously for this release. It introduces database changes which
2193 older Aegis release will not be able to cope with.
2194
2195 * A bug has been fixed in aed(1), which tried to access a nonexistent
2196 files under some circumstances.
2197
2198 * A bug has been fixed in aede. When two changes created the same
2199 file, the second change received a misleading message from aede.
2200
2201 * There is a new German message translation.
2202
2203 * There is a new tkaepa(1) command, giving GUI access to the aepa(1)
2204 command.
2205
2206 * The aeclone(1) command now runs the change_file_command and
2207 project_file_command from the project config file. This is in order
2208 to be more consistent withthe aecp(1) command.
2209
2210 * The "time safe" property described by Damon Poole mostly applies to
2211 Aegis' operation. One last area related to future times and the
2212 -delta options. There is now a warning in the instance where non-
2213 time-safe behavior may occur.
2214
2215 * The history_put_command and history_create_command field of the
2216 project config file are strongly recommended to be identical. It is
2217 now possible to only specify the first one, and the second will
2218 default to it.
2219
2220 * A bug has been fixed in the aeib(1) command, when the link_-
2221 integration_directory field in the project config file is false.
2222
2223 * There is a new awaiting review state, and new aerb(1) and aerbu(1)
2224 commands to go with it. It is now possible to configure your project
2225 to have changes enter the awaiting review state after aede(1), rather
2226 than the being reviewed state. It is also possible to skip the review
2227 states altogether and immediatelt enter the awaiting integration
2228 state.
2229
2230 * There is a new modeP field for the specification of architectures in
2231 the project config file. The means that you can designate some
2232 architectures as mandatory and some as optional. See aepconf(5) for
2233 more information.
2234
2235 * The aenbr(1) command now populates the new branch's baseline with
2236 symlinks if the project config file is set so that they would remain
2237 after an integration build. This is more consistent with the aedb(1)
2238 behaviour in the same situation.
2239
2240 * There have been a number of changes to the web pages, accompanying
2241 the move to SourceForge, along with some corrections.
2242
2243 * There is a new aels(1) command, which may be used to list
2244 directories, annotated with Aegis' file attribute information.
2245
2246 * The aeclean(1) command now accepts the -Keep option, so that it
2247 reports what it would do, rather than actually do anything.
2248
2249 * A problem with the CGI interface, which reported a bug to the user,
2250 has been fixed.
2251
2252 Version 3.29 (31-Oct-2001)
2253 * The aeimport(1) command can now import CVS repositories which
2254 contain binary files.
2255
2256 * There is a new ${Read_File_Simple} substritution. It is like
2257 ${Read_File}, but is does not substitute into the file contents.
2258
2259 * The aecp -independent command now accepts a -output option.
2260
2261 * There is a new ${environment} substitution, allowing you to access
2262 environment variables within substitutions. See aesub(5) for more
2263 information.
2264
2265 * There is a new ${project-specific} substitution, allowing you to
2266 define project specific value to be inserted into various commands.
2267 See aesub(5) and aepconf(5) for more information.
2268
2269 * The aefind(1) command now works with completed change. It searches
2270 the baseline.
2271
2272 * A problem with using the ${source} substitution within the
2273 integrate_pass_notify_command has been fixed. It was getting the path
2274 wrong.
2275
2276 * The batch test command is only ever invoked of there are tests to
2277 run. (This fixes a problem where it would simethimes run with no
2278 arguments.)
2279
2280 * The web reports now bahave themselves when the names of non-longer-
2281 here user appear.
2282
2283 * A number of errors and typos have been fixed in the documentation.
2284
2285 Version 3.28 (21-Aug-2001)
2286 * There is a new aepatch(1) program, which may be used to send an
2287 receive changes using the classic open source patch format. See
2288 aepatch(1) for more information.
2289
2290 * The general output mechanism (for listings and reports) has been
2291 rewritten to be significantly faster.
2292
2293 * Numerous small things have been improved in and around the
2294 ./configure script and the Makefile.
2295
2296 * The web interface has been improved. It should result in better
2297 save file locations being suggested for .ae files. cgi vs downloads
2298
2299 * Aegis now takes a baseline read lock during tests, so that the
2300 baseline doesn't move out from under your tests, causing mysterious
2301 failures.
2302
2303 * A bug has been fixed in the subst function of the report generator.
2304 It was free()in a string twice.
2305
2306 * There is a new ${developer email} substitution, for inserting users'
2307 preferred email addresses into commands. Useful for the state
2308 transition notification commands.
2309
2310 * There is now more text in the aepconf(5) man page, explaining how
2311 each of the pattern fields are applied to file names. It is now
2312 explicit when patterns applied to whole file names, and when they only
2313 applied to path name elements.
2314
2315 * A segfault has been fixed in the removed file whiteout code.
2316
2317 * The aesub $source substitution now works in combination with the
2318 -BaseLine option.
2319
2320 * The aegis.spec file now mentions the executables again.
2321
2322 Version 3.27 (26-Jun-2001)
2323 * A bug has been fixed in the aesub(1) $delta substitution. It now
2324 works correctly for completed changes.
2325
2326 * A bug has been fixed in aermu(1), when used in combination with the
2327 symlink farm. It no longer complains about "multiple user permissions
2328 set".
2329
2330 * A serious bug has been fixed in the locking code. The bug meant
2331 that only one build per project could happen at a time. (There was
2332 never any risk of repository or Aegis database damage.)
2333
2334 * A bug has been fixed in the aedist(1) command. It failed to
2335 correctly recognise files produced using the aedist -send -no-ascii-
2336 armour option.
2337
2338 * The aecpu -unch command now deals more gracefully with files which
2339 have been removed from the project in the mean time.
2340
2341 * There is a new change file history listing, similar to the file
2342 history report. It is much faster, much more informatuve, and less
2343 selective.
2344
2345 Version 3.26 (21-Jun-2001)
2346 * Some optimizations have been done to the input parsing. Depending
2347 on your architecture, this will or won't be noticable.
2348
2349 * The locking has been changed so that aeipass(1) takes precedence
2350 over new development builds, so that there is a guarantee that
2351 aeipass(1) will succeed in finite time. Current development builds
2352 will run to completion, but new development builds will block until
2353 the aeipass(1) gets the basline lock and subsequently completes.
2354
2355 * The "file format error" bug in aedist(1) has been fixed.
2356
2357 * There is a new project activity report, which is useful to project
2358 leaders to see what has been happing in the project, sorted by time
2359 and then by user name.
2360
2361 * Aegis can now transparently cope with binary files, even if the
2362 history tool cannot. It does this by using a MIME encoding for binary
2363 files. (This can be configured away, if your history tool correctly
2364 handles binary files.) See aepconf(5) and the User Guide for more
2365 information.
2366
2367 * There is a fix for the "file unrelated" error commonly seen on
2368 Solaris and BSD when combined with an automounter, in come cases. It
2369 relies on the bash(1) behaviour which sets the $PWD environment
2370 variable. (GNU libc does this internally to the getcwd(3) function,
2371 not all libcs do.)
2372
2373 * The aer(1) report generator now has access to the project config
2374 file fields, through a new config field in the report generator's
2375 concept of the project state.
2376
2377 * There is a new aer(1) $comdir substitution, which gives access to
2378 the shared state directory, configured at build time.
2379
2380 * The aebuffy(1) now accepts a project name on the command line.
2381
2382 * There is a new build_covers_all_architectures field in the project
2383 config file, so that you can tell Aegis that the build tool builds all
2384 architectures wimultaneouasly. See aepconf(5) for more information.
2385
2386 * The tkaer(1) command now has a comment editor, so that you can edit
2387 your review fail comments from within the GUI.
2388
2389 * A bug has been fixed which was caused aenbru(1) to delete one
2390 directory level too deep when the branch was removed.
2391
2392 * There is a new getuid() function in the report generator.
2393
2394 * This change fixed a bug in aede(1) where it would not allow a
2395 branch, created with aeimport(1), with new files which had
2396 subsequently been modified to end development, when those files had
2397 never existed in the baseline.
2398
2399 * It is now possible for project administrators to nominate the
2400 developer in the tkaenc(1) dialog. You are presented with a pick
2401 list.
2402
2403 * There is a new aesub(1) $history_directory substitution. This may
2404 be used in scripts which access the history tool's files directly.
2405
2406 * There is a new change_file_undo_command field of the project config
2407 file. It is similar to the change_file_command field (it defaults to
2408 it if unset), but is executed by all of the "undo" file commands.
2409
2410 * The aede(1) command no longer cancels your build and test time
2411 stamps. This means that you don't need to re-build if you don't
2412 change anything, after aedeu(1) or aerfail(1).
2413
2414 Version 3.25 (3-Apr-2001)
2415 * It is now possible to remove users who's accounts have been removed
2416 (the affects the aera(1), aerd(1), aeri(1) and aerrv(1) commands).
2417
2418 * There is a new -description-only option to the aeca(1) command.
2419 This is useful for editing only the descrioption, and also for use
2420 within scripts.
2421
2422 * The -file option has now been generalized to accept "-" to mean the
2423 standard input. This is useful in scripts.
2424
2425 * There is a new aebuffy(1) command, which may be used to see what
2426 changes a user has outstanding. It needs X11 (Tk/Tcl) to work. Named
2427 after the xbuffy(1) command.
2428
2429 * The tkaer(1) command now presents you with a "detail" button, so
2430 that you may see the change details when pwerforming a review.
2431
2432 * The restriction that placed the function name at the start of the
2433 command line (e.g. the "-cp" of aecp) has been relaxed. This may now
2434 appear anywhere on the command line.
2435
2436 * The Bourne / BASH shell aliases have been improved, so that they now
2437 preserve quoting of special characters and white space. This dates
2438 from the earliest days of Aegis. It's wonderful to have it fixed at
2439 last.
2440
2441 * There is a new aemvu(1) command, which may be used to undo the
2442 effects of an aemv(1) command. This should prove less confusing than
2443 the previous method.
2444
2445 * A big has been fixed in the aemv(1) command. It failed to accept
2446 the -base-relative option, even though it was documented to do so.
2447
2448 * A bug has been fixed in the quote_tcl() report function. Is fixes
2449 the problem with getting the dollars sign into descriptions when using
2450 the tkaenc(1) command.
2451
2452 * The SCCS section of the User Guide and example configurations have
2453 been updated and confirmed to work correctly, however I've only tested
2454 this with GNU CSSC.
2455
2456 * A bug in the file name handling has been fixed. This was most
2457 obvious around the aecpu(1) command when you had create_symlinks_-
2458 before_build turned on and you were using an automounter, but it
2459 occured at other times as well.
2460
2461 * The aeimport(1) command now understands the SCCS format. If the
2462 comments in GNU CSSC are accurate, this also means you can import
2463 BitKeeper repositories, however I am unable to confirm this.
2464
2465 Version 3.24 (10-Mar-2001)
2466 * There is a new aeimport(1) command, which may be used to import CVS
2467 archives into Aegis.
2468
2469 * The cross branch merge has been improved so that it uses an earlier
2470 version number than it was using, resulting in a more sensable merge.
2471
2472 * A bug has been fixed in the ${quote} substitution which incorrectly
2473 quoted the exclamation mark (!). Unfortunately, quoting isn't at all
2474 simple, because you can't exclusively use single quotes or double
2475 quotes or backslash.
2476
2477 * There is now a ${change description} substitution, allowing you
2478 access to the brief description of a change in a substitution. (The
2479 suggested RCS history command have been changed to use it.)
2480
2481 * A Dutch localization of the error messages has been contributed.
2482
2483 * Project administrators can also use the aeibu(1) command. Handy for
2484 abandoned integrations which inconvenience everyone else.
2485
2486 * There is a new project config file field, called build_covers_all_-
2487 architectures, which allows you to tell Aegis that your build process
2488 can cover all architectures simultaneously.
2489
2490 * The ${quote} substitution has been fixed to correctly quote more
2491 characters. It now prefers the single quote (but is is npt possible
2492 to use this exclusively).
2493
2494 * The web site now uses PDF files for documentation, rather than
2495 gzipped PostScript. This was for lots of reasons, including the fact
2496 theat many folks couldn't work out how to print them, and also IE
2497 decompressed them "for free" but left the .gz suffix.
2498
2499 * The report generator, aereport(1), can now access fields of the
2500 .aegisrc file. This is important for accessing the preferred email
2501 address in various reports. * The "aecp -delta" command now adds
2502 removed files to the change as removed files instead of adding them as
2503 copied-but-empty files. This should make reproducing projects more
2504 accurate, but you need to use aermu(1) to get rid of them ,rather than
2505 aecpu(1).
2506
2507 * The aedist program now adds a "Content-Disposition" header to the
2508 files it generates. This means MIME programs will unpack it into a
2509 correctly named file more often.
2510
2511 Numerous build problems have been fixed, both for Unix and for Cygwin
2512 (Windows). There have benn some test script improvements, too.
2513
2514 Contributions have started to roll in using the "aedist" format. This
2515 is very encouraging. The instructions for how to do this are
2516 contained in the "Howto", in the Developer section.
2517
2518 Version 3.23 (29-Oct-2000)
2519 * A bug has been fixed which caused the report generator change_number
2520 function to give garbage answers for change number zero (fortunalely,
2521 not very common).
2522
2523 * There is a new mtime function in the report generator.
2524
2525 * There is a new aecomp utility, which may be used to compare two
2526 active changes, using tkdiff.
2527
2528 * A bug in "aesub ${dd}" which reported the wrong directory when
2529 applied to branches, has been fixed.
2530
2531 * The project config file now contains two new fields, create_-
2532 symlinks_before_integration_build and remove_symlinks_after_-
2533 integration_build, which may be used to better control the behavior of
2534 the symlink farm at integration time. (Default behavior is backwards
2535 compatible.)
2536
2537 * A new utility called tkaer has been contributed. It is for
2538 reviewing, and shows you lists of files. When you click on one, it
2539 launches tkdiff(1) to examine it. You're going to like this one,
2540 folks!
2541
2542 * The aedist -receive command now preserves the testing exemptions, if
2543 possible.
2544
2545 * A problem with very very large test runs and the -no-persevere
2546 option has been fixed.
2547
2548 * The aenf(1) and aent(1) commands now accept -template and -no-
2549 template options, to control the use of new file templates.
2550
2551 * A nasty Catch-22 in the aedist(1) command has been fixed, involving
2552 the (unnecessary) use of new file templates, when the actual template
2553 files don't yet exist in the -receive development directory.
2554
2555 Version 3.22 (13-May-2000)
2556 * Please Note: Some code has been added to Aegis to assist in
2557 diagnosing problems when restoring projects from backups. If you see
2558 a message "aegis: project-path: has been tampered with (fatal)" this
2559 means there are problems with the project file ownerships. The
2560 project owner needs to be >= AEGIS_UID (defaults to 100), and the
2561 project group needs to be >= AEGIS_GID (defaults to 10). Use chown -R
2562 and/or chgrp -R to fix these problems.
2563
2564 * The aesub(1) command now accepts the ${arch} substitution in
2565 combination with the -baseline option.
2566
2567 * A bugs has been fixed in the aedist -receive command, when one of
2568 the files was also locked for review.
2569
2570 * A bug in aeclone(1) has been fixed, where it dropped file move
2571 information.
2572
2573 * The aeib(1) command now correctly validates that youare actually
2574 allowed to do this integration. This may win the prize for the oldest
2575 Aegis bug.
2576
2577 * There is a new ${search_path_executable} substitution. See aesub(5)
2578 and aet(1) for more information.
2579
2580 * Line wrapping in reports works properly again for lines with no
2581 white space. The previous release broke it when the wide output
2582 generalization was added.
2583
2584 * The aet -nopersever option works again. The previous release broke
2585 it when the batch test support has implemented.
2586
2587 * A problem with the aeb(1) command which made it difficult to use
2588 with th symbolic link farm (in some cases) has been fixed.
2589
2590 * A new report is available from the web interface, showing a change-
2591 of-state histogram over time for all state transitions (not just the
2592 integrate pass transitions).
2593
2594 * A problem with the aenf(1) command which made it difficult to use
2595 with th symbolic link farm (in some cases) has been fixed.
2596
2597 * The aeipass(1) command now preserve file mod times across history
2598 updates, if the history tool gratuitously changes them.
2599
2600 * The Solaris and IRIX build problems (wputc, et al) has been fixed.
2601
2602 * Numerous documentation patches were received and have been applied.
2603
2604 Version 3.21 (12-Mar-2000)
2605 * A couple of minor bugs have been fixed in aedist, especially the
2606 problem with sending an baseline image while a change is being
2607 reviewed.
2608
2609 * A couple of bugs have been fixed in the tkae* commands, in
2610 partucular they no longer leave temporary files lying around.
2611
2612 * Lots of stuff has been added to the HOWTO: a cheat sheet, how to
2613 change a project's owner, how to use distributed development, how to
2614 become a developer.
2615
2616 * The problem which caused `aesub ${copyright_years}' to contain
2617 duplicates has been fixed.
2618
2619 * There have been Y2K fixes: the date parsing for the -delta-date
2620 option has been fixed, and the web page data has also been fixed.
2621
2622 * The aet(1) command can now run more than one test at once, if
2623 configured appropriately. This is of most use on systems with more
2624 than one CPU.
2625
2626 * The -UNFormatted option no longer truncates column values.
2627
2628 * The aesub(1) command now accepts the -baseline option, so that you
2629 can get project-specific substitution in shell scripts.
2630
2631 * A bug has been fixed in tkaenc(1) which gave incorrect testing
2632 ssttings. It now also tracks the project testing exemptions.
2633
2634 * A bug in aenf(1) has been fixed which allowed multiple instances of
2635 the same file to be created.
2636
2637 * A bug has been fixed which caused `aesub ${search_path}' to fail in
2638 some cases.
2639
2640 * A bug has been fixed in aenf(1) which allowed you to create the same
2641 file multiple times, corrupting Aegis' database and causing aede(1) to
2642 report mysterious errors. Use aenfu(1) multiple times to untangle
2643 things.
2644
2645 * Information has been added to the section 5 manual pages, detailing
2646 how to access state information from within the report generator.
2647 This should make writing report scripts a little easier.
2648
2649 * A bug has been fixed which caused Aegis to misbehave when launched
2650 by some versions of cron(8) or at(1).
2651
2652 Version 3.20 (19-Oct-1999)
2653 * The aeib command is now more robust about "foreign" files in the
2654 baseline (e.g. root-owned core files).
2655
2656 * A bug has been fixed in the ${administrator_list} substitution.
2657
2658 * A bug has been fixed in the aedist -delta option, which caused it to
2659 dump core.
2660
2661 * There is now a section in the History Tool chapter of the User Guide
2662 describing how to add checksums to your history files, in order to
2663 detect file corruptions. It is a general technique which applies to
2664 most history tools (including RCS).
2665
2666 * A bug has been fixed which caused aeclone to misbehave badly when
2667 dealing with removed files.
2668
2669 * There is now an embryonic "How To" document for Aegis. Please feel
2670 free to contribute subjects.
2671
2672 * You can now say "-BRanch -" as a synonym for the "-TRunk option, for
2673 those commands which accept it.
2674
2675 * The report generator now copes with more types of empty lists.
2676
2677 * A bug has been fixed which caused a core dump instead of a useful
2678 error message if you tried to create an alias with an illegal name.
2679
2680 * A bug has been removed which left undeletable branch aliases if a
2681 branch was removed.
2682
2683 * A bug has been fixed in aenbru which failed to remove the branch
2684 development directory .
2685
2686 * The aenf(1) command now behaves better when you do horrible things
2687 like turn the files you created into directories without telling Aegis
2688 first.
2689
2690 * A couple of small bugs have been fixed in the aenpa(1) command, both
2691 in error situations.
2692
2693 * A bug with the -interactive option has been fixed. It will actually
2694 ask you, now.
2695
2696 Version 3.19 (4-Aug-1999)
2697 * You can now run a command to generate new file templates if you
2698 want, rather than using a simple string substitution. See aenf(1),
2699 aent(1) and aepconf(5) for more information. The existing
2700 functionality is still there.
2701
2702 * There is a new ${SUBSTitute} substitution, which provides regular
2703 expression substitutions. This is useful in new file templates.
2704
2705 * A bug has been fixed which allowed aede of a branch when there were
2706 some kinds of outstanding changes.
2707
2708 * The automatic change number guessing has been improved slightly, and
2709 will cope with some more variation in the
2710 development_directory_template field.
2711
2712 * There are two new commands, aenpa(1) and aerpa(1) for creating and
2713 removing project aliases. This means that you can give project
2714 branches more meaningful names.
2715
2716 * There is a new aesub(1) command. It substitutes its arguments and
2717 prints them, rather like the echo(1) command. This is useful when you
2718 need access to the Aegis substitutions in a script.
2719
2720 * The command line option "--" is now understood. It means "the rest
2721 of the arguments on the command line are filenames or strings".
2722 Because this makes the options on the command line more "order
2723 sensitive" than usual, use with care.
2724
2725 * There is a new tkaenc(1) command, allowing you to create new change
2726 via a Tcl/Tk GUI. (And a problem with TCL special characters in
2727 description text has been fixed.)
2728
2729 * The aenf(1) command now does the right thing with directories named
2730 on the command line. In particular, you can now use "aenf ." to
2731 import whole directory trees.
2732
2733 * There is a new State-File-Name list type, useful when writing
2734 cookbooks or makefiles to keep a web page in sync with a change.
2735
2736 * There is a new ${capitalize} substitution, useful for putting in new
2737 file templates.
2738
2739 * A bug has been fixed which caused aeclean to delete the development
2740 directory of changes with no files.
2741
2742 Version 3.18 (8-Jul-1999)
2743 * A bug has been fixed which caused aecp -delta to dump core in some
2744 cases.
2745
2746 * A bug has been fixed which caused the create-symlinks-before-build
2747 functionality to create symlinks to deleted files.
2748
2749 * Still more typos and minor errors have been corrected in the
2750 documentation.
2751
2752 * The aerp(1) man page has been moved to aerpass(1). Similarly for
2753 aerfail(1), aeipass(1) and aeifail(1). This should make things easier
2754 for users to find the man pages.
2755
2756 Version 3.17 (22-Jun-1999)
2757 * Another aedist bug has been fixed - unfortunately it was introduced
2758 while trying to fix the last one.
2759
2760 * A Cygwin 20.1 portability bug has been fixed.
2761
2762 * There is a new ${dirname_relative} substitution. This is useful in
2763 new file templates, and also some configured commands.
2764
2765 Version 3.16 (15-Jun-1999)
2766 * There is a new tkaeca command. It is a GUI interface to the aeca(1)
2767 command, using Tcl/Tk.
2768
2769 * There are two new reports available: the Project-Branches and
2770 Project-Active-Branches reports may be used to query about branches
2771 within a project.
2772
2773 * A bug has been fixed in the aedist -receive duplicate suppression
2774 code. It was complaining about user permissions.
2775
2776 * A bug has been fixed in aeb(1), which did strange things if you
2777 tried to build an unbuildable change.
2778
2779 * There is a new -No-WhiteOut option for the aerm(1) and aemv(1)
2780 commands, letting you suppress the "whiteout" files, along with some
2781 explanation in the man page about why they are there. See aerm(1) for
2782 more information.
2783
2784 * The default value of the "maximum_filename_length" field of the
2785 project config file has been raised from 14 to 255. If your project
2786 depends on the old default value, you will need to set it explicitly.
2787
2788 * The aedist -receive command now accepts a -directory option, so you
2789 can specifiy the location of the development directory.
2790
2791 Version 3.15 (2-May-1999)
2792 * The "aedist -receive" command now accepts a -delta option, allowing
2793 a received change set to be applied to an historical version.
2794
2795 * There is now some information about managing super-projects and sub-
2796 projects in the Branching chapter of the User Guide.
2797
2798 * The aenpr(1) command now accepts a -keep option, so that you can re-
2799 attach projects moved after using the aermpr -keep command. See
2800 aenpr(1) for more information.
2801
2802 * The aenpr(1) command now accepts -edit and -file options, allowing
2803 you to specify project attributes when creating the project. See
2804 aenpr(1) for more information.
2805
2806 * If the project developers_may_create_changes attribute is true, the
2807 aencu(1) command now allows developers to destroy changes they
2808 created.
2809
2810 * There is a new add_path_suffix substitution, for manipulating search
2811 paths. See aesub(5) for more information.
2812
2813 * There are 3 new substitutions: ${bindir}, ${datadir} and ${libdir}.
2814 These are replaced by the ./configure options of the same name (or the
2815 values calculated, if none were given to ./configure). The old ${lib}
2816 substitution is deprecated in favour of the new ${datadir}
2817 substitution. See aesub(5) for more information.
2818
2819 * Some changes have been made which increases portability,
2820 particularly the Linux libc5 vs libc6 differences.
2821
2822 * Some changes have been made which increases portability,
2823 particularly for Windows NT. This isn't to say Aegis works under
2824 Windows NT yet, but it helps the porting efforts. Don't forget to run
2825 the mkpasswd and mkgroup utilities included in the Cygwin system.
2826
2827 Version 3.12 (26-Mar-1999)
2828 * The way the Apache configuration files are scanned for and read has
2829 been changed, to adapt to recent Apache changes. The ./configure
2830 script will now find it more often.
2831
2832 * The "aedist -receive" command has been enhanced to be more robust
2833 about change sets without headers (some browsers generously strip them
2834 all off.
2835
2836 * A bug has been fixed in the "aedist -receive" command which
2837 sometimes caused decompression failures. An unfortunate interaction
2838 with the Windows NT support caused CRLF sequences in the compressed
2839 data to be mangled in some cases.
2840
2841 * The wrong include file was being used for zlib. This has been
2842 fixed, so it should build more easily now.
2843
2844 * The way MANPATH is handled on Linux has been improved in the chsrc
2845 and profile commands. It will not over-ride /etc/man.config now.
2846
2847 * The aegis.cgi script has been made more robust in coping with aedist
2848 errors.
2849
2850 * The symlink_exception field of the project config file now accepts
2851 filename patterns, not simply literal filenames.
2852
2853 * There was a problem compiling with gcc 2.8, involving the <stdarg.h>
2854 header. This has been fixed.
2855
2856 Version 3.11 (17-Mar-1999)
2857 * The aet(1) command now accepts a -force option, forcing tests to be
2858 run, even if Aegis doesn't think they need to.
2859
2860 * The Aegis CGI interface has been enhanced so that you can download
2861 changes from the generated web pages listing the changes, using the
2862 aedist command.
2863
2864 * The aedist -send command now accepts a -no-ascii-armor option, which
2865 leaves off the MIME base 64 encoding. Useful for binary distributions
2866 and web servers.
2867
2868 * There is a new trojan_horse_suspect field in the project config
2869 file. This is used by aedist -receive to check for files which could
2870 be abused to carry Trojan horse attacks.
2871
2872 * The aedist -receive command now accepts a -trojan option which
2873 treats the incoming change set as suspect, and a -no-trojan option
2874 which treats the incoming change set as benign.
2875
2876 * The aedist -receive command now quotes filenames (if necessary) when
2877 executing commands, thus defending against filenames which contain
2878 semicolons.
2879
2880 * The aenbru(1) command has been implemented at last. At last! You
2881 no longer need to use the aedbu work-around.
2882
2883 * The aedbu(1) command now gives an error if you attempt to apply it
2884 to a branch.
2885
2886 * The aermpr(1) command may now be applied to a project with active
2887 branches, and will remove the branches as well (provided there are no
2888 active changes on any of the branches).
2889
2890 * The dos_filename_required and windows_filename_required fields of
2891 the project config file have been enhanced to reject the brain-dead
2892 Windows special filenames such as "aux" et al.
2893
2894 * The ${user} and ${project} substitutions have been enhanced to
2895 provide additional information when given an additional argument.
2896 Useful for file templates. See aesub(5) for more information.
2897
2898 * Several portability enhacements, notably the Windows filename
2899 incompatibility has been fixed, and also the Linux stdlib.h problem.
2900
2901 Version 3.10 (6-Mar-1999)
2902 * As of this release you must have zlib installed before you can build
2903 Aegis.
2904
2905 * There is a new reuse_change_numbers project attribute, letting you
2906 control whether aenc fills in holes in the change number sequence.
2907 Defaults to true if not set. See aepattr(5) for more information.
2908
2909 * There is a new integrate_begin_exceptions field in the project
2910 config file. This permits the user to specify file to be omitted when
2911 the integration directory copy/link is performed.
2912
2913 * The aet(1) command has been changed so that it does not exit with an
2914 error if you have a test exemption but no tests. This is no longer an
2915 error.
2916
2917 * There is a new aedist(1) command, which may be used to send and
2918 receive Aegis change sets via e-mail and the web.
2919
2920 * The aeclone(1), aenbr(1), aenc(1) commands now accept a -output
2921 option, a file to contain the automatically generated change number.
2922 This greatly assists in writing scripts. See the man pages for more
2923 information.
2924
2925 * The aent(1) command now accepts a -output option, a file to contain
2926 the automatically generated file name. See the man pages for more
2927 information.
2928
2929 * There is a new compres_database field in the project attributes,
2930 allowing the Aegis database to be stored in a compressed form (using
2931 the GNU Zip algorthm). Unless you have an exceptionally large
2932 project, coupled with fast CPUs and high network latency, there is
2933 probably very little benefit in using this feature. (The database is
2934 usually less than 5% of the size of the repository.) On slow
2935 networks, however, this can sometimes improve the preformance of file-
2936 related commands.
2937
2938 Version 3.9 (7-Feb-1999)
2939 * A bug in the merge command has been fixed. It no longer deletes all
2940 of your change source files if one of the merge commands fails.
2941
2942 * There is a new tkaegis command, using Tk/Tcl to give Aegis a GUI.
2943 Contributed by Graham Wheeler <gram@cdsec.com>. Please report tkaegis
2944 bugs and suggestions to Graham.
2945
2946 * The integrate pass command has been enhanced to cope with RCS and
2947 SCCS expanding keywords in source files (modifying the repository) on
2948 check-in. This can be ignored, or a warning can be issued, or it can
2949 be a fatal error (this is the default). See aeipass(1) for more
2950 information.
2951
2952 * The worked example in the User Guide has (finally!) been updated to
2953 use the new branch numbering. Numerous spelling errors have been
2954 corrected.
2955
2956 * The developer section of the worked example chapter now also
2957 includes discussion of some common questions raised by folks
2958 evaluating Aegis. It covers insulating development directories from
2959 the baseline, partial check-in and collaboration.
2960
2961 * The aesub(5) man page now brings attention to the fact that the
2962 ${Copyright_Years} substitution contains spaces. You often need to
2963 quote it.
2964
2965 * The man pages which mention filename limitations, now also note that
2966 where underlying file-system has stricter filename length limitations
2967 than the filename_maximum_length field in the project config file, the
2968 file-system wins. Mention of this is now also present in aedb(1),
2969 etc; Linux UMSDOS is highlighted as problematic.
2970
2971 * Aegis can now collect code metrics. See aeb(1) and aeipass(1) for
2972 more information.
2973
2974 * There are three new report functions available: quote_url,
2975 quote_html and unquote_url. These are all for use when creating Aegis
2976 reports for the CGI interface. See aer(5) for more information.
2977
2978 * There are several new substitutions available. These include subst,
2979 trim_extension, trim_directory, and trim_filename. See aesub(5) for
2980 more information.
2981
2982 * The integrate_q.sh script now works correctly for branches.
2983
2984 * Numerous configure, make and install problems have been fixed for a
2985 variety of portability targets.
2986
2987 * The RPM spec file has been corrected to use appropriate file
2988 attributes.
2989
2990 Version 3.8 (1-Oct-1998)
2991 * Some users were unable to build the previous release, due to
2992 inconsistent wide character support by the various UNIX vendors. This
2993 has now been fixed.
2994
2995 * There are two new substitutions, trim_directory and trim_extension,
2996 which are useful for constructing file templates. These can be very
2997 useful in constructing skeletons of C++ classes.
2998
2999 * Some changes have been made to pathname handling to better cope with
3000 automounters. See aegis(1) for more information (see discussion of
3001 the AEGIS_AUTOMOUNT_POINTS environment variable). This assumes that
3002 paths below the automounter's mount directory are echoes of paths
3003 without it (e.g. /home is the trigger, and /tmp_mnt/home is where the
3004 NFS mount is performed, with /home appearing to be a symlink).
3005
3006 Version 3.7 (22-Sep-1998)
3007 * The aeifail(1) and aerfail(1) commands now have a new -reason
3008 option, to specify the failure reason on the command line, rather than
3009 in a file.
3010
3011 * Some file operations are now faster. Mostly, this applies to
3012 operations which mention many files, and to projects with large
3013 numbers of files. Smaller projects may not notice any improvement.
3014
3015 * There is a new -delta-date option to the aecp(1) command, allowing
3016 deltas to be extracted by date. This change also had the side-effect
3017 of making extraction by delta number more accurate on branches.
3018
3019 * There is a new -base-relative option to most of the file
3020 manipulation commands, aecp(1), aenf(1), etc. This option may be used
3021 to specify that relative filenames are relative to the base of the
3022 source tree, rather than the current directory. There is also a
3023 related user preference, see aeuconf(5) for more information.
3024
3025 * There is a new "aeclean" command. It can be used to clean your
3026 development directories of non-source files. See aeclean(1) for more
3027 information.
3028
3029 * The aeb(1) command now passes through arguments of the form
3030 name=value, on the assumption that these are variable assignments for
3031 th ebuild tool. Previously, they were "resolved" as if they were file
3032 names.
3033
3034 * A serious bug in the error and interrupt handling has been fixed.
3035 This bug would sometimes case Aegis to hang, and eventually run out of
3036 stack, when the user attempted to interrupt Aegis using ^C.
3037
3038 Version 3.6 (5-Jul-1998)
3039 * The diff3_command field of the project config file has been replaced
3040 by a merge_command field. It works exactly the same way, but Aegis
3041 moves the files around first, so that the output replaces the change
3042 source file. This results in fewer "lost" merges. Those of you who
3043 have been hacking the diff3_command to move the files around will need
3044 to take the moves out when you rename the diff3_command field to be
3045 the new merge_command field.
3046
3047 * The columnizing functions used by the report generator and the
3048 listings has been enhanced to understand international character sets.
3049 This allows native character sets to be used in comments and
3050 descriptions, without getting gibberish (C escapes) in the output.
3051
3052 * There is a new shell_safe_filenames field in the project config
3053 file. This field controls whether filenames are required to be free
3054 of shell special characters. This field defaults to true if not set,
3055 so if you are using any "interesting" filenames, you may need to
3056 explicitly set this field to false. (You still can't use spaces or
3057 international characters in filenames.)
3058
3059 * There is a new ${quote} substitution for insulating shell special
3060 characters in filenames in the commands in the project config file.
3061
3062 * A number of bugs relating to environment variables have been
3063 corrected; this will make the aereport and aefind commands behave more
3064 consistently, with respect to the aegis command.
3065
3066 * A bug has been fixed which caused the final newline of new test
3067 files to be omitted.
3068
3069 * A bug which prevented the "aeb -minimum" option from working in any
3070 non-trivial case has been fixed.
3071
3072 Version 3.5 (28-May-1998)
3073 * A bug was fixed in the lock waiting code. Aegis will now correctly
3074 wait for locks when there are several users blocking on the same lock.
3075
3076 Version 3.4 (22-May-1998)
3077 * There is a new "aegis -clone" command, used to replicate changes
3078 across branches. See aeclone(1) for more information.
3079
3080 * There is a new "-No-Wait" command line option, which asks for a
3081 fatal error if a lock cannot be obtained immediately; this applies to
3082 all commands which takes locks. See aeuconf(5) for more information.
3083
3084 Version 3.3 (4-Apr-1998)
3085 This release is a bug fix release, and mostly install and portability
3086 bug, at that.
3087
3088 * The problem with errno defines messing up glue.c has been fixed.
3089
3090 * Numerous fixes to the wide character support, to cope with the
3091 vagueries of wide character support on many platforms.
3092
3093 * The problem with the LINES and COLS environment variables messing up
3094 testing have been fixed. Some tests gave false negatives because of
3095 this.
3096
3097 * There is a new aeb -minimum option, for use with symbolic links,
3098 only, which has a minimal set of source file links, rather than
3099 everything in the baseline.
3100
3101 Version 3.2 (22-Mar-1998)
3102 * There are some additional reports available via the web interface.
3103 They are mainly to extract error causes and trends from the project
3104 history statistics.
3105
3106 * There have been a number of minor bug fixes concerning the handling
3107 of old 2.3 projects. This should ease transition for users with
3108 existing 2.3 projects.
3109
3110 * A bug in aecp -delta has been fixed, where Aegis was trying to find
3111 change state files one branch level too high.
3112
3113 * There is now a re-try performed when a stale NFS file handle error
3114 is detected. This should make it easier for some sites which are
3115 heavily networked.
3116
3117 * There have been some improvements to the way Control-C is handled.
3118 It should be more responsive when waiting for locks.
3119
3120 * Project administrators may now end development of a branch. Since
3121 branches can endure for months or years, the orginal branch creator
3122 may have moved on. This copes with this situation.
3123
3124 Version 3.1 (15-Jan-1998)
3125 Version 3.0 was not used by many sites. It was available as beta
3126 software for about a year, in numerous incarnations. Version 3.1 is
3127 the first completely stable version since adding full branching
3128 support.
3129
3130 Version 3.0
3131 Version 3.0 is fully backwards compatible with earlier versions,
3132 however once a project has been used under 3.0, it will not be
3133 possible to revert, e.g. to version 2.3, without restoring the
3134 project's "info" directory from backup. While this was generally true
3135 of previous releases, any additional state information was usually
3136 undo-able with vi(1). This time the process is much more involved
3137 because the project state files and the change state files have been
3138 combined as a necessary step in implementing branches.
3139
3140 Version 3.0 Major New Features
3141 * Aegis now has a feature known in the literature as long
3142 transactions, also known as branches. This allows appropriately
3143 created changes to be treated as if they were projects, and thus to
3144 have changes made to them. This allows a hierachy of changes within
3145 changes, to any desired depth. See the Branching chapter of the Aegis
3146 User Guide for more information.
3147
3148 * The project state files have been merged with the change state
3149 files. This is part of the implementation of branching. If you have
3150 written your own reports, you may need to alter them slightly. For
3151 example, in version 2.3 and earlier, reports accessed the project
3152 state file using
3153 auto p, ps;
3154 p = project[project_name()];
3155 ps = p.state;
3156 Because the project state has been moved into a change state, the
3157 state field above now points at a change state description, and most
3158 of the old project information is contained in the branch field within
3159 it. Reports access this information as
3160 auto p, ps;
3161 p = project[project_name()];
3162 ps = p.state.branch;
3163 Except for files, which were already present in the cstate, so access
3164 to the project file list need not change. See the new aecstate(5) for
3165 more information.
3166
3167 * The new project command now creates branches to match the version
3168 number specified. See aenpr(1) for more information.
3169
3170 * The error messages of Aegis have been internationalized. This
3171 affects how you build Aegis, and the environment Aegis runs in. See
3172 the BUILDING file for more information. The cshrc and profile shipped
3173 with this release set the LANG environment variable to "en" (for
3174 English) if you have not set it; otherwise ther error messages would
3175 be terse and uninformative.
3176
3177 * The aet (1) command can now suggest tests to be run. This is done
3178 by correlating the source files and test files from each change. See
3179 aet(1) for more information.
3180
3181 * There is now an aereport(1) command. The separates out the report
3182 functionality from the main body of the Aegis code, allowing the
3183 report generator to be used in places where more trust is required.
3184
3185 * There is an intranet Web interface, which is installed automaticly
3186 when the install script discovers a web server. This interface allows
3187 browsing of much of the Aegis meta-data, of all publicly accessible
3188 projects.
3189
3190 * There is now an aefind(1) command. This is very similar to the UNIX
3191 find(1) command, except that it finds in the unified directory stack
3192 of a change and its project. The introduction of full branch support
3193 can sometimes mean that finding a file may require looking in more
3194 than two directories; the aefind(1) command makes this simple again.
3195
3196 Version 3.0 Minor New Features
3197 * There is now a -No_Pager option, to prevent listings and help from
3198 being redirected to a pager. There is also a user preference to more
3199 thoroughly disable paging, and a -PAGer option to override it. See
3200 aegis(1) and aeuconf(5) for more information.
3201
3202 * There is now a -No_PErsevere option to aet(1), allowing you to
3203 request that aet(1) stop after the first test failure. There is also
3204 a user preference to set this permanently if desired, and a -PErsever
3205 option to override it. See aet(1) and aeuconf(5) for more
3206 information.
3207
3208 * The copyright years attribute has been moved from being a project
3209 attribute to a change attribute. This is consistent with a number of
3210 other fields which have transparently moved from the project state
3211 files into the change state files, as a result of branching support.
3212 See aeca(1) and aecattr(5) for more information.
3213
3214 * There is a new Search_Path substitution, to support builds on
3215 branches. See aesub(5) for more information. As a side effect, you
3216 can also use it in the test_command field of the project config file,
3217 and thus have a search path to look down for data files for your
3218 tests.
3219
3220 * Test times are now remembered, so that tests are only run if they
3221 need to be. This allows you to keep working on a test, and Aegis only
3222 runs those that have not yet passed.
3223
3224 * Aegis now uses "fingerprints" to tell if files have changed, rather
3225 than simply relying on file modification time stamps. While this
3226 makes Aegis more robust, there is one caveat: it is recommended that
3227 3.0 be installed when there are no changes in the 'being reviewed' or
3228 'awaiting integration' states, in any project.
3229
3230 * There is now a log file prefernces control, allowing users to set
3231 their preferred logging behaviour. See aeuconf(5) for more
3232 information.
3233
3234 * It is now possible to specify the filename for new tests on the
3235 command line. See aent(1) for more information.
3236
3237 * It is not possible to specify a pattern for test filesnames. See
3238 aepconf(5) for more information.
3239
3240 * There is now a -MAXimum option to the aeib command, allowing you to
3241 keep obsolete derived files at integrate begin. This can avoid long
3242 integration build times for large projects.
3243
3244 Version 3.0 Bug Fixes
3245 * Architecture names are now checked a `develop end' time, to ensure
3246 there are no unknown variants. This fixes the mysterious "you must
3247 build again" problem.
3248
3249 * The aecp(1) and aed(1) commands now take a baseline read lock, to be
3250 more symetric with the aeb(1) command which has always done so. The
3251 aeipass(1) command takes the complementary baseline write lock,
3252 ensuring the the baseline remains constant for the duration of builds,
3253 file copies, differences and merges. The manual entries for these
3254 commands have all been improved to document this behaviour. See
3255 aeb(1), aecp(1), aed(1) and aeipass(1) for more information.
3256
3257 * There are now some reminder scripts in the library, which can be run
3258 from crontab(1). These are installed into the /remind directory.
3259 These scripts can be used to remind users of changes in various
3260 states, such as those being developed or being reviewed.
3261
3262 * All of the commands which accept the -Edit option now also accept a
3263 -Edit_BackGround option, allowing edit commands to be piped in from
3264 the standard input.
3265
3266 * The aecp(1) command now accepts a -INDependent option, allowing
3267 files to be copied independent of any change (similar to the
3268 -INDependent option of the command.) See aecp(1) for more
3269 information.
3270
3271 * The aecp(1) command now accepts a -Read_Only option, allowing files
3272 to be copied into a change specifically to insulate it from baseline
3273 changes. Such files must be uncopied before development may end. See
3274 aecp(1) for more information.
3275
3276 * The aenrls(1) command is now used only to convert pre-3.0 projects
3277 into post-3.0 projects. This is because the full branching support in
3278 3.0 makes it more useful to create a new release of a project by
3279 ending development on the branch of the previous release and starting
3280 development of a new branch numbered for the new release. See the
3281 Branching chapter of the User Guide for more information.
3282
3283 Version 2.3
3284 * The merging behaviour of the aed(1) command has changed. If any
3285 files require merging, it only merges. In this way, merged files are
3286 not lost in the rest of the output. Also, there are now command line
3287 options and user preferences so that you can select to only merge or
3288 only difference. See aed(1) and aeuconf(5) for more nformation.
3289
3290 * It is now possible to assign symbolic names to project deltas. This
3291 means that you may now recreate earlier project baselines by name.
3292
3293 * All commands which accept a -Edit option now check for most errors
3294 before commencing the edit. This avoids wasted edits in many error
3295 cases.
3296
3297 * Fuzzy file name matches are now used to improve the error messages
3298 from aecp, aerm, etc.
3299
3300 * Version number separators in project names are preserved across new
3301 releases. Particularly, you can use a minus ('-') between the name
3302 and the major version number.
3303
3304 * A new "copyright_years" project attribute has been added. This is a
3305 list of years maintained at integrate begin time, to automate the
3306 insertion of list of copyright years into copyright messages and
3307 documentation. There is a new ${Copyright_Years} substitution and the
3308 copyright years are also listed in the "aegis -list version" listing.
3309 See aesub(5) and ael(1) for more information.
3310
3311 * It is now possible to specify patterns for acceptable and
3312 unacceptable filenames in the project configuration file. See
3313 aepconf(5) for more information.
3314
3315 * Four more functions have been added to the report language: length,
3316 split, substr and wrap. See aer(5) for more information.
3317
3318 * The tests distributed with are now more stable on very fast hosts.
3319 See the environment variables section of aeb(1) for more information.
3320
3321 * The lib/config.example directory of the distribution now contains
3322 files with example portions of the project config file. May thanks to
3323 David R Shue <shue@ll.mit.edu> for this suggestion.
3324
3325 Changes made in the previous release included:
3326
3327 Version 2.2
3328 This release of Aegis provides 3 of the most commonly requested
3329 features: support for heterogeneous development, support for a greater
3330 range of DMTs, support for user-defined reports.
3331
3332 * Aegis now supports heterogeneous development. Now you can be sure
3333 that your project not only always builds and tests sucessfully, but
3334 that it does so across a configurable set of system or hardware
3335 architectures. See the Heterogeneous Development secion of the Tips
3336 and Traps chapter of the User Guide for more information.
3337
3338 * Aegis can now cope with a wider range of Dependency Maintenance
3339 Tools (DMTs). It now has the ability to fill development directories
3340 with symbolic links to all files in the baseline which are not present
3341 in the development directory. This allows DMTs to assume all files
3342 are present below the current directory, allowing DMTs such as cake
3343 and GNU Make to be used. See the Dependency Maintenance Tool section
3344 of the User Guide and aeb(1) for more information.
3345
3346 * Aegis now has a report generator, so you can create your own
3347 reports. Many "canned" reports are included in this distribution; of
3348 particular interest to many will be the File_Activity report, which
3349 details currently active files. See aer(1) for more information.
3350
3351 * Aegis is now configured using a shell script called configure,
3352 distributed with the package. This shell script is generated using
3353 GNU Autoconf. See the BUILDING file for more information.
3354
3355 * The AEGIS environment variable has been renamed AEGIS_PATH, to bring
3356 it in line with the AEGIS_PROJECT and AEGIS_CHANGE environment
3357 variable names. The old name will keep working for some time, but
3358 aegis will warn you.
3359
3360 * Filename lengths are now configurable. The 14 character portability
3361 limit is still the default, but a higher limit is configurable for
3362 each project, up to the filesystem filename limit. See aepconf(5) for
3363 more information.
3364
3365 * It is now possible to specify that filenames must be within the
3366 minimum character set mandated by POSIX. The default is as before, to
3367 allow any printing character. See aepconf(5) for more information.
3368
3369 * Limits on the length of project names have been relaxed. Project
3370 names are now only limited by the filesystem filename limit.
3371
3372 * It is now possible to specify the command to run tests, allowing a
3373 project to use a specialized test facility, rather than be forced to
3374 use shell scripts. See aet(1) and for more information.
3375
3376 * The commands which accept the -Edit now preserve the edited text in
3377 the event of a failure.
3378
3379 * The commands which delete files now accept a -Interactive option,
3380 which causes them to prompt the user for confirmation of file
3381 deletion. This can be made the default by an appropriate setting of
3382 the aliases or individual users preferences files. See aenfu(1),
3383 aentu(1), aecpu(1), and aeuconf(5) for more information.
3384
3385 * The aecp(1) command now accepts directory names, allowing whole
3386 directory trees to be copied into a change. The aecpu(1) command now
3387 has a -UNChanged option which allows the unchanged files to be
3388 uncopied.
3389
3390 * The aeb command now accepts file names, allowing partial builds to
3391 be performed. See aeb(1) for more information.
3392
3393 * There is a new aechown(1) command to facilitate reassigning the
3394 developer of a change which is in the being developed state.
3395
3396 * It is now possible for project administrators to assign changes to
3397 specific developers. See aedb(1) for more information.
3398
3399 Version 2.1
3400 * Can now ask for history to maintained for file generated by the
3401 build. This is useful for generating patch files.
3402
3403 Version 2.0
3404 * A new command has been added to facilitate changing the name of a
3405 file as part of a change. See aemv(1) for more information.
3406
3407 * It is now possible to list the locks currently held. See ael(1) for
3408 more information.
3409
3410 * If no other defaulting mechanism is specified, aegis will now
3411 attempt to guess the project name and change number from the pathname
3412 of the current directory. This only works from within development
3413 directories.
3414
3415 * The aenc, aeca, aerfail, aeifail and aepa commands now accept a
3416 -Edit command line argument. See the relevant manual pages for more
3417 information.
3418
3419 * The aenpr command now understands the -MAJor and -MINOr options,
3420 allowing the initial version of a project to be something other than
3421 1.0.
3422
3423 * The aed command now understands the -ANticipate option. See aed(1)
3424 for more information.
3425
3426 * It is now possible to list all the outstanding changes of a project,
3427 or of all projects. See ael(1) for more information.
3428
3429 Version 1.4
3430 * Support has been added for systems without the seteuid system call,
3431 or those with crippled implementations.
3432
3433 * Most of the unimplemented command variants have been finished.
3434 These include New Change Undo, Develop Begin Undo and ReMove PRoject.
3435 Most notable of the exceptions is -ANticipate option for the
3436 -CoPy_file and -DIFFerence command.
3437
3438 * The User Guide has been added to, making it a little more complete.
3439 It still needs more work, sigh.
3440
3441 * The code to handle automounters has been made more robust.
3442
3443 * The command substitutions have been vastly improved, and are now
3444 documented.
3445
3446Reference Manual Aegis Read Me(Aegis)
3447