• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

ae-repo-ci/H03-May-2022-1,861833

aeannotate/H03-May-2022-1,6381,049

aecomplete/H03-May-2022-13,9857,854

aecvsserver/H03-May-2022-14,7116,150

aede-policy/H03-May-2022-7,4073,993

aediff/H03-May-2022-550360

aedist/H03-May-2022-8,5365,647

aefind/H03-May-2022-11,6626,616

aefinish/H03-May-2022-903569

aefp/H03-May-2022-191137

aeget/H03-May-2022-10,6606,986

aegis/H03-May-2022-37,08725,138

aegis.conf.d/H03-May-2022-863794

aegrep/H03-May-2022-433311

aeimport/H03-May-2022-5,9783,647

aelcf/H03-May-2022-301226

aelock/H03-May-2022-382164

aelpf/H03-May-2022-311231

aels/H03-May-2022-1,172834

aelsf/H03-May-2022-341252

aemakefile/H03-May-2022-1,9201,234

aemakegen/H03-May-2022-17,7859,611

aemeasure/H03-May-2022-1,7661,225

aepatch/H03-May-2022-3,0272,098

aepromptcmd/H03-May-2022-259157

aerect/H03-May-2022-554401

aereport/H03-May-2022-265161

aerevml/H03-May-2022-2,1031,341

aesub/H03-May-2022-235138

aesubunit/H03-May-2022-406245

aesvt/H03-May-2022-330253

aetar/H03-May-2022-3,2812,117

aexml/H03-May-2022-1,717746

common/H03-May-2022-33,75917,216

debian/H07-May-2022-25,32116,200

etc/H03-May-2022-8,3316,746

fmtgen/H03-May-2022-17,84510,561

lib/H03-May-2022-156,952137,864

libaegis/H03-May-2022-164,48187,947

po/H03-May-2022-93,27385,112

script/H03-May-2022-8,7736,318

test/H03-May-2022-129,74388,193

test_base64/H03-May-2022-331250

test_cfn/H03-May-2022-265190

test_cpio/H03-May-2022-317222

test_execute/H03-May-2022-8354

test_felp/H03-May-2022-12686

test_getdate/H03-May-2022-7944

test_localename/H03-May-2022-8151

test_magic/H03-May-2022-8051

test_quote_c/H03-May-2022-7645

test_shared_ptr/H03-May-2022-11673

test_strverscmp/H03-May-2022-201138

test_uuid/H03-May-2022-178133

test_xml/H03-May-2022-437256

test_zlib/H03-May-2022-149107

web/H03-May-2022-1,8531,114

BUILDINGH A D04-Dec-201240.4 KiB982818

LICENSEH A D04-Dec-201239.2 KiB702572

LICENSE.opensslH A D04-Dec-20121.1 KiB6158

Makefile.inH A D04-Dec-20121.9 MiB40,46334,438

READMEH A D04-Dec-2012142.5 KiB3,4472,556

aegis.confH A D04-Dec-2012999 2925

aegis.specH A D04-Dec-201210.9 KiB377347

config.guessH A D04-Dec-201243.8 KiB1,5311,321

config.subH A D04-Dec-201234.6 KiB1,7741,631

configureH A D03-May-2022264.3 KiB9,6048,151

install-shH A D04-Dec-201213.7 KiB528351

README

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