Filewatcher File Search File Search
Catalog
Content Search
» » » » aegis_4.24.3.orig.tar.gz » Content »
pkg://aegis_4.24.3.orig.tar.gz:4180073/aegis-4.24.3/  info  downloads

README

Read Me(Aegis)							Read Me(Aegis)

NAME
	aegis -	project	change supervisor
	Copyright (C) 1991, 1992, 1993,	1994, 1995, 1996, 1997,	1998, 1999,
	2000, 2001, 2002, 2003,	2004, 2005, 2006, 2007,	2008, 2009, 2010 Peter
	Miller

	Aegis is distributed under the terms of	the GNU	General	Public
	License.  See the LICENSE section, below, for more details.

	aegis (ee.j.iz)	n., a protection, a defense.

DESCRIPTION
	Aegis is a CASE	tool with a difference.	 In the	spirit of the UNIX
	Operating System, Aegis	is a small component designed to work with
	other programs.

	Many CASE systems attempt to provide everything, from bubble charts to
	source control to compilers.  Users are	trapped	with the components
	supplied by the	CASE system, and if you	don't like one of the
	components (it may be too limited, for instance), then that is just
	tough.

	In contrast, UNIX provides many	components of a	CASE system -
	compilers, editors, dependency maintenance tools (such as make),
	source control tools (such as RCS).  You may substitute	the tool of
	your choice if you don't like the ones supplied	with the system	- gcc,
	jove, cake, to name just a few.	 Aegis adds to this list with software
	configuration management, and true to UNIX philosophy, Aegis does not
	dictate	the choice of any of the other tools (although it may stretch
	them to	their limits).

	Enough hype, what is it	that Aegis does?  Just what is software
	configuration management?  This	question is sufficiently broad as to
	require	a book in answer.  In essence, Aegis is	a project change
	supervisor.  It	provides a framework within which a team of developers
	may work on many changes to a program independently, and Aegis
	coordinates integrating	these changes back into	the master source of
	the program, with as little disruption as possible.  Resolution	of
	contention for source files, a major headache for any project with
	more than one developer, is one	of Aegis' major	functions.

	It should be noted that	Aegis is a developer's tool, in	the same sense
	as make	or RCS are developer's tools.  It is not a manager's tool - it
	does not provide progress tracking or manage work allocation.

BENEFITS
	So why should you use Aegis?

	Aegis uses a particular	model of the development of software projects.
	This model has a master	source (or baseline) of	a project, and a team
	of developers creating changes to be made to this baseline.  When a
	change is complete, it is integrated with the baseline,	to become the
	new baseline.  Each change must	be atomic and self-contained, no
	change is allowed to cause the baseline	to cease to work.  "Working"
	is defined as passing it's own tests.  The tests are considered	part
	of the baseline.  Aegis	provides support for the developer so that an
	entire copy of the baseline need not be	taken to change	a few files,
	only those files which are to be changed need to be copied.

	In order to ensure that	changes	are unable to cause the	baseline to
	cease to work, Aegis mandates that changes be accompanied by at	least
	one test, and that all such tests be known to complete successfully.
	These steadily accumulated tests form an ever increasing regression
	test suite for all later changes.  There is also a mandatory review
	stage for each change to the baseline.	While these requirements may
	be relaxed per-change or even per-project, doing so potentially
	compromises the	"working" definition of	the baseline.

	The win	in using Aegis is that there are O(n) interactions between
	developers and the baseline.  Contrast this with a master source which
	is being edited	directly by the	developers - there are O(n!)
	interactions between developers	- this makes adding "just one more"
	developer a potential disaster.

	Another	win is that the	project	baseline always	works.	Always having
	a working baseline means that a	version	is always available for
	demonstrations,	or those "pre-release snapshots" we are	always forced
	to provide.

	The above advantages are all very well - for management	types.	Why
	should Joe Average Programmer use Aegis?  Recall that RCS provides
	file locking, but only for one file at a time.	Aegis provides the
	file locking, atomically, for the set of files in the change.  Recall
	also that RCS locks the	file the instant you start editing it.	This
	makes popular files a project bottleneck.  Aegis allows	concurrent
	editing, and a resolution mechanism just before	the change must	be
	integrated, meaning fewer delays for J.A.Programmer.

	Aegis also has strong support for geographically distributed
	development.  It supports both push and	pull models, and many
	distribution topologies.  Aegis' normal	development process is used to
	validate received change sets before committing	them.

ARCHIVE	SITE
	The latest version of Aegis is available by HTTP from:

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

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

   Mirrors
	See http://www.canb.auug.org.au/~millerp/ for a	list of	mirror sites.

	Aegis is also carried by metalab.unc.edu in its	Linux archives.	 You
	will be	able to	find Aegis on any of its mirrors.

		URL:	ftp://metalab.unc.edu/pub/Linux/devel/vc/
		File:	aegis.4.24.3.README   #	Description, from tar file
		File:	aegis.4.24.3.lsm      #	Description, in	LSM format
		File:	aegis.4.24.3.spec     #	RedHat package specification
		File:	aegis.4.24.3.ae	      #	the complete source, aedist format
		File:	aegis.4.24.3.tar.gz   #	the complete source
	This site is extensively mirrored around the world, so look for	a copy
	near you (you will get much better response).

