Provided by: atfs_1.4pl6-15_amd64 bug

NAME

       vadm - manipulate and administer version object base

SYNOPSIS

       vadm [ version binding options ] [ options ] [ action ] name..

       Options: [ -?fq ] [ -cache ] [ -force ] [ -help ] [ -nomail ] [ -quiet ] [ -stdin ]
                [ -version ]

       Actions: [ -alias version alias name ] [ -attr attribute ] [ -chaut user ]
                [ -chmod protection ] [ -chown user ] [ -delattr attribute name ]
                [ -d (or -delete) ] [ -l (or -lock) [version binding] ] [ -newgen ] [ -promote ]
                [ -set description | note | intent ] [ -setc comment leader ]
                [ -unlock [version binding] ] [ -unpromote ]

       vattr [ version binding options ] attribute name..

       vrm [ version binding options ]  name..

       sbmt [ version binding options ] name..

       publ [ version binding options ] name..

       accs [ version binding options ] name..

       frze [ version binding options ] name..

DESCRIPTION

       vadm is a general purpose command to perform all sorts of actions upon parts  of  an  AtFS
       object  repository.  It  can be used to lock or unlock an AtFS object for modification, to
       delete a particular object instance, to associate  symbolic  (alias)  names  with  version
       objects,  to  promote  or unpromote certain version objects from one status to another, to
       modify an objects access permissions, to set or modify a descriptive entry  of  particular
       version  objects,  to  set  or  modify  an  eventual change intention, and to set or unset
       various object attributes such as the author or any user defined attributes.

       vattr and vrm are short forms for vadm -attr and vadm -delete. See the descriptions of the
       -attr and the -delete options for details.

       sbmt,  publ,  accs,  and  frze are alternate program names for vadm that represent status-
       change operations for version objects. See the description of option -promote for details.

       The typical command invocation is supplemented by one or  more  command  options,  version
       binding  options   defining  the versions to be acted upon, an action specifier indicating
       the sort of action to be performed, and a set of object names defining the initial  subset
       of the object base that's going to be manipulated.

       Object  names  may  be  given in bound version notation, i.e. a notation that identifies a
       particular version of an object (e.g.  mkattr.c[2.4]).  It  is  also  possible  to  use  a
       previously  assigned  symbolic  name  rather than a numerical version identification (e.g.
       mkattr.c[tools-V4R3]). Make sure to  escape  the  bracket-symbols  when  using  csh(1)  or
       tcsh(1) because they have meaning to these shells.

OPTIONS

       For  version  selection,  any  version binding option, as described on the vbind(1) manual
       page, may be given, or a version bind directive may be given in brackets added to the file
       name.

       -?, -help
              print brief instructions about using vadm

       -cache apply  the requested operation to objects residing in the derived object cache. The
              set of actions that may be performed on binary pool objects is limited.

       -f, -force
              don't ask for confirmation when deleting versions from a history.

       -nomail
              Suppress the notification mail to the user who holds the lock  on  a  history  when
              breaking this lock (-unlock option).

       -q, -quiet
              suppress  any  prompts,  informal  messages  and user dialogues. Default values are
              assumed for everything that might otherwise be inquired interactively. This  option
              is useful for batch operation.

       -stdin forces  vadm  to  read  a  descriptive  text, note or intent from standard input if
              action -set is selected. The note is used for all specified AtFS objects. Otherwise
              your favorite editor (taken from the EDITOR environment variable) is invoked.

       -version
              print  version  information  about  the  vadm  program  itself.  No  action will be
              performed on the database.

       vadm will perform all of its operations upon a specified set of AtFS version  objects.  In
       case  no  such  set is specified, the operation will be applied to the most recently saved
       versions of the named object(s).

