Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
aegis -CLEan(1)						       aegis -CLEan(1)

NAME
	aegis clEan - clean files from development directory

SYNOPSIS
	aegis -CLEan [ option...  ]
	aegis -CLEan -Help
	aegis -VERSion

DESCRIPTION
	The aegis -CLEan command is used to remove all files which are not
	change source files from a development directory.  This	can be used to
	obtain a "clean" development directory before a	final build, to	ensure
	that a change is ready to end development.  A new build	will be	re-
	quired.

	This command is	only allowed in	the "being developed" state, and only
	the change's developer may issue it.  It may not be applied to
	branches.

	All symbolic links will	be removed from	the development	directory,
	even if	remove_symlinks_after_build = false in the project config
	file.  The symbolic links will be re-installed,	if create_symlinks_-
	before_build = true.  This is to ensure	that the symlinks are accu-
	rate, and that unnecessary ones	are removed.

	All special device files, pipes	and sockets will be removed.  These
	files cannot be	source files, and it is	expected that the following
	build will restore them.

	All derived files created by previous builds of	the change will	be re-
	moved.	It is expected that the	following build	will recreate them.
	Any temporary files you	may have created in the	development directory
	will also be removed.

	The develop_begin_command in the project configuration file (see aep-
	conf(5)	for more information) will be run, if there is one.  The
	change_file_command will be run, if there is one.  The
	project_file_command will be run, if there is one.

	You will be warned if any of the files are out-of-date and need	to be
	merged.	 You will be warned if any files need to be differenced.

