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

FreeBSD Manual Pages

  
 
  

home | help
aegis -New_ReLeaSe(1)	    General Commands Manual	 aegis -New_ReLeaSe(1)

NAME
	aegis new release - create a new project from an old-style project.

SYNOPSIS
	aegis -New_ReLeaSe project-name	[ new-project-name ][ option...	 ]
	aegis -New_ReLeaSe -List [ option...  ]
	aegis -New_ReLeaSe -Help

DESCRIPTION
	The aegis -New_ReLeaSe command is used to create a new project from an
	existing  project.   It	 creates  a  new  post-3.0 project from	an old
	pre-3.0	project.

	Please Note: If	your old-style project does not	have a version	number
	in the project name, you must supply a new project name, otherwise you
	will  get  an error.  (If you want to re-use the old project name, you
	need to	rename the old project,	and then use aenrls to	create	a  new
	new-style  project with	the old	name.  See the HOWTO for how to	change
	a project's name.)

	This command was essential before the introduction  of	branches  into
	the  Aegis  model.   It	 is  more  useful to create a new release of a
	project	by ending development on the branch of	the  previous  release
	and  starting development of a new branch numbered for the desired re-
	lease.

	Once you have a	new-style project, use the aenbr(1) command to	create
	new  branches  on  this	project.  This provides	more efficient release
	management, and	allows historical versions to be reproduced more  sim-
	ply.

	If  no	new-project-name  is  specified,  it  will be derived from the
	project	given as follows: any minor version dot	suffix will be removed
	from the name, then any	major version dot suffix will be removed  from
	the name.  A major version dot suffix will be appended,	and then a mi-
	nor  version  dot  suffix  will	be appended.  As an example, "foo.1.0"
	would become "foo.1.1" assuming	the default minor  version  increment,
	and  "foo"  would become "foo.1.1" assuming the	same minor version in-
	crement.

	The entire project baseline will be copied.  The project state will be
	as if change 1 had already been	integrated, naming every file (in  the
	old  project) as a new file.  The history files	will reflect this.  No
	build will be necessary; it is assumed that the	old baseline was built
	successfully.  Change numbers will commence at 2, as will  build  num-
	bers.	Test numbers will commence where the old project left off (be-
	cause all the earlier test numbers were	used by	the old	project).

	The default is for the minor version number to be incremented.	If the
	major version number is	incremented or set, the	minor  version	number
	will be	set to zero if it is not explicitly given.

	The  pointer  to the new project will be added to the first element of
	the search path, or /usr/local/com if none is set.  If this  is	 inap-
	propriate, use the -LIBrary option to explicitly set the desired loca-
	tion.  See the -LIBrary	option for more	information.

	The  project  directory,  under	which the project baseline and history
	and state and change data are kept, will be created at this time.   If
	the -DIRectory option is not given, the	project	directory will be cre-
	ated in	the directory specified	by the default_project_directory field
	of the project user's aeuconf(5), or if	not set	in project user's home
	directory; in either case with the same	name as	the project.

	All staff will be copied from the old project to the new project with-
	out change, as will all	of the project attributes.

THE BASELINE LOCK
	The  baseline  lock  is	 used to ensure	that the baseline remains in a
	consistent state for the duration of commands which need to  read  the
	contents of files in the baseline.

	The  commands  which  require the baseline to be consistent (these in-
	clude the aeb(1), aecp(1) and aed(1) commands) take  a	baseline  read
	lock.	This is	a non-exclusive	lock, so the concurrent	development of
	changes	is not hindered.

	The command which modifies the baseline, aeipass(1), takes a  baseline
	write  lock.   This  is	an exclusive lock, forcing aeipass(1) to block
	until there are	no active baseline read	locks.

	It is possible that one	of the above development commands  will	 block
	until an in-progress aegis -Integrate_PASS completes.  This is usually
	of  short duration while the project history is	updated.  The delay is
	essential so that these	commands receive  a  consistent	 view  of  the
	baseline.   No other integration command will cause the	above develop-
	ment commands to block.

	When aegis' branch functionality is in	use,  a	 read  (non-exclusive)
	lock  is  taken	 on  the branch	baseline and also each of the "parent"
	baselines.  However, a baseline	write (exclusive) lock is  only	 taken
	on  the	branch baseline; the "parent" baselines	are only read (non-ex-
	clusive) locked.

   Project Directory Location
	Please Note: Aegis also	consults the underlying	file system, to	deter-
	mine its notion	of maximum file	size.  Where the file system's maximum
	file size is less than maximum_filename_length,	the  filesystem	 wins.
	This can happen, for example, when you are using the Linux UMSDOS file
	system,	 or  when  you	have  an NFS mounted an	ancient	V7 filesystem.
	Setting	maximum_filename_length	to 255 in these	cases does  not	 alter
	the  fact  that	the underlying file systems limits are far smaller (12
	and 14,	respectively).

	If your	development directories	(or your whole project)	is on filesys-
	tems with filename limitations,	or  a  portion	of  the	 heterogeneous
	builds	take place in such an environment, it helps to tell Aegis what
	they are (using	the project config file's fields) so  that  you	 don't
	run into the situation where the project builds	on the more permissive
	environments, but fails	with mysterious	errors in the more limited en-
	vironments.

	If  your  development  directories  are	 routinely  on	a Linux	UMSDOS
	filesystem, you	would probably be better off setting  dos_filename_re-
	quired	=  true,  and also changing the	development_directory_template
	field.	Heterogeneous development with	various	 Windows  environments
	may also require this.

OPTIONS
	The following options are understood:

	-DIRectory path
		This  option  may  be used to specify which directory is to be
		used.  It is an	error if the current user does not have	appro-
		priate permissions to create the directory path	 given.	  This
		must be	an absolute path.

		Caution:  If  you are using an automounter do not use `pwd` to
		make an	absolute path, it usually gives	the wrong answer.

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

	-LIBrary abspath
		This  option may be used to specify a directory	to be searched
		for global state files and user	state files.  (See aegstate(5)
		and aeustate(5)	for more information.)	 Several  library  op-
		tions  may  be	present	on the command line, and are search in
		the order given.  Appended to this explicit  search  path  are
		the  directories specified by the AEGIS_PATH environment vari-
		able (colon separated),	and finally,  /usr/local/lib/aegis  is
		always	searched.   All	paths specified, either	on the command
		line or	in the AEGIS_PATH environment variable,	 must  be  ab-
		solute.

	-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.

	-TERse
		This option may	be used	to cause listings to produce the  bare
		minimum	 of  information.   It	is  usually  useful  for shell
		scripts.

	-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.

	-VERSion number
		This  option may be used to specify the	version	number for the
		project.  Version number are implemented as branches.  Use the
		empty string as	the argument if	you want no  version  branches
		created.

	-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.

RECOMMENDED ALIAS
	The recommended	alias for this command is
	csh%	alias aenrls 'aegis -nrls \!* -v'
	sh$	aenrls(){aegis -nrls "$@" -v}

ERRORS
	It is an error if the old project named	does not exist.

	It is an error if the old project named	has not	yet  had  any  changes
	integrated.

	It  is	an  error  if the old project named has	any changes not	in the
	completed state.

	It is an error if the current user is not an administrator of the  old
	project.

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.

SEE ALSO
	aenpr(1)
		create a new project

	aermpr(1)
		remove project

	aeuconf(5)
		user configuration file	format

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/

	Aegis User Guide
		The chapter on Branching has useful information	about releases
		and branching.

Reference Manual		     Aegis		 aegis -New_ReLeaSe(1)

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

home | help