ACTIONS

       The kind of action to be performed upon a specified set of AtFS objects is indicated by  a
       keyword. The following actions are defined:

       -alias version alias name
              assigns the version alias name to the specified version. The name works as an alias
              for the version number, so it must  be  different  from  any  other  symbolic  name
              assigned  to  any  version  object  in a particular object history. It is, however,
              possible to assign the same symbolic name to version objects  in  different  object
              histories.  An  object  history  is usually denoted by a name, similarly to a files
              name.
              The use of alias names is a simple but effective way to associate component members
              of  a  system  configuration.  Typical  symbolic  names  will  look  something like
              Mysystem_Release_4.22, indicating that version objects with this name are  part  of
              release 4.22 of the system in question.

       -attr attrname
              Return  rthe  value  of  the named attribute. This may be a standard attribute or a
              user defined attribute. Check the list  below  for  a  complete  list  of  standard
              attribute names.

       -attr attrname[+|-]=[@|^|!|*]value
              defines  a user defined attribute with name attrname and sets it to the value value
              for all specified version objects.  This option may also be used to set  the  value
              of  certain  standard  attributes  (see  list below).  If attrname is followed by a
              single equal-symbol, the respective value of the object is set (or  reset)  to  the
              specified   value.  Any  previous  values  will  be  overwritten.  If  attrname  is
              immediately followed by the symbols ``plus-equal'' (+=),  the  specified  attribute
              value  will  be  appended  to  the  current  value  of  the  referenced  attribute.
              Accordingly, ``minus-equal'' (-=) should remove the specified value from the  given
              attribute.  In  the  current  implementation,  removal  of  single  values  is  not
              supported.
              There are four basic kinds  of  user  defined  attribute  values:  genuine  values,
              reference  values,  execution  values, and pointer values. The kind of an attribute
              value is determined when it is set.  If the first  character  of  value  is  an  at
              character  (@), the rest of value is taken to be the name of a file the contents of
              which will be taken as the value of the attribute.  This substitution  takes  place
              immediately,  i.e. the attribute has a genuine value.  If the filename is specified
              as ``-'', the attributes value will be read  from  standard  input.  If  the  first
              character  is  a  circumflex character (^), the rest of value is interpreted as the
              name of a file whose contents will be substituted for  the  attribute  when  it  is
              cited.  If  the  first character of value is an exclamation mark character (!), the
              rest of value is interpreted as the name of a program whose standard output will be
              substituted  for  the  attribute  when it is cited. Execution values can be used to
              generate highly dynamic attributes or even a primitive form of event  triggers.  An
              asterisk (*) as first character of value indicates a pointer to another version. In
              this case, the remainder of value must be a valid bound filename.
              User defined  attributes  may  be  of  arbitrary  length.  Any  sequence  of  ASCII
              characters  -  with  the  exception  of  \01 (control-A) - is allowed to make up an
              attribute value.  If attrname was already set to some  value,  the  previous  value
              will be replaced by the newly specified one.

       -attr @attrfile
              With  a @filename argument, the -attr option reads names and values of user defined
              attributes from the named file Each entry (each line) in the  attribute  file  must
              have  a  format  as  described  above.  The  files last character must be a newline
              character.

       -chaut user
              sets user the author of a particular revision. Normally, the author of  a  revision
              is considered the user who saved that revision. However, as certain permissions are
              tied to the author attribute of a revision, circumstances may occur  that  make  it
              necessary to change the author.

       -chmod protection
              changes the access permission code of the specified version objects to the supplied
              three-octal-digit protection. Currently, the access permissions are centered around
              UNIX'  notions  of  owner, group, and world access as well as the access categories
              read, write, and execute. These  permissions  are  inherited  upon  save  from  the
              permissions  of  the  file  representing  the  busy  object of an AtFS history. See
              chmod(2) for details.

       -chown user
              sets user the owner of an entire object history. This option is  not  supported  on
              BSD type systems, as only the superuser may change the owner of a file.

       -delattr attrname
              deletes  the  user defined attribute attrname from the set of attributes associated
              with the specified version objects.

       -d, -delete
              removes the specified version objects from the object base, provided  the  objects'
              status  is  saved. Any other status indicates that some kind of project interaction
              concerning this object might be in progress. If the programmer wants to delete such
              a  version  object  anyway,  he  has to -unpromote the respective objects status to
              saved before it can actually be deleted.

       -l, -lock [version binding]
              tries to reserve the privilege to add a new version to  an  objects  history,  thus
              preventing  multiple programmers working upon the same object base from interfering
              with each other by saving concurrent updates.  If the locking  operation  succeeds,
              write permission is given for the corresponding files in the development directory.
              When setting a new lock on an object history, the requesting user is  prompted  for
              an optional description of the planned changes.
              In  order to lock an object history successfully, the history must not be locked by
              any other programmer, and the  programmer  requesting  the  lock  must  have  write
              permission on the AtFS subdirectory hosting the object base.
              As  ShapeTools  allows  locking  of  single  generations  within  a  history, -lock
              optionally expects an argument denoting a generation.  Default is the  most  recent
              generation.  The  argument  may  be  a generation number (e.g. 2), a version number
              (e.g. 1.4), or a version alias (e.g. release-4.7).

       -newgen
              opens a new generation by duplicating the identified version. The version  must  be
              locked.  Any  existing  busy  versions  are  ignored  by this action. If no version
              binding is specified, the last saved version is taken by default.

       -promote
              assigns the next-better value to the specified objects' state attribute.  There are
              six  states  that  an  object instance can be in: busy, saved, proposed, published,
              accessed, and frozen. Version states are  intended  to  relate  to  visibility  and
              operational  restrictions  (see  for  example  -delete)  within  a  complex project
              environment.
              Due to the current lack of project library support, the version  states  have  very
              little  actual  functionality.  Implemented  to  its  full  extent,  certain  state
              transitions  may  only  be  triggered  by  appropriately  authorized   users.   The
              transitions busy→saved and saved→proposed will be triggered by regular programmers,
              whereas  the  remaining  transitions  have  to  be   initiated   by   the   project
              administrator.
              Each  transition  corresponds  to a specific action or interaction within a general
              software project  communication  scheme.  As  these  actions/interactions  will  be
              functionally  supported  by the project support system currently under development,
              the explicit manipulation of object states will no  longer  be  necessary  (except,
              perhaps for manual adjusting of ill situations).
              The following actions relate to the state transitions:
              save (busy→saved, performed by programmer)
              sbmt (saved→proposed, performed by programmer)
              accpt (proposed→published, performed by project administrator)
              accs (published→accessed, performed by any project member)
              release (accessed→frozen, performed by project administrator)
              A  different  interface to the status control facilities of vadm is provided by the
              program aliases sbmt, publ, accs, and frze. These commands correspond to conceptual
              project interactions like submit, publish, access, and freeze.
              Submit  is the operation performed by a team programmer when a work result (such as
              a completed change request) is proposed for  inclusion  into  the  official  system
              configuration. The associated status is proposed.
              Publish  is  an  operation  that  is  typically performed by members of the quality
              assurance group, when a work result, as proposed by a team programmer  is  approved
              and  thus  included  into the current official system configuration. The associated
              status is published.
              Access is an operation that is performed during configuration identification,  when
              component  versions  of  a (sub-)product are incorporated into some other (partial)
              (sub-)system configuration.  The associated status is accessed.
              Freeze is an operation that is performed during configuration identification,  when
              a  global release of the entire system configuration is established. The associated
              status is frozen

       -set [description | note | intent]
              allows to set or modify the descriptive text for an AtFS history  object  (i.e.  an
              entire  version  history), the note usually describing the differences of a version
              object with respect to its preceding version, or  an  entry  describing  a  planned
              change.  (Re-) setting the change intention may be appropriate, if a previously set
              change intent has been consumed by a sbmt command that  retained  the  lock  on  an
              object history.
              vadm  will  check  the  callers  environment for the EDITOR variable and invoke the
              program identified therein. If the EDITOR variable is not set, the systems  default
              editor  will  be  activated.  The user may write an arbitrary length descriptive or
              note entry using the editor. When the user leaves the editor, the resulting text is
              stored with the object history or the specified version objects.

       -setc comment_string
              sets  commentstring  as  the  (sequence  of) character(s) that opens a comment line
              within the formalism of the document.  This comment_string will be prepended to the
              lines  of the log history when the $__log$ attribute is expanded within the text of
              a revision.

       -unlock
              gives up the previously reserved privilege to update the history of an AtFS  object
              and clears the write-permission for the corresponding files. -unlock may be used by
              the owner of an object history to break a lock previously set  by  any  programmer.
              This option is useful to resolve deadlock situations resulting from careless use of
              -lock, or exceptional circumstances that require immediate updating  of  an  object
              history,  even  if  the lock holder is not present.  The previous owner of a broken
              lock is notified by a mail message.  Under  some  circumstances  mail-notifications
              upon  broken  locks can be annoying (e.g. when a development tree has been moved to
              another system or domain with locked busy-versions; in this  case  the  owner  must
              break  the  locks  to check the busy-versions back into the version archives at the
              new site). To avoid this effect, the switch -nomail can be used  to  suppress  mail
              notification.
              An eventually expressed change intention (see -lock) will be cleared.
              Technically,  the owner of an objects history is the owner of the AtFS subdirectory
              hosting the object base.

       -unpromote
              reverses a state transition carried out through a prior -promote.  The same remarks
              about  functional  embedding  (and  thus  hiding  the  state  transitions) of state
              transitions made for -promote hold for -unpromote.

