Seth Woolley's Man Viewer

aeipass(1) - -Integrate_Pass - pass a change integration - man 1 aeipass

([section] manual, -k keyword, -K [section] search, -f whatis)
man plain no title

 -Integrate_Pass(1)                                         -Integrate_Pass(1)



NAME
        -Integrate_Pass - pass a change integration

SYNOPSIS
       -Integrate_Pass [ option...  ]
       -Integrate_Pass -List [ option...  ]
       -Integrate_Pass -Help

DESCRIPTION
       The -Integrate_Pass command is used to notify  that a change has passed
       integration.  The change is advanced from the being integrated state to
       the completed state.

         being
       integrated
            |
            |integrate
            |pass
            |

       completed


       This  command  updates  the file(1,n) histories, so that future aecp(1) com-
       mands may extract previous file(1,n) versions  from  history(1,3,n,1 builtins),  and  so  that
       future  aed(1)  commands  may  merge(1,8) out-of-date files.  The history(1,3,n,1 builtins) is
       updated using the history_create_command and history_put_command fields
       of  the  project  configuration  file(1,n) (see aepconf(5) for more informa-
       tion).  The integrate pass will abort(3,7) with an error(8,n)  if(3,n)  one  of  these
       history(1,3,n,1 builtins)  commands  should  fail, e.g. by running out of disk space.  If
       this should happen, the change will  remain  in(1,8)  the  being  integrated
       state, and the integration directory is unaltered.

       Once the history(1,3,n,1 builtins) has been updated, the integration directory is renamed
       as the baseline directory, and the old baseline directory is deleted.

       Once integrate pass is complete the change is no longer assigned to the
       current user.

   History Tools Modify Files
       Many  history(1,3,n,1 builtins)  tools (e.g. RCS and SCCS) can modify the contents of the
       file(1,n) when it is committed.  This usually requires the use  of  specific
       ``keyword''  strings, and there are usually options to turn this behav-
       ior off, but users(1,5) familiar with version(1,3,5) control tools (as  opposed  to
       configuration  management  systems) will often use these features.  The
       problem is that if(3,n) the commit changes the file(1,n), the source file(1,n) in(1,8)  the
       repository  now  no  longer  matches the object file(1,n) in(1,8) the repository.
       I.e.  the history(1,3,n,1 builtins) tool has compromised the referential integrity of the
       repository.   By  default,  a  fatal  error(8,n)  is  emitted if(3,n) the file(1,n) is
       changed by the check-in, however this can be modified to a  be  warning
       or  even  ignored completely; see the history_put_trashes_file field of
       aepconf(5) for more information.

   File Modification Times
       The modification times of all files modified  since  the  beginning  of
       integration  (see aeib(1) for more information) are updated to be since
       the beginning of integrate pass.  The order of modification times  will
       be preserved, however the time(1,2,n) range will be compressed to the greatest
       extent possible.  This ensures that subsequent development builds  will
       notice that baseline files have changed.

       Note  that if(3,n) there are many new files with all different timestamps in(1,8)
       the integration directory, and if(3,n) the number of  files  with  different
       timestamps  exceeds  the number of seconds since the start of the inte-
       grate-pass command, Aegis may have to set(7,n,1 builtins) file(1,n) modification times  into
       the future.

       The  build_time_adjust field of the project config(1,5) file(1,n) controls Aegis'
       behavior in(1,8) this case.  (See aepconf(5) for more  information.)   There
       are three settings:

       adjust_and_sleep
               This setting, which is the default, causes Aegis to sleep(1,3) until
               the file(1,n) modification times would no longer be in(1,8)  the  future.
               This  avoids  both  development  build problems and integration
               build problems, both of which  which  can  arise  as  a  result
               "interesting" file(1,n) modification times.

       adjust_only
               Aegis  will  issue  a  warning that the file(1,n) modification times
               extend into the future, but will not  sleep.   This  may  cause
               integration build problems, particularly if(3,n) you are using aein-
               tegratq(1).  Development builds may perform  redundant  builds,
               however aet -reg should not produce false negatives.

       dont_adjust
               This  is  highly  inadvisable.   It is provided solely for some
               very rare circumstances.  This  setting  causes  Aegis  not  to
               adjust  the file(1,n) modification times at all.  This can have very
               unhappy side-effects, especially of the integration  build  was
               before  one  or  more development builds; the commonest symptom
               being that development builds do not always cause a  relink  of
               the  necessary  executables,  and aet -reg may give false nega-
               tives.  It is strongly recommended that you  do  not  use  this
               setting.

       If  you  use cook(1), see the time-adjust-back flag for how to compress
       the time(1,2,n) range even further.  This usually  makes  the  sleep(1,3)  (or  the
       warning period) significantly shorter.

   Notification
       On  successful  completion  of this command, after the directory rename(1,2,n)
       has ocurred and after the database has been updated, the  integration_-
       pass_notify_command  field  of  the  project attributes is run, if(3,n) set.
       See aepattr(5) and aepa(1) for more information.  This command  is  run
       as the project owner.

       Some  compilers bury absolute path names into object files and executa-
       bles.  The renaming of the integration  directory  to  become  the  new
       baseline  breaks  these paths.  The above command is passed an environ-
       ment variable called AEGIS_INTEGRATION_DIRECTORY so that the  appropri-
       ate symlink may be placed, if(3,n) desired.

       Other  commands run by this command include the history_create_command,
       history_put_command and history_query_command  fields  of  the  project
       config(1,5) file.  See aepconf(5) for more information.

   The History Lock
       Where  a  project has a number of branches active simultaneously, it is
       possible for independent integrate pass commands for different branches
       to  be  issued  very  close(2,7,n) together.  The is an exclusive history(1,3,n,1 builtins) lock
       taken by integrate pass to ensure that only one branch is updating  the
       file(1,n) history(1,3,n,1 builtins) at a time(1,2,n), thus preventing history(1,3,n,1 builtins) file(1,n) corruption.

OPTIONS
       The following options are understood:

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

ERRORS
       It is an error(8,n) if(3,n) the change is not assigned to the current user.
       It is an error(8,n) if(3,n) The change is not in(1,8) the being integrated state.
       It  is  an  error(8,n) if(3,n) there has been no successful ' -Build' command for
       the integration.
       It is an error(8,n) if(3,n) there has been no successful ' -Test' command for the
       integration.
       It  is an error(8,n) if(3,n) there has been no successful ' -Test -BaseLine' com-
       mand for the integration.

SEE ALSO
       aeib(1) begin integration of a change

       aeifail(1)
               fail integration of a change

       aemeasure(1)
               simple file(1,n) metrics

       aemetrics(5)
               metrics values file(1,n) format

       aeuconf(5)
               user configuration file(1,n) format



                               Reference Manual             -Integrate_Pass(1)

References for this manual (incoming links)