Man Linux: Main Page and Category List

NAME

       aegis integrate begin - begin integrating a change

SYNOPSIS

       aegis -Integrate_Begin change-number [ option...  ]
       aegis -Integrate_Begin -List [ option...  ]
       aegis -Integrate_Begin -Help

DESCRIPTION

       The aegis -Integrate_Begin command is used to begin the integration of
       a change into the baseline of a project.

       The change will advance from the awaiting integration state to the
       being integrated state.  boxwid = 1 down S4: box "awaiting"
       "integration" arrow " integrate" ljust " begin" ljust S5: box "being"
       "integrated" T4: spline -> from S5.w then left 0.5 then up 1 then to
       S4.w " integrate" ljust " begin" ljust " undo" ljust at T4.c - (0.5,0)

       A (logical) copy of the baseline is created in an integration directory
       and the the files of the change are added to the integration directory.
       The time stamps of files copied from the baseline are preserved, time
       stamps on the files copied from the development directory are all set
       to the time of the beginning of the integration.  The aegis
       -Change_Directory command may be used to locate the integration
       directory.  The change will be assigned to the current user.

       Please note that only regular files and symbolic links are copied
       (linked) from the baseline to the integration directory.  This has some
       implications:

       · Special files (devices, named pipes, etc) will not be reproduced in
         the integration directory; you will need to create these as part of
         the build.

       · If the case of the -minimum option (see below), only primary source
         files are copied (linked) across.  Derived files (including symbolic
         links) are expected to be created as part of the build.

       · If the case of the -minimum option, directories are only created when
         required to hold a file which satisfies the above criteria.  If you
         need special empty directories, or directories which contain only
         special files, or only contain derived files, you need to create them
         as part of the build.

       The link_integration_directory field of the project configuration file
       (see aepconf(5) for more information) controls whether the copy of the
       baseline is done by copying the files or by creating hard links to the
       files.  The hard links are just one of the constraints on the location
       of the integration directory.  The integrate begin will abort with an
       error if this copy operation fails, e.g. by running out of disk space.
       If this should happen, the change will remain in the awaiting
       integration state, and the integration directory will be removed.

       The change will be assigned a delta number.  Delta numbers are
       incremented once for each aegis -Integrate_Begin command for the
       project.  If an integration is subsequently aborted with either the
       aegis -Integrate_Begin_Undo or aegis -Integrate_FAIL command, the delta
       number will not be re-used.

       It is not possible to choose the integration directory, as there are
       many constraints upon it, including the fact that it must be on the
       same device as the baseline directory, and that many UNIX
       implementations don’t allow renaming directories up and down the trees.
       The integration directory will be in the project directory, and named
       for the delta number.

   Notification
       On successful completion of this command, the integration_begin_command
       field of the project config file is run, if set.  See aepconf(5) for
       more information.

Minimum Integrations

       Aegis provides a minimum integration capability which may be used for
       various reasons.  The term minimum may be a bit counter intuitive.  One
       might think it means to the minimum amount of work, however it actually
       means use a minimum of files from the baseline in populating the delta
       directory.  This normally leads to actually building everything in the
       project from sources and, as such, might be considered the most robust
       of builds.

       Note that any change which removes a file, whether by aerm, aemv or
       aemt, results in an implicit minimum integration.  This is intended to
       ensure nothing in the project references the removed file.

       A project may adopt a policy that a product release should be based on
       a minimum integration.  Such a policy may be a reflection of local
       confidence, or lack thereof, in the project’s DMT (Dependency
       Maintenance Tool) or build system.  Or it may be based on a validation
       process wishing to make a simple statement on how the released package
       was produced.

       Another, more transient, reason a to require a minimum integration
       might be when upgrading a third party library, compiler or maybe even
       OS level.  Any of these events would signal the need for a minimum
       integration to ensure everything is rebuilt using the new resources.

       The cost of a minimum integration varies according to type and size of
       the project.  For very large projects, especially those building large
       numbers of binaries, the cost can be large.  However large projects
       also require significant time to fully populate the delta directory.  A
       minimum integration only copies those files under Aegis control,
       skipping all “produced” files.  In the case where a file upon which
       everything depends is changed, everything will be built anyway so the
       copy of the already built files is a waste of time.  This means that
       sometimes a minimum can be as cheap as a normal integration.

   Change Set Attributes
       The follwoing user-defined change set attributes are understood:

       integrate-begin-hint
               If this is set to "minimum" or "maximum", it is as if these
               options appeared on the command line.  Only consulted if
               neither -minimum nor -maximum appear on the command line.

       All other user defined change set attributes are ignored.

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.

       -MAXimum
               This option may be used to cause all files to be copied into
               the integration directory.  This is the default, unless the
               change requires the deletion of a file.

       -MINImum
               This option may be used to cause only the source files to be
               copied into the integration directory.  The default is to copy
               all files, unless the change requires the deletion of a file.

       -Project name
               This option may be used to select the project of interest.
               When no -Project option is specified, the AEGIS_PROJECT
               environment 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 single
               project, the project name defaults to that project.  Otherwise,
               it is an error.

       -REAson text
               This option may be used to attach a comment to the change
               history generated by this command.  You will need to use quotes
               to insulate the spaces from the shell.

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

       -Wait   This option may be used to require Aegis commands to wait for
               access locks, if they cannot be obtained immediately.  Defaults
               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
       optional.  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
       interpreted 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
       "--option=value" convention is also understood.

RECOMMENDED ALIAS

       The recommended alias for this command is
       csh%    alias aeib ’aegis -ib \!* -v’
       sh$     aeib(){aegis -ib "$@" -v}

ERRORS

       It is an error if the change is not in the awaiting integration state.
       It is an error if the current user is not an integrator of the project.
       It is an error if there is an integration in progress for the project.
       It is an error if the current user developed the change and the project
       is configured to disallow developers to integrate their own changes
       (default).
       It is an error if the current user reviewed the change and the project
       is configured to disallow reviewers to integrate their such changes
       (default).

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

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

       aeb(1)  build a change

       aecd(1) change directory

       aeibu(1)
               reverse the aeib command

       aeifail(1)
               fail integration of a change

       aeintegratq(1)
               Automate the integration queue.

       aeipass(1)
               pass integration of a change

       aeni(1) add new integrators to a project

       aerpass(1)
               pass review of a change

       aet(1)  run tests

       aeuconf(5)
               user configuration file format

COPYRIGHT

       aegis version 4.24.3.D001
       Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
       2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/