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)

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

home | help