vadm(1) | ShapeTools | vadm(1) |
vadm - manipulate and administer version object base
vadm [ version binding options ]
[ options ] [ action ]
name..
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.
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.
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).
The kind of action to be performed upon a specified set of AtFS objects is indicated by a keyword. The following actions are defined:
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.
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.
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).
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
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.
Technically, the owner of an objects history is the owner of the AtFS subdirectory hosting the object base.
Name Meaning Value Remarks alias version alias names list of alias names, like 1,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 does 1,3 usually not include the hostname) cachekey unique key for cached versions compound numeric built from 3 creation date, process id, and a serial number e.g. ``740148430.18469.6'' clead comment line leader symbol dependent on file type 1 e.g. ``# '' for Shapefiles ctime time of last status change as atime Description descriptive text for module multi line text 2 dsize size of delta to previous numeric version in bytes generation major revision number numeric 1,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 history as author 3 ltime time of last lock transaction as atime 3 mode access pprotection e.g. ``-rw-r--r--'' 1 mtime time of last modification as atime 3 name name part of an object identifier e.g. ``foo'' for ``foo.c'' 3 note short note describing the multi line text 1, 2 changes in this version owner user who owns the repository in as author 1,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 numeric 1,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 for e.g. ``/usr/proj/sample/foo.c[3.23]'' this version including path size size of the version in bytes numeric 3 state/status version status symbolic integers (busy, 1,3 saved, proposed, published, accessed, and frozen) stime time when the version was saved as atime 3 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 version e.g. ``foo.c'' unixpath UNIX file name of this version e.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)).
EDITOR
Uli.Pralle@cs.tu-berlin.de, Axel.Mahler@cs.tu-berlin.de, Andreas.Lampen@cs.tu-berlin.de
Fri Jul 9 16:30:15 1993 | vadm-4.10 |