PREDEFINED ATTRIBUTE NAMES

       Name    Meaning              Value                 Remarks

       alias   version alias names  list of alias names, like1,3
                                    ``vadm-4.2pre7'' or ``ShapeTools-1.4''
       atime   time of last access  e.g. ``Tue Jan 14 18:47:06 1992''3
       author  user who saved a version                     user@do.ma.in (domain name does1,3
                                    usually not include the hostname)
       cachekey                     unique key for cached versionscompound numeric built from3
                                    creation date, process id, and a serial
                                    number e.g. ``740148430.18469.6''
       clead   comment line leader symbol                   dependent on file type1
                                    e.g. ``# '' for Shapefiles
       ctime   time of last status change                   as atime
       Description                  descriptive text for modulemulti line text2
       dsize   size of delta to previous                    numeric
               version in bytes
       generation                   major revision number   numeric1,3
       Header  RCS-style version header                     text
       Intent  change intent        multi line text         2
       host    name of current host e.g. ``avalanche''      3
       Log     cumulative descriptive entries               multi line text
               of all versions from the first
               up to this one
       lock/locker                  user who locks a historyas author3
       ltime   time of last lock transaction                as atime3
       mode    access pprotection   e.g. ``-rw-r--r--''     1
       mtime   time of last modification                    as atime3
       name    name part of an object identifier            e.g. ``foo'' for ``foo.c''3
       note    short note describing the                    multi line text1, 2
               changes in this version
       owner   user who owns the repository in              as author1,3
               which this version is archived
       pred    bound version identifier of                  e.g. ``foo.c[3.22]'' or ``n/a''
               preceding version
       revision                     minor revision number   numeric1,3
       rtime   last time when history was locked            as atime
       self    bound version identifier for                 e.g. ``foo.c[3.23]''
               this version
       selfpath                     bound version identifier fore.g. ``/usr/proj/sample/foo.c[3.23]''
               this version including path
       size    size of the version in bytes                 numeric3
       state/status                 version status          symbolic integers (busy,1,3
                                    saved, proposed, published,
                                    accessed, and frozen)
       stime   time when the version was saved              as atime3
       succ    bound version identifier of                  as pred
               successive version
       syspath pathname part of an object                   e.g. ``/usr/proj/sample''3
               identifier           for ``/usr/proj/sample/foo.c''
       type    suffix part of an object                     e.g. ``c'' for ``foo.c''3
               identifier
       unixname                     UNIX file name of this versione.g. ``foo.c''
       unixpath                     UNIX file name of this versione.g. ``/usr/proj/sample/foo.c''
               including path
       version compound version number                      e.g. ``3.22''1,3
               consisting of generation
               and revision number
       vtime   version time, modification time              as atime
               for busy versions od save time
               for saved/cached versions
       xpoff   pseudo attribute that turns                  none
               off subsequent attribute
               expansions
       xpon    pseudo attribute that turns                  none
               subsequent attribute
               expansion on

       1 - may be modified by vadm -attr name=value.
       2 - may be modified by vadm -set <type>.
       3 - recognized by attr* predicates in version bind rules (see bindrules(7)).

ENVIRONMENT

       EDITOR

SEE ALSO

       save(1), retrv(1), vl(1), vbind(1)

AUTHORS

       Uli.Pralle@cs.tu-berlin.de, Axel.Mahler@cs.tu-berlin.de, Andreas.Lampen@cs.tu-berlin.de