MAILING	LIST
	A mailing list has been	created	so that	users of Aegis may exchange
	ideas about how	to use Aegis.  Discussion may include, but is not
	limited	to: bugs, enhancements,	and applications.  The list is not
	moderated.

	The address of the mailing list	is
		aegis-users@auug.org.au
	Please DO NOT attempt to subscribe by sending email to this address.
	It is for content only.

   How To Subscribe
	To subscribe to	this mailing list, visit the Aegis-users mailing list
	page (http://www.auug.org.au/mailman/listinfo/aegis-users) and go
	through	the subscribe dialogue.

   Archive
	The mailing list is archived at	eGroups.  The URL is
	http://www.egroups.com/list/aegis-users/info.html

   No Files By EMail
	The software which handles this	mailing	list CANNOT send you a copy of
	Aegis.	Please use FTP or ftp-by-email,	instead.

BUILDING
	Instructions on	how to build and test Aegis are	to be found in the
	BUILDING file included in this distribution.

SOME HISTORY
	The idea for Aegis did not come	full-blown into	my head	in the shower,
	as some	of my programs do, but rather from working in a	software shop
	which used a simplistic	form of	something similar.  That system	was
	held together by chewing-gum and string, it was	written	in a
	disgusting variant of Basic, and by golly the damn thing worked
	(mostly).  Aegis is nothing like it, owes none of its code to that
	system,	and is far more	versatile.  It turns out that the system used
	is nothing new,	and is described in many SCM textbooks;	it is the
	result of systematically resolving development issues for large-ish
	teams.

	Since that company decided to close down our section (the company was
	under attack by	a hostile takeover bid)	we all moved on	simultaneously
	(all 60	of us),	sometimes working together, and	sometimes not, but
	always keeping in touch.  With suggestions and conversations with some
	of them	early in 1990, the manual entries for Aegis took shape,	and
	formed most of the design document for Aegis.

	Since getting the first	glimmerings of a functional Aegis late in 1990
	it is increasingly obvious that	I never	want to	be without it ever
	again.	All of my sources that I modify	are instantly placed under
	Aegis, as is anything I	distribute.  All code I	write for myself, and
	all new	code I write for my employer, goes under Aegis.	 Why?  Because
	it has fewer bugs!

	Example: one of	the sources I carry with me from job to	job is "cook",
	my dependency maintenance tool.	 Cook had existed for 3	years before
	Aegis appeared on the scene, and I used	it daily.  When	I placed cook
	under Aegis, I found 6 bugs!  Since then I have	found a	few more.  Not
	only are there now fewer bugs, but they	never come back, because the
	regression test	suite always grows.

   Branching
	In 1997	the full branching support was released	(it took nearly	18
	months to retro-fit.  The underlying data structures for projects and
	change sets need to be merged.	While I	noticed	back in	1990 that they
	were very similar, it wasn't until branch support design was well
	underways that they should have	been the same  data structure from the
	beginning.

   Geographically Distributed Development
	In 1999	a conversation on the aegis-users mailing list resulted	in the
	creation of aedist, a program which packages and unpackages Aegis
	changes	so they	can be sent by e-mail, or WWW or whatever.  With 20:20
	hindsight, this	could have been	done way back in 1991, because the
	basic idea builds on Aegis change process model.

Windows	NT
	Aegis depends on the underlying	security provided by the operating
	system (rather than re-invent yet another security mechanism).
	However, in order to do	this, Aegis uses the POSIX seteuid system
	call, which has	no direct equivalent on	Windows	NT.  This makes
	porting	difficult.  Single-user	ports are possible (e.g. using
	Cygwin), but are not usually what folks	want.

	Compounding this is the	fact that many sites want to develop their
	software for both Unix and Windows NT simultaneously.  This means that
	the security of	the repository needs to	be guaranteed to be handled in
	the same way by	both operating systems,	otherwise one can act as a
	"back door" into the repository.  Many sites do	not have the same
	users and permissions (sourced from the	same network register of
	users) on both Unix and	Windows	NT, making the mapping almost
	impossible even	if the security	models did actually correspond.

	Most sites using Aegis and Windows NT together do so by	running	Aegis
	on the Unix systems, but building and testing on the NT	systems.  The
	work areas and repository are accessed via Samba or NFS.

LICENSE
	Aegis is free software;	you can	redistribute it	and/or modify it under
	the terms of the GNU General Public License as published by the	Free
	Software Foundation; either version 3 of the License, or (at your
	option)	any later version.

	Aegis is distributed in	the hope that it will be useful, but WITHOUT
	ANY WARRANTY; without even the implied warranty	of MERCHANTABILITY or
	FITNESS	FOR A PARTICULAR PURPOSE.  See the GNU General Public License
	for more details.

	You should have	received a copy	of the GNU General Public License
	along with this	program. If not, see <http://www.gnu.org/licenses/>.

	It should be in	the LICENSE file included in this distribution.

AUTHOR
	Peter MillerE-Mail:   millerp@canb.auug.org.au
	/\/\*					  WWW:	 http://www.canb.auug.org.au/~millerp/

RELEASE	NOTES
	For excruciating detail, and also acknowledgments of those who
	generously sent	me feedback, please see	the etc/CHANGES.*  files
	included in this distribution.

   Upgrading
	In general, all	the machines on	your network need to be	running	the
	same release of	Aegis.	While the database format is backwards
	compatible, it is rarely forwards compatible in	the face of new
	capabilities.

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

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

	* The aeib(1) command has been modified	to no copy into	the baseline
	derived	files tracked by Aegis.

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

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

	* Various portability related improvement.

   Version 4.24.2 (25-Jun-2009)
	* The branch fstate can	contain	fake transparent entries when a	change
	not yet	integrated modifies for	the first time in the branch a file.

	It is possible that such entries cause troubles	if the project is
	configured to write the	pfstate	file.  To avoid	such troubles the fake
	transparent entries are	stripped on the	fly when reading the pfstate
	file.

	The way	the the	pfstate	file is	written	is not modified.

	* The Italian translation of error messages is now available.

	* The Vietnamese and Dutch error messages has been updated.

	* The aerevml(1) command was incorrectly printing twice	user defined
	attributes. This behavior has been fixed.

	* The aeclean(1) command was incorrectly checking the patterns against
	the absolute name of the files.	 This behavior has been	fixed.

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

	* The aesub(5) man page	now reference aeuconf(5) in the	email address
	section.

	* The aedist(1)	command	is now more robust when	handling renamed
	files.

	* The t0228a-matt.sh test script has been made more robust with
	respect	to different behavior of libmagic.

	* The t0127a.sh	test script (aeimport vs. sccs)	has been fixed.

	* A number of memory related bugs has been fixed.

	* Some typo has	been corrected in the ae-repo-ci(1) man	page.

	* The build process has	been improved to give more informative
	messages when a	new aegis developer populate his repository for	the
	first time.

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

	Removed	functionalities: In response to	one of the two above security
	problem, the aegis.cgi program has been	removed.

	* Test 222 has been improved to	cope with some different ways SVN
	stores revision	information, remaining backwards compatible.

	* A bug	in the distributed development machinery has been fixed: it no
	longer add the file UUID to created files without an UUID in the
	remote repository.  This prevents the existence	of the same file with
	different UUIDs	in different repositories.

	* [ #1942614 ] Some build problem discovered by	the Debian crew	has
	been fixed.  Specifically: improve 'make clean'	(Debian	bug 442482),
	add a minor man-page (Debian patch), make test in ae_diff2htm portable
	(Debian	bug 464484), fix whoami	test in	etc/test.sh (Debian bug
	393624), add shell magic to ae-cvs-ci (Debian patch).

	* The aediff command now behave	as expected when invoked for a file
	that, due to a bug in aeipass, is present with two different UUIDs in
	the repository.	 Previously it used to generate	a diff between the
	empty file and the second revision of the file.

	* A bug	has been fixed in aefind, it no	longer segfaults when given
	the -baseline option.

	* A bug	has been fixed in aefinish: it no longer segfault if a branch
	was to be finished and it contained a transparent file.

	* A bug	has been fixed in the aecp -ind	-output	- option, it no	longer
	tries to set the permission mode of stdout.

	* A bug	has been fixed in aeib,	it no longer complains that
	transparent files have been tampered with.

	* A couple of memory leaks introduced with the time safe work has been
	plugged.

	* The makefile has been	changed	to use DESTDIR (advocated by GNU).

	* A test script	has been improved to work with older bzip2.

	* Small	improvement to test_funcs, reintroduce the chown invocation
	for the	directory under	$work/.

	* This change set modify the aefinish command to jump the project home
	path instead of	the user home directory	(since it may be inaccessible)

	* This aegis.spec file (used for RPM builds) has been improved.

   Version 4.24	(09-Mar-2008)
	* Numerous portability improvements.

	* Numerous improvements	to the history reconstruction code.

	* Numerous improvements	and bug	fixes to the distributed development
	code.  See aedist(1), aeget(1),	aetar(1) and aepatch(1)	for more
	information.

	* The site specific architecture information has been split into a
	separate file, maked with an entire-source-hide	attribute, so that new
	Aegis-under-Aegis projects don't have such bad architecture problems.

	* The license has been changed to GPLv3.

	* A bug	has been fixed the the change::pconf_get method	which
	sometimes caused segfaults.

	* A bug	has been fixed in aeclone which	caused aecp -delta to segfault
	when: a	change set whith a removed file	was cloned, and	the clone
	change set subsequently	integrated.

	* The aediff command is	now smarter about files	which may have moved.

	* A bug	has been fixed in the aeannotate command, it no	longer
	segfaults for some file	histories.

	* A Vietnamese error mesage translation	has been added.

	* There	is a new Portugese (Brazillian)	message	catalogue translation.

	* It is	now possible to	develop	begin undo and new change undo in a
	single command.

	* The ael(1) command now understands are much wider range of ways to
	specify	changes.

	* A segfault has been fixed in the use of --delta and --delta-data
	options.

	* This change set fix a	problem	in the aesvt(1)	checkout command that
	can fail to extract from a gzip	compressed archive.

	* A bug	has been fixed in the aechown(1) command, to stop a segfault
	when printing some error messages.

	* There	is a new aebisect(1) command which helps to find project
	regressions not	handled	by the test suite.

	* Many commands	now cope with renames in more situations.

	* A bug	has been fixed in aeclone(1) which caused aecp -delta to
	segfault when a	change set whith a removed file	was cloned, and	the
	clone change set subsequently integrated.

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

	* A vietnamese translation has been added.

	* The aereport(1) command now understands more ways to specify
	changes.

	* There	is a new ${path_reduce}	substitution which may be used to
	remove redundant elements from path lists, such	as used	by the $PATH
	environment variable.

	* When the development directory style required	actions	to be perfomed
	on the development directory, the obsolete "creating symbolic links to
	baseline" message was produced.	This was confusing. A more generic
	message	is now used, which is intended to be less confusing.

	* The aecp(1) -delta command now follows the whiteout preference when
	copying	a "removed" file.  The test suite now runs much	faster.

	* A bug	has been fixed in the aedbu(1) command.	It no longer complains
	about permissions when the develop_begin_undo_command has been set.

	* A bug	has been fixed in the aeimport(1) command.  It no longer uses
	the Attic portion of filenames when populating the history directory
	tree.

	* The change details listing now prints	comments in a wide column when
	the comments are lengthy.

	* There	is a new $Active_Directory substitution, used to obtain	the
	development directory, or the integration directory, depending on the
	change state. This is rather like the default behaviour	of the aecd(1)
	command.

	* There	is a new ${project version} substitution.

	* The commands run by aeipass are now accompanied by more file name
	information, so	that you can know which	source file corresponds	to
	which UUID history file, if there is a failure in the history
	commands.

	* The aeca(1) command now checks for and discards duplicate
	architecture names. This fixes a bug with unsatifiable architecture
	dependencies.

	* The aeb(1) command has been improved,	it no longer keeps running the
	project_file_comand over and over again.

	* A bug	has been fixed in the aenf(1) command; it now preserves
	existing file contents if new files already exist in the development
	directory.

	* A bug	has been fixed in the "aet -regression"	command, it no longer
	reports	free()ing a non-existent string.

	* A bug	has been fixed in the aed(1) command, it no longer reports a
	bug when a cross branch	merege is attempted for	a file independently
	created	in both	branches.

   Version 4.23
   Version 4.22.2 (18-Oct-2007)
	This is	an update for the 4.22 stable release, it is meant to help
	Aegis users while the next release cycle ends.

	* [ 1684820 ] Fixed a bug in aeclone that caused aecp -delta
	segfaults.

	* The symlink farm now handle derived files registered within Aegis
	more like normal derived files.

	* The change_pconf_get function	no longer looks	for historical
	versions of files, if it can help it.  This makes many things go
	faster and solved the problem of configuration fields redefinition.
	While this change does not make	Aegis more time	safe, it cures one of
	the symptoms.

	* Fixed	test 222 to work with recent releases of subversion.

	* The aepconf(5) has been improved.

	* [ Debian 435422 ] The	reference manual was wrongly referring to
	-Page-Headings instead of -Page-Header.	 The documentation has been
	updated	to match the source code.

	* The test/02/t0257a-walt.sh script has	been back-ported from the
	development branch (4.23) to prevent bug #...... to appear in the
	stable branch.

	* [ 1704108 ] The aecp(1) -delta command now follows the whiteout
	preference when	copying	a "removed"file.

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

	* The generated	Makefile now installs aelock(1)	with the correct
	permissions.

	* A bug	has been fixed in the aetar(1) command,	it no longer creates
	tarballs that cause BSD	tar to complain	like this: tar:	End of archive
	volume 1 reached tar: Unexpected EOF on	archive	file

	* The configure	script now handle correctly the	datadir	substitution.

   Version 4.22.1 (14-Apr-2007)
	* Test t0247a-walt.sh has been fixed, it was not exporting
	AEGIS_TEST_DIR.	 This make aeintegratq(1) leaving stuff	in the home
	directory of the user.

	* Some minor fix that prevented	Aegis to build on RPM based
	distributions has been fixed.

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

	* aedist(1) now	handle certain renamed files correctly when receiving
	branches or entire-source.

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

	* aedist(1) now	handle certain renamed files correctly when receiving
	branches or entire-source.

	* [ 1691122 ] Newer versions of	the autoconf tools introduced a	new
	@datarootdir@, and complained loudly if	it wasn't used.	 Aegis
	configure does not trigger anymore those warnings.

	* The test suite does not use anymore diff(1) -u because not all
	systems	have gnu diff, so the use of gnu diff's	-u option is nor
	portable, and will give	false negatives	on some	systems.

	* The test suite does not use anymore diff(1) -u because not all
	systems	have gnu diff, so the use of gnu diff's	-u option is nor
	portable, and will give	false negatives	on some	systems.

	* aedist(1) -rec now save the UUID as the user defined original-UUID
	if the UUID is already present in the repository.  This	is especially
	useful when receiving changes in the same repository.

	* aeclone(1) now preserve the the UUID of the original change as the
	original-UUID user defined attribute of	the new	change.	It also	copy
	any other used-defined attribute.

	* Test 89 has been disable on HP-UX-10 because that system has a
	"vendor	specific" (i.e.	broken)	cpio(1)	archive	format.

	* Test 95 has been improved to be less sensitive to libmagic(3)
	differences.

	* Test 207 has been changed to be less sensitive to sort(1)
	differences.

	* The project_specific setenv:*	variables are now exported only	once.

	* [ 1674882 ] The following bug	as been	fixed: if a file is created
	and renamed within a single branch, and	that branch is integrated,
	then the file is not included in the output of 'aedist -send -es' from
	subsequent branches.

	* A bug	has been fixed in the aedbu(1) command.	 It no longer
	complains about	permissions when the develop_begin_undo_command	has
	been set.

	* The aedist(1)	-rec command now better	handles	file renamed (not
	aemved)	to match the local repository state.

	* A bug	has been fixed that caused the change_pconf_get	function
	terminate aegis(1) with	a fatal	error if applied to a branch without a
	config file (e.g. if the trunk does not	contain	any closed branch).

	* The aenpr(1) -keep command now set the administrator recursively.

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

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

	* A bug	has been fixed that caused an aemv(1) followed by an aenf(1)
	to generate two	different files	with the same UUID.

	* Avoid	the "multiple permission set" error on quit.

	* A bug	has been fixed in the UUID generating code; it was running out
	of file	descriptors.

	* A bug	has been fixed in the aet(1) -regression command, it no	longer
	reports	free()ing a non-existent string.

	* A bug	has been fixed in the aed(1) command, it no longer reports a
	bug when a cross branch	merge is attempted for a file independently
	created	in both	branches.

	* A bug	has been fixed which caused aeipass(1) to assign UUID to files
	at branch integration pass time. This can happen if the	files was
	created	and integrated with an old Aegis release, lacking support for
	file's UUID.  This bug make it possible	to have	the history for	a file
	split into two part, one accessible via	the file_name, the other
	accessible using the UUID.

	* A segfault in	aeannotate(1) has been fixed.

	* A bug	has been fixed related to the use of the
	unchanged_file_integrate_pass_policy=remove policy described in
	aepconf(5).  In	this case aeipass failed to reset the locked_by	field
	from the project fstate	file, this prevented subsequent	changes	to
	modify the removed file.

	* A bug	has been fixed in the handling of the symlink farm, for
	development directory styles which use them for	derived	files.
	Derived	files in the baseline directory	which were formerly source
	files, but then	aerm-ed, are now included in the development directory
	when copy/link styles are used.

	* A bug	has been fixed in the aenf(1) command; it now preserves
	existing file contents if new files already exist in the file
	development directory.

	* The ./configure script has been improved to stop with	a fatal	error
	if the bzip2 library is	not available.

   Version 4.22	(29-Mar-2006)
	* A bug	has been fixed in the aeclean(1) command, it now correctly
	resets the change build	and test times.

	* A bug	has been fixed in writing of tar and cpio data,	in cases where
	there was one byte too much padding.

	* A bug	has been fixed in the aeintegratq(1) command, it no longer
	ignores	change number zero.

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

	* The aede(1) comand now runs the review_pass_notify_command (instead
	of the develop_end_notify_command) for projects	configured to skip the
	being reviewed state.

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

	* A bug	in the aed(1) command has been fixed, it no longer reports a
	bug when trying	to merge a file	that has been renamed.

	* A bug	has been fixed in the aet(1) command, it now correctly handles
	multiple architectures being reported for batch	test results.

	* A bug	has been fixed in the aet -regression command, the batch_-
	test_command now correctly handles multiple architectures in the
	results.

	* The notification scripts distributed with Aegis have been fixed,
	they now correctly substitute recipients' email	addresses.

	* A bug	has been fixed in the aediff(1)	command, the -change option is
	now ablew to cope with degenerate forms	of the delta name in cases
	like aediff -change D001 and similar.

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

	* A bug	has been fixed in the aeget(1) interface, the adjective	for
	the alternate listing link at the bottom of the	Integration Histogram
	pages has been inverted.

	* A bug	has been fixed in the aeget(1) command,	is is now always
	possible to see	the error produced by a	script when the	noerror
	modifier is specified.

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

	* The aeget(1) web interface no	longer emits broken links to removed
	source files.

	* A bug	has been fixed in the aenbr(1) command,	the protect_database
	project	attribute is now correctly inherited from the parent branch.

	* A bug	has been fixed the the RSS feed, where HTML special characters
	were not rendered correctly.

	* A bug	has been fixed in the aeipass(1) command, it no	longer fails
	if the history_create_command was not set, it uses the history_put_-
	command	instead, as it is supposed to.

	* A bug	has been fixed in the aedist -send command, it no longer
	attempts to include the	source of removed files.

	* A bug	has been fixed in the aedist(1)	command, it no longer
	segfaults when compiled	with DEBUG defined.

	* A bug	has been fixed in the aedist -replay command, it no longer
	downloads change sets more than	once.

	* A bug	has been fixed in the aedist -send command, it no longer
	obtains	the wrong version of the project files when building patches
	for files which	have been renamed.

	* A bug	has been fixed in the aedist(1)	command, no longer attempts to
	include	the source of removed files.

	* A bug	has been fixed in the aedist -pending command, it now resolves
	project	aliases.

	* A bug	has been fixed in the aedist(1)	command, it no longer
	segfaults on IRIX.

	* A bug	was fixed which	caused the development_directory of a branch
	to be recorded as an absolute path in the Aegis	meta-data, rather than
	relative to the	home of	the project.  This problem make	it difficult
	to move	a project to a different location in the filesystem.

	* There	is a new open source project example on	the web	site, which
	allows tarballs	to be unpacked and turned into an Aegis	project	in
	less than 30 minutes.

	* There	is a new aefinish(1) command which may be used to read the
	state of a change set and then run all of the Aegis commands necessary
	to to end development.	See aefinish(1)	for more information.

	* The aexml(1) command now understands ".bz" output file suffix, in
	addition to the	".gz" suffix it	already	understood.  The man page has
	been updated to	cover the -output opion.

	* The aerevml -send command is now able	to produce bzip2 compressed
	output.

	* The restrictions on project alias names have been eased.  It is now
	possible to have any alias name	you like, so long as it	doesn't
	contain	any shell special characters.

	* It is	now possible to	set change attributes from the command line,
	without	going via an editor.  See aeca(1) for more information.

	* The aetar -send command is now able to produce bzip2 compressed
	output.

	* There	is an new aetar	-exclude command line option, allowing you to
	exclude	files from the tarball being unpacked and used to for the
	change set.  This is typically necessary when a	tarball	includes
	derived	files (e.g. the	./configure script in most open	source
	projects).

	* There	is a new aetar -exclude-auto-tools option, which can be	used
	to exclude derived files commonly found	in open	source projects	using
	the GNU	Autoconf and GNU Automake tools.

	* There	is a new aede-policy(1)	command	which may be invoked by
	develop_end_policy_command to enforce additional local policies.  See
	aede-policy(1) for more	information.

	* When symlinking files	(source	or derived) into the development
	directory, the last-modified time of the link is set to	the last-
	modified time of the file being	linked to, when	the underlying
	filesystem supports it.

	* The aefa(1) command now accepts name=value attribute assignments on
	the command line.

	* The aet(1) command now understands name=value	pairs on the command
	line, and passes them unchanged	to the test command.  The -force
	option implies a force=1 variable setting.

	* The aepatch -send command is now able	to produce bzip2 compressed
	output.

	* The aesvt(1) command now uses	the bzip2(1) algorithm by default.
	There is a aesvt -compression-algorithm=gzip option for	forwards
	compatibility.

	* There	is a new ae-repo-ci(1) command which may be used in an
	integrate_pass_notify_command to do a parallel check-in	of a change
	set into a second parallel repository.	It understands CVS and SVN at
	the moment; it is easy to extend to understand more repository types.
	The old	ae-cvs-ci(1) script now	invokes	the ae-repo-ci(1) command.

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

	* The aedist --replay command now adds a compatibility modifier	to all
	of the downloads URLs, so that the change set received will be
	compatible with	the version of aedist at the receiving end.

	* The aedist -send command now accepts a -no-mime-header option, to
	make it	easier to validate the aedist(1) output	against	the real
	cpio(1)	command.

	* The aedist -send command is now able to produce bzip2	compressed
	output.

	* There	is a new entire-source-hide file attribute which may be	used
	to omit	site-specific files from aedist	-send change sets.

	* The aetar -remove-path-prefix	option now also	accepts	a numeric
	argument.

	* The aeannotate(1) command now	understands the	-change	and -delta
	options.

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

	* The aecpu(1) comand now understands the -read-only option to mean
	uncopy all of the insulation files.

	* There	is a new aelock(1) command, which may be used to take read-
	only locks.  This can be useful	for backups, and other activities
	outside	Aegis' scope which require a constant project state to operate
	correctly.

	* The aedist command can now perform file merges with better results.

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

	* The aedist -receive command now applies patches using	the patch(1)
	command, rather	than doing it less well	itself.

	* The aedist -replay command now attempts to use the same change
	number as on the remote	system.	 A bug has been	fixed in the way it
	looked for change numbers.

	* There	is a new unchanged_file_integrate_pass_policy field in the
	project	configuration file, which controls what	to do when a change
	set contains an	unchanged file at integrate pass time.

	* It is	now possible for developers to edit a change description when
	a change is in the awaiting development	state, if the project has
	developers_may_create_changes enabled.

	* The aed(1) command is	now optional.  Configuring a diff_command of
	"exit 0" will tell Aegis your project does not need to be differenced.

	* The aeget(1) interface now places HTML anchors in description	text
	where it recognizes them.

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

	* The aeget(1) web interface file listings pages now link the edit
	numbers	to file	versions. When history is available there are also
	links to the previous verion, and the arrow is linked to a diff	page.

	* The aeget(1) presentation of file history has	been improved to
	highlight renaming of files.

	* The aeget(1) web interface now has a recursive option	on its project
	integration history pages.

	* The aebuffy(1) command is now	able to	run the	tkaer(1) command from
	more states, and it now	accepts	'q' to quit.  The display of changes
	with double quotes (") in their	brief description has been improved.

	* A build problem with libcurl not being present has been fixed.

	* A bug	has been fixed which caused errors when	Aegis was compiled
	with g++ 4.1

	* A build problem has been fixed on Solaris.

	* A build problem related to bison(1) using libintl(3) has been	fixed.

	* The ./configure script has been improved to correctly	detect
	installation of	the OSSP UUID library.

	* A build problem on HP/UX has been fixed.

	* A build problem on MacOS X has been fixed.

	* A build problem has been fixed where libraries required by the
	./configure script are located under /usr/local/lib or some other non-
	standard place.

   Version 4.21	(10-Nov-2005)
	You must have the Gnome	libxml2	library	(http://xmlsoft.org/)
	installed in order to build Aegis.  Please install the xml2 library
	version	1.8.17 or later.  You do not have to install the rest of
	Gnome, the library can be used on its own.  If you are using a package
	based install, you will	need the libxml2-devel or libxml2-dev package
	in addition to the libxml2 package.

	Ideally, you would also	install	the libmagic package, used to
	determine file types, just as file(1) does.  (This is not to be
	confused with the libmagic6 image manipluation library.	 If you	are
	using a	package	based install, you will	need the libmagic-devel	or
	libmagic-dev package in	addition to the	libmagic package.

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

	* The auto file	promote	feature	previously available in	aed(1) has
	been added to the aeb(1), aecp(1), aerm(1) and aenf(1) commands.

	* The aedist -pending and aedist -missing commands now print the
	number of changes in the remote	inventory.

	* A bug	was fixed in the aecp command which caused a segfault
	sometimes when the user	tries to copy a	removed	file.

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

	* There	is a new develop_end_policy_command field in the project
	configuration file. It can be used to add addition constrains to
	change sets before they	can complete aede(1) successfully.

	* The aedist -receive command now annotates remote change sets
	(typically, change sets	downloaded via the aedist -replay command)
	with their origin URL.

	* A bug	has been fixed in the aebuffy command where it would display
	incorrectly when the brief_description of a change contained double
	quotes.

	* It is	now possible to	attach a comment to all	commands which involve
	a change state transition, e.g.	aenc, aede, etc.  This is done using
	the -reason command line option, just as you are able to do for	review
	fail, etc.

	* A bug	has been fixed in aenc,	where it did not correctly copy	user
	defined	attributes.

	* There	is a new aelcf(1) command to efficiently generate lists	of
	change source files for	use by your build tool.

	* There	is a new aelpf(1) command to efficiently generate lists	of
	project	source files for use by	your build tool.

	* There	is a new cache of state	information attached to	each delta,
	the project file state at the time of the delta. This has the
	potential to accelerate	aecp -delta, and all other
	project_file_roll_forward-based	operations.  Large projects may	want
	to turn	this off, because each delta will produce another large
	project	file state cache.

	* There	is support for generating RSS feeds from Aegis.	 See the Aegis
	project	pages on the Aegis web interface for an	example.  See
	aepconf(5) and aeget(1)	for more information.

	* The ${change delta_uuid} substitution	now allows access to the
	delta_uuid in the being	integrated state.

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

	* There	is a new optional $filename substitution for the history_put_-
	command, so that you can attach	the current name of the	check-in to
	the history file meta-data.  There is a	new optional $uuid
	substitution for history_put_command, so you can attach	that as	mete-
	data, too.

	* There	is a new history tool bundled with Aegis.  See aesvt(1)	for
	more information.

	* There	is a new default_regression_test_exempt	project	attribute.

	* The aedist -receive delta selection mechanism	has been improved:
	previously the edit-origin-UUID	attribute was considered in favour of
	the original-UUID attribute, with this change it is used the change
	set, bounded to	the edit-origin-UUID or	to original-UUID, more
	recently integrated.  This should reduce the frequency of logical
	conflicts.

	* There	is a new aerevml(1) command, which can be used to send change
	sets in	the RevML format.  See aerevml(1) for more information.	 The
	aeget(1) web interface is also able to serve change sets in this
	format.

	* A problem has	been fixed which caused	Aegis to fail on the hppa port
	of Debian.

	* The aetar -receive program now uses the archive name as the brief
	description.

	* A bug	was fixed in aedist -send which	caused segfaults when
	processing some	files.

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

	* There	is an implementation of	Robert Collins'	subunit	testing
	framework available.  See aesubunit(1) for more	information.

	* A bug	was fixed in aedist that caused	an error when receiving	a
	branch's archive generated with	the aedist -send -entire-source
	option.

	* A bug	has been fixed in aedist -receive that caused a	segfault in
	the rename handling code.

	* The aedist -missing listing (and the aedist -replay behaviour) now
	check for branch UUIDs as well,	just in	case someone fetched a branch
	as a change set	and applied it.	 However, aeget	does not report	these
	UUIDs, because that would be too confusing.

	* It is	now possible to	specify	any sufficiently unique	leading	prefix
	of a UUID rather than the full 36 characters.

	* There	is a new ${History_Path} substitution available.  It gives you
	the path name of the history file corresponding	to the given
	filenames.

	* A bug	in aedist -receive which caused	incorrect delta	selection has
	been fixed.

	* There	is a new aedist	-pending option	which can print	the list of
	local change sets missing from a remote	repository.

	* The aedist -receive command is now able to use the edit-origin-UUID
	attribute to copy modified files from the right	origin.

	* A bug	has been fixed in aedist -send where some types	of incomplete
	changes	would fail an assert.

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

	* A bug	as been	fixed which caused aemv(1) to incorrectly rename a
	file to	an existing directory

	* It is	now possible to	specify	user-defined user attributes in	the
	~/.aegisrc file.

	* The aenf(1) command now gives	a warning if you specify the "config"
	file without the "-config" option. This	is the old name	for the
	project	configuration file, the	new name is "aegis.conf".

	* The aefind(1)	command	now understands	{+} to mean the	resolved file
	name, and {-} as the unresolved	file name.

	* There	was a bug where	Aegis would exit with a	fatal error if one of
	the directories	on the AEGIS_PATH was read-only. Such directories are
	now ignored.

	* The aetar(1) command has been	improved to process modified and
	created	files in a batched way;	this improves the speed.

	* Additional explanatory text has been added to	the message printed
	when error message translation files can't be found.

	* The aenf(1) command now understands the -keep	and -no-keep options,
	to explicitly control the creation of new files	in the development
	directory.

	* A bug	has been fixed in aemv(1) which	failed to check	the new	name
	against	the filename charset, etc.

   Version 4.20	(28-Jan-2005)
	Please Note: Users are advised to check	the history command settings
	in their project configuration files.  With the	advent of file UUIDs,
	the history mechanism now decouples source file	names from history
	file names.  In	particular, the	assumption that	the history file
	basename is the	same as	the source file	basename is no longer true.
	Correct	settings may be	found in the lib/config.example/ directory of
	the source distribution.

	* The defaulting rules for the change number (if none was specified on
	the command line) have been altered. the current directory now takes
	precedence over	the "only one" rule.  This seems to meet user
	expectations better.

	* A bug	has been fixed in the aecvsserver(1) command which caused to
	to fail	when accessed by some clients.

	* A bug	has been fixed which caused many of the	programs to leave
	temporary files	behind.

	* A bug	has been fixed in the aedist -send -entire-source command
	where it would hang for	some cases.  (Actually,	it would dump core
	after using up all available swap space	on an infinite recursion).

	* A bug	has been fixed in the aedist command (and other	places)	where
	the open of the	project	configuration file could fail, due to not
	properly reconstructing	in historical circumstances.

	* A bug	has been fixed in the integration build	which was removing
	files it should	not, for during_build_only = true work area styles.

	* The aeb command now complains	much less about	"directory not empty"
	when using the link farm.

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

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

	* A bug	in aedist(1) has been fixed, it	was forcing regression test on
	the receiving side even	if the change set does not require it and
	default_test_exemption was set to true.	 It was	annoying especially if
	the test suite take a long time	to run completely.

	* Some bugs have been fixed in aediff(1) which caused it to mis-parse
	the command line in some cases,	and it was also	barfing	on the
	expected exit status 1 when an actual difference was found.

	* A bug	has been fixed in the aecpu(1),	aemtu(1), aemvu(1), aenfu(1),
	aentu(1) and aermu(1) commands.	They were not repairing	the symlinks
	(etc) required by the development_directory_style settings.

	* A bug	has been fixed in the Change_Files listing; it was not showing
	the locked-by information.

	* A bug	has been fixed in the code which updates the development
	directory symlinks.  It	was failing to make all	the directories
	required.

	* A bug	has been fixed in the aedist -send -entrie-source command,
	where it would segfault	in some	cases.

	* A bug	has been fixed in reading plain	diff(1)	format patches.	 This
	was particularly obvious because aeannotate(1) uses this form of diff
	by default.

	* A bug	has been fixed in aeget(1) where it was	showing	removed	source
	files as available for download.

	* A bug	has been fixed in aeget(1) where it produced invalid output if
	the SCRIPT_NAME	environment was	not set.

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

	* A bug	has been fixed in the aeimport(1) command.  It was using the
	old work area style configuration file parameters, instead of the new
	development_directory_style settings.

	* A memory leak	has been fixed in the symbol table code.

	* A bug	has been fixed in the project_file_find_by_uuid	function.  In
	some cases it would SEGFAULT, particularly once	the memory leak	in the
	symbol table code was fixed.

	* Several build	problems have been fixed.

	* The aeintegratq(1) command has a new -loop options, which causes it
	to keep	processing changes that	become available while it is running.

	* The aet(1) command has a new -sugest-limit option which runs as many
	regression tests as possible (from most	relevant to least relevant)
	but stops after	the given number of minutes.  This is a	way for
	running	the most relevant tests	in a limited time.  For	example, this
	option could be	used if	a project has so many integrations in a	day
	that it	can only afford	20 minutes of integration testing for each
	one.

	* The aed(1) man page has been updated to better describe the
	behaviour around the merge command.

	* The aetar -send command now accepts an -include-build	option that
	also add build files, registered with aegis -new-file -build, to the
	ouput archive.	A -not-include-build option is also accepted.

	* The aetar -receive command now avoids	copying	build files from the
	baseline because this operation	is forbidden and the error stops the
	processing.

	* There	is a new ${Change_Attribute} substitution, which is replaced
	by the values of the change attributes named.

	* The history recapitulation code (project_file_roll_forward) now
	indexes	by UUID	rather than by file name (with backwards compatibility
	for UUID-less repositories).  The user visable result is that file
	history	reports	and listings now accurately track renames.

	* The aet -nopersevere option now also stops for no result as well as
	fail.

	* The aedist --receive command now understands file UUIDs.  This means
	that it	will operate on	the correct file even when one or the other
	repository has renamed the file.

	* The aedist -receive command has been enhanced	to perform file	merges
	if necessary.

	* There	is a new aedist	-replay	option.	 When used in with an aeget(1)
	server,	it can be used to synchronize two repositories.	 The aedist
	-missing option	may be used to show what would be downloaded.

	* The aefa(1) command, with the	-edit option, now shows	you the
	content	type, rather than adding it silently.

	* There	is a new aediff	--command option, allowing you to specify the
	command	you want to use	to display the difference.  For	example, you
	could use tkdiff(1) or mgdiff(1) to display the	change graphically.

	* The aediff(1)	command	now adds labels	when it	is producing a context
	or unified diff	output.

	* There	is a new optional review_policy_command	field in the project
	confioguration file.  This allows for customised review	policies for
	each project, including	multiple reviewers and specific	reviewers for
	portions of the	sources.

	* There	is a new ${Change_Reviewer_List} substitution, which is
	replaced by a space separated list of reviewers	of the current change,
	since the last develop end. This is of particular use to the review_-
	policy_command field of	the project configuartion file.

	* There	is a new ${Change_Developer_List} substitution,	which is
	replaced by a space separated list of all the developers of the
	current	change.

	* There	is a new ${quoted_email_address} substitution, which replaces
	it arguments with the email addresses of the names users.  See
	aesub(5) for more information.

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

	* The remaining	aegis.cgi(1) functions have been reproduced in
	aeget(1).  The aegis.cgi(1) script is now deprecated.

	* When the UUID	of a change is cleared it (because some	operation on
	the change set invalidates it) is saved	in a change attribute named
	original-UUID.

	* The aedist -receive command is now able to use the original-UUID
	attribute of the incoming change set to	select the delta to merge
	with.

	* The "path unrelated" error message has been updated to make it more
	informative.

	* All attribute	names (project,	change and file) are now case-
	insensitive.

	* The aedist -receive command has been enhanced	to allow you to	select
	the branch of the delta	to merge with.

	* Several classes within the source have been refactored.

   Version 4.19	(30-Sep-2004)
	Please Note: Users are advised to check	the history command settings
	in their project configuration files.  With the	advent of file UUIDs,
	the history mechanism now decouples source file	names from history
	file names.  In	particular, the	assumption that	the history file
	basename is the	same as	the source file	basename is no longer true.
	Correct	settings may be	found in the lib/config.example/ directory of
	the source distribution.

	* There	is a new development_directory_style field of the project
	configuration file.  This allows CVS-style and Arch-style work areas,
	in addition to the BCS-style and viewpath work areas already
	supported.  These new work area	styles permit many existing projects
	to use Aegis with no change to their build systems.  The libsndfile
	and OpenLDAP projects, for example, have been imported and built
	without	modification.  See aepconf(5) and the Dependency Maintenance
	Tool chapter of	the User Guide for more	information.

	* There	is a new aediff(1) command, which may be used to obtain	a
	diff(1)	listing	of a file for different	deltas.

	* There	is a new aepromptcmd(1)	command, used with bash's
	PROMPT_COMMAND environment variable.  It can be	used to	obtain a
	colored	prompt,	simulating the process described in Kent Beck's	book
	Test Driven Development.

	* There	is a new signed_off_by field of	the project configuration
	file.  Set it to true if you want "Signed-off-by" lines	appended to
	change set descriptions	as the changes pass through the	Aegis process.
	The aede(1) and	aerpass(1) commands now	understand two new -signed-
	off-by and -no-signed-off-by options, to override the project setting.
	The aedist -send and aepatch -send commands also understand the	new
	-signed-off-by option, to add the "Signed-off-by" line to the outgoing
	change set description.	 Conforming to:	http://www.ussg.iu.edu/-
	hypermail/linux/kernel/0405.2/1301.html	and http://www.osdl.org/-
	newsroom/press_releases/2004/2004_05_24_dco.html

	* The aet(1) command has been enhanced to allow	integrators to run
	specific tests.

	* The aesub(1) command can now read the	text to	be substituted from a
	file or	standard input.

	* It is	now possible to	use the	project-specific attributes to specify
	environment variables to be set	for commands executed by Aegis.	 This
	can be used to set a predictable PATH, for example.

	* It is	now possible to	customize the aeget(1) web interface using
	project	specific attributes.

	* The ael(1) command and the aeget(1) web interface now	have file
	inventory pages, for the project file inventory	and the	change file
	inventory.

	* There	is a new "change set inventory"	listing	available via the
	ael(1) command and the aeget(1)	web interface, which lists changes and
	their corresponding UUIDs, and links to	an aedist download for each
	change.	The idea is that the aeget(1) pages may	be used	to automate
	downloading change set your repository does not	yet have.

	* There	are two	new history commands in	the project configuration
	file, the history_transaction_begin and	history_transaction_end
	fields.	 It is not an error if these fields are	absent.	 If you	need a
	transaction key, use the $version substitution.

	* The aedist(1)	command	now runs all tests required for	the change
	set, and honors	test exemptions.

	* The aedist(1)	command	now sleeps for a second	to ensure that the
	last-time-modified of derived files will be strictly later than	source
	files, and that	the aeb(1) timestamp will also be strictly later then
	the last-time-modified for the source files.

	* The tkdiff(1)	man page has been updated to say how to	use mgdiff(1)
	instead	of tkdiff(1).

	* All commands which accept the	-change	option may now be given	a
	change set UUID.  You can discover a change's UUID using the ael cd
	(list change details) or ael inventory listings.

	* The aed(1) command now restores source file from backups (,B)	when a
	merge fails.  Previously this was not the case and subsquent aed
	invocations failed because the source file was missing.

	* The aetar -send command now has an -add-path-prefix option, so that
	you can	add a path prefix to all of the	files in a tarball.  The
	aeget(1) CGI interface now adds	a path prefix to generated tarballs by
	default.

	* Whenever you edit file attributes, there is a	Content-Type attribute
	added automagically if none was	there already.	The idea is that this
	could be used by scripts to differentiate file types.

	* The aepatch(1) command now uses diff -u by default.

	* A number of build problems on	different systems have been fixed.

	* A number of minor problems with tests	on different systems have been
	fixed.

	* A bug	has been fixed in the aepatch command; it was not parsing
	simple diff patches correctly.

	* The example history commands have been updated to work better	with
	the new	UUID code.

	* A bug	has been fixed in aecp -delta, where it	would fetch the	wrong
	version	of a file in some cases.

	* A bug	has been fixed in the handling of the executable bit.

	* A bug	has been fixed in aede(1), where is did	not permit branches to
	end when they had a removed file (without a UUID) which	has been
	subsequently recreated (with a UUID).

	* A bug	has been fixed in the aeget(1) command for file	contents.  It
	was giving a "multiple permissions set (bug)" error message.

	* A bug	in the aedist -receive command,	where it was not accurately
	manipulating the incoming change set UUID.

	* A bug	has been fixed in aed(1) which caused it to SEGFAULT.

	* A bug	has been fixed in the aede(1) command, where it	failed to copy
	the UUID when it promoted a file from "create" to "modify"
	automatically.

	* A bug	has been fixed in the $date substitution, it was not advancing
	properly when used in progress messages.

	* A bug	has been fixed in the command line processing of the aefa(1)
	command.

	* A bug	has been fixed in the aegis -review-begin command; it was not
	operating correctly when the change was	in awaiting_review but the
	project	was in goto_being_reviewed.

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

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

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

	* The aemv(1) command has been enhanced	to accept more than two	file
	names.	You are	now able to move serveral files	in the one command.

	* The aedist -receive command has been enhanced	to process move
	operations in a	batched	way.  This improved performance	when receiving
	a change that renames many files.

	* The ./configure script has been changed to take note of the
	--sysconfdir option, used to specify the location of the /etc
	directory.

	* A bug	has been fixed in the aepatch(1) command.  It would SEGFAULT
	when a non-source file was patched.

	* A bug	has been fixed in the aemeasure(1) command.  It	would SEGFAULT
	when no	files were named on the	command	line.

	* The Russian error message catalogue has been updated.

	* A subtle bug in the change file out-of-date tests have been fixed.
	It did not adequately address the transition case for projects
	containing files with and without UUIDs.

	* The ./configure --sysconfdir option is now honored.  It is very
	important to set it to /etc when you configure Aegis.

   Version 4.17	(3-Jun-2004)
	* Each new change set is now assigned a	Universally Unique Identifier
	(UUID) to allow	it to be tracked across	geographically distributed
	development.  The aedist(1) and	aepatch(1) commands now	send the
	change set UUIDs, and preserve them on receipt.

	* Each file now	has a Universally Unique Identifier (UUID) which
	allows tracking	files across renames, even on geographically separate
	sites.	(The aedist(1) and aepatch(1) commands send the	file UUIDs,
	the next release will take advantage of	them on	receipt.)

	* The history filename used to remember	file history is	now based in
	the file UUID, if the file has a UUID.	This simplifies	continuity of
	history	across renames (this fucntion always been present in Aegis,
	but harder to access).

	* As a consequence of the UUID being used to generate history file
	names, there is	no longer the restriction that new files may not be
	named after the	directory portion of a deleted file (or	vice versa).

	* There	is a new aecvsserver(1)	command, which presents	Aegis projects
	and change sets	as CVS modules.	 All of	the core CVS functions are
	supported.  This code needs to be exersized and	tested by users.

	* It is	now possible to	specify	arbitrary attribute names and value
	for each source	file.  The aefa(1) command may be used to edit file
	attributes.  The aedist(1) and aepatch(1) send these attributes; a
	future release will take advantage of the information on receipt.

	* It is	now possible to	attach arbitrary attribute names and values to
	change sets.  For example, you can use this to remember	the bugzilla
	tracking number	for a change.

	* The aepatch(1) command now includes change set meta-data as a
	compressed BASE64 encoded block	at the top of the patch, after the
	human-readable text but	before the files.  This	means that aepatch(1)
	can be as effective as aedist(1) is transmitting chaneg	sets.  Patches
	without	meta-data still	work as	before.

	* There	is a new report	script which writes change logs	in Debian
	format.

	* The aeget(1) web interface has been improved.	 The aepatch(1)
	download now accepts compat=N modifier,	and there is a new Project
	Staff page.

	* There	is a new ae-cvs-ci(1) support script which may be used as an
	integrate_pass_notify_command to commit	change sets to CVS in
	parallel.

	* There	is more	documentation in the User Guide	about using GNU	Diff,
	particularly using diff	-U to provide whole-file listings with "change
	bars" on the left hand side.

	* The files view of the	aeget(1) web interface now accepts options to
	control	the page contents.  The	simplest view allows recursive fetch
	of project sources using wget or similar, with no extraneous links to
	confuse	the results.  Previous behavior	is preserved by	the aeget-
	generated links.

	* You now receive a warning when you are seeing	the short version of
	the error messages.  These are terse and often quite cryptic. the long
	form of	the error messages is to be preferred.

	* The behaviour	of the aedeu(1)	command	has changed slightly.  When
	changes	are in the being reviewed state, and Aegis has been configured
	to use the awaiting review state, the aedeu(1) command will now	report
	an error.  This	is so that reviewers don't waste their time reviewing
	changes	which have already been	returned to the	being developed	state.
	Think of the change as "belonging" to the reviewer while in the	being
	reviewed state.

	* The aedist -send command has a new -compatibility option, use	to
	indicate the version of	the receiving aedist program.  This, in	turn,
	selects	the features which may be added	to or omitted form the
	generated .ae file.

	* There	is a new config	file usage, and	a corresponding	aenf
	-configure command line	option.	 It is now possible to move project
	configuration files.  It is now	possible to remove project
	configuration files, provided there is at least	one left.  The
	aeimport(1) command now	avoids files which have	the same name as the
	default	project	configuration file ("aegis.conf" or "config") and will
	use something else.

	* The aeipass(1) command now adds a symlink from the delta directory
	to the baseline	once it	has been integrated.  This helps lots of
	(idiotic) compilers which insist on burying absolute paths into
	executables.

	* It is	now possible to	assign to some project configuration file
	array fields more than once.  This can be useful where the
	configuration file is split into several pieces	on several branches.

	* The source language has been changed from C to C++.  Future releases
	will take advantage of this.

	* Several bugs have been fixed in the aeget(1) web interface where it
	would display "-42" instead of "0" for changes and branches numbered
	zero.

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

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

	* A bug	has been fixed in aedist(1) where one of the aegis -new-file
	commands was missing a -no-template argument.  Under some
	circumstances, this resulted in	change sets 
Results 1 - 1 of 1
Help - FTP Sites List - Software Dir.
Search over 15 billion files
© 1997-2017 FileWatcher.com