SYMBOLIC LINKS
	Many dependency	maintenance tools, and indeed some compilers, have
	little or no support for include file search paths, and	thus for the
	concept	of the two-level directory hierarchy employed by Aegis.	 (It
	becomes	multi-level when Aegis'	branching functionality	is used.)  To
	allow these tools to be	used, Aegis provides the ability to maintain a
	set of symbolic	links between the development directory	of a change
	and the	baseline of a project, so it appears to	these tools that all
	of the project's files are present in the development directory.

   Project Configuration
	The development_directory_style	field of the project configuration
	file controls the appearance of	the development	directory.  See	aep-
	conf(5)	for more information.

	By using a setting such	as
		development_directory_style =
		{
		    source_file_symlink	= true;
		    during_build_only =	true;
		};
	the user never sees the	symbolic links,	because	they are added purely
	for the	benefit	of the dependency maintenance tool during the execu-
	tion of	the aeb(1) command.

	By using a setting such	as
		development_directory_style =
		{
		    source_file_symlink	= true;
		};
	(the other will	default	to false) the symbolic links will be created
	at develop begin time (see aedb(1) for more information) and also
	maintained by each aeb(1) invocation.  Note that the symbolic links
	are only maintained at these times, so project integrations during the
	course of editing change sourec	files may leave	the symbolic links in
	an inconsistent	state until the	next build.

	When files are copied from the baseline	into a change, using the
	aecp(1)	command, the symbolic link pointing into the baseline, if any,
	will be	removed	before the file	is copied.

	Note: Using this functionality in either form has implications for how
	the rules file of the dependency maintenance tool is written.  Rules
	must remove their targets before creating them (usually	with an	rm -f
	command) if you	use any	of the link sub-fields (both hard links	and
	symbolic links).  This is to avoid attempting to write the result on
	the symbolic link, which will point at a read-only file	in the project
	baseline.  This	is similar to the same requirement for using the
	link_integration_directory field of the	project	configuration file.

   User	Configuration
	There is a symbolic_link_preference field in the user configuration
	file (see aeuconf(5) for more information).  This controls whether
	aeb(1) will verify the symbolic	links before the build (default) or
	whether	it will	assume they are	up-to-date.  (This field is only rele-
	vant if	development_directory__style.source_file_symlink is true.)

	For medium-to-large projects, verifying	the symbolic links can take as
	long as	the build itself.  Assuming the	symbolic links are up-to-date
	can be a large time-saving for these projects.	It may be advisable to
	review your choice of DMT in such a situation.

	The aedb(1) command does not consult this preference.  Thus, in	most
	situations, the	symbolic links will be up-to-date when the build is
	performed.  The	only Aegis function which may result in	the symbolic
	links becoming out-of-date is the integration of another change, as
	this may alter the presence or absence of files	in the baseline.  In
	this situation,	the default aeb(1) action is to	ignore the user	pref-
	erence and the verify symbolic links.

	There are two command line options which modify	aeb(1) behavior	fur-
	ther: the -Verify-Symbolic-Links option	says to	verify the symbolic
	links; and the -Assume-Symbolic-Links option says to assume the	sym-
	bolic links are	up-to-date.  In	each case the option over-rides	the
	default	and the	user preference.

	It is possible to obtain behaviour similar to Tom Lord'a Arch by using
	a setting such as:
		development_directory_style =
		{
		    source_file_link = true;
		    source_file_symlink	= true;
		};

	It is possible to obtain behaviour similar to CVS by using a setting
	such as:
		development_directory_style =
		{
		    source_file_copy = true;
		};
	There are many more possible configurations of the development_-
	directory_style, usually with helpful build side-effects.  See aep-
	conf(1)	and the	Depenedency Maintenance	Tool chapter of	the User Guide
	for more information.

	The symbolic link command line options and preferences apply equally
	to hard	links and file copies (the names have historical origins).

   Notification
	The notification commands that would be	run by the aecp(1), aedb(1),
	aenf(1), aent(1) and aerm(1) commands are run, as appropriate.	The
	project_file_command is	also run, if set.  See aepconf(5) for more in-
	formation.

OPTIONS
	The following options are understood:

	-Change	number
		This option may	be used	to specify a particular	change within
		a project.  See	aegis(1) for a complete	description of this
		option.

	-Help
		This option may	be used	to obtain more information about how
		to use the aegis program.

	-List
		This option may	be used	to obtain a list of suitable subjects
		for this command.  The list may	be more	general	than expected.

	-Not_Logging
		This option may	be used	to disable the automatic logging of
		output and errors to a file.  This is often useful when	sev-
		eral aegis commands are	combined in a shell script.

	-TOuch	This option may	be used	to request that	each change source
		file have its last-modified time-stamp be updated to the cur-
		rent time.  This is the	default.  Derived files	and other non-
		source file are	left alone.

	-No_TOuch
		This option may	be used	to request that	the last-modified
		time-stamp of each source file be left unmodified.

	-MINIMum
		This option may	be used	to request a minimum set of symbolic
		links, when the	create_symlinks_to_baseline functions are be-
		ing used.  This	is useful if you want to simulate something
		like aeib -minimum in the development directory.  This option
		is not meaningful if symbolic links are	not being used.

		This option also says not to remove normal files which occlude
		project	source files.  This is a common	technique used to tem-
		porarily over-ride project source files.  The "aecp -read-
		only" command would have been more appropriate.

	-Project name
		This option may	be used	to select the project of interest.
		When no	-Project option	is specified, the AEGIS_PROJECT	envi-
		ronment	variable is consulted.	If that	does not exist,	the
		user's $HOME/.aegisrc file is examined for a default project
		field (see aeuconf(5) for more information).  If that does not
		exist, when the	user is	only working on	changes	within a sin-
		gle project, the project name defaults to that project.	 Oth-
		erwise,	it is an error.

	-Verbose
		This option may	be used	to cause aegis to produce more output.
		By default aegis only produces output on errors.  When used
		with the -List option this option causes column	headings to be
		added.

	-Wait	This option may	be used	to require Aegis commands to wait for
		access locks, if they cannot be	obtained immediately.  De-
		faults to the user's lock_wait_preference if not specified,
		see aeuconf(5) for more	information.

	-No_Wait
		This option may	be used	to require Aegis commands to emit a
		fatal error if access locks cannot be obtained immediately.
		Defaults to the	user's lock_wait_preference if not specified,
		see aeuconf(5) for more	information.

	See also aegis(1) for options common to	all aegis commands.

	All options may	be abbreviated;	the abbreviation is documented as the
	upper case letters, all	lower case letters and underscores (_) are op-
	tional.	 You must use consecutive sequences of optional	letters.

	All options are	case insensitive, you may type them in upper case or
	lower case or a	combination of both, case is not important.

	For example: the arguments "-project", "-PROJ" and "-p"	are all	inter-
	preted to mean the -Project option.  The argument "-prj" will not be
	understood, because consecutive	optional characters were not supplied.

	Options	and other command line arguments may be	mixed arbitrarily on
	the command line, after	the function selectors.

	The GNU	long option names are understood.  Since all option names for
	aegis are long,	this means ignoring the	extra leading '-'.  The	"--op-
	tion=value" convention is also understood.

EXIT STATUS
	The aegis command will exit with a status of 1 on any error.  The
	aegis command will only	exit with a status of 0	if there are no	er-
	rors.

ENVIRONMENT VARIABLES
	See aegis(1) for a list	of environment variables which may affect this
	command.  See aepconf(5) for the project configuration file's
	project_specific field for how to set environment variables for	all
	commands executed by Aegis.

COPYRIGHT
	aegis version 4.25.D510
	Copyright (C) 1991, 1992, 1993,	1994, 1995, 1996, 1997,	1998, 1999,
	2000, 2001, 2002, 2003,	2004, 2005, 2006, 2007,	2008, 2009, 2010,
	2011, 2012 Peter Miller

	The aegis program comes	with ABSOLUTELY	NO WARRANTY; for details use
	the 'aegis -VERSion License' command.  This is free software and you
	are welcome to redistribute it under certain conditions; for details
	use the	'aegis -VERSion	License' command.

AUTHOR
	Peter Miller   E-Mail:	 pmiller@opensource.org.au
	/\/\*		  WWW:	 http://miller.emu.id.au/pmiller/

Reference Manual		     Aegis		       aegis -CLEan(1)

NAME | SYNOPSIS | DESCRIPTION | SYMBOLIC LINKS | OPTIONS | EXIT STATUS | ENVIRONMENT VARIABLES | COPYRIGHT | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=aeclean&sektion=1&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help