Provided by: atfs_1.4pl6-11_i386 bug

NAME

       vbind - bind name to version

SYNOPSIS

       vbind [ options ] filenames ..

       General version binding options:
            [ -bind version binding ] [ -before baseline ] [ -since baseline ]
            [ -last ] [ -lastsaved ] [ -uniq ] [ -nonuniq ]
            [ -rule rulebody | rulename ] [ -rulefile filename ] [ -trace ]

       vbind command specific options:
            [ -? (or -help) ] [ -alias version alias ] [ -date date ]
            [ -vnum version number ] [ -nomsg ] [ -ruledump ] [ -ruleerr ]
            [ -rulelist ] [ -ruletest ] [ -version ]

OVERVIEW

       This  manual  page  describes the ShapeTools Version Binding mechanism,
       available in most commands of the toolkit. The general version  binding
       options described on this page are available in many commands such like
       vl(1), vcat(1), vadm(1), save(1) and retrv(1) (just to  name  the  most
       important  ones). The vbind command specific options are private to the
       vbind command (see below).

       Version binding is the process of selecting one or more versions from a
       filenames history in order to provides access to these version(s). This
       is conducted by version bind directives  (or  just  version  bindings),
       which may be one of the following:

       version numbers
                     "1.2" (version), "1." (generation), ".2" (revision)

       version alias names
                     "ShapeTools-1.4", or "AtFS-2.0"
                     Version  alias  names are symbolic names tagged to single
                     versions.  They must be unique throughout a history.

       date specifications
                     "10.2.93" or "4.3." (European), "Feb 10, 1993" or "Mar 4{
                     (American)
                     A  date may additionally contain a time in the form hh:mm
                     or  hh:mm:ss.  See  sttime(3)  for  a  complete  list  of
                     recognized date formats.

       bind rule names
                     "most_recent:"   (plain),  "from_release(VC-4.0):"  (with
                     argument)
                     The  colon  is  not  part  of  the  rule  name.  See  the
                     bindrules(7)  manual  page  for  a  description on how to
                     define version bind rules.

       By default, version binding selects all versions fulfilling  the  given
       version  bind  requirements. The -uniq option changes this behavior and
       treats only unique identification as success. With this  option  given,
       version bind ignores all histories with more than one selected version.
       The -last and -lastsaved  options  unify  a  non  unique  selection  by
       choosing  the last version (modification/saving time) or the last saved
       version (saving time) from the bind hit set of each name.

       The file $SHAPETOOLS/lib/shape/BindRules contains predefined rules  for
       various  cases.  You may also define your own rule file and invoke this
       by either the -rulefile option or by extending the search space defined
       by the SHAPETOOLS environment variable. For information on how to write
       version bind rules, see the bindrules(7) manual page.

VERSION BINDING IN ACTION

       Version bind directives can  be  given  either  in  brackets,  directly
       following  the name to be bound, or as option arguments. Options may be
       user to set version bindings to be applied to all name arguments (-bind
       and  -rule  options)  or  to  define version ranges (-since and -before
       options).

       Version identification  by  version  number  or  version  alias  either
       results in a unique selection or fails, when no appropriate version was
       found.

       foo[1.2]        Identifies a specific version by it's version number.

       foo[release-2]  Is interpreted as identification by version alias name.

       Version identification by date selects the versions from a history that
       have  been  the  most  recently  saved  versions  at  the  given  date.
       Identification by date may lead to multiple versions  when  development
       work in multiple generations happened simultaneously at the given date.
       Vbind understands various date formats such as in the list  below.  The
       sttime(3) manual page lists all recognized date formats.

       foo[Jan 31, 1992]

       foo[92/01/31]

       foo[10.5.92 7:00:00]

       Version bind rules describe general version binding policies.  They are
       usually not dependent on particular file histories and may  be  applied
       to  all  histories.  Version  bind rules may have arguments enclosed in
       parentheses following the name.

       foo[bind_rule:]

       foo[bind_rule(arg1,arg2,...argN):]

       When the colon at the end of the rule  name  in  brackets  is  omitted,
       vbind  first  interprets  the  given  string as version alias.  When no
       version with this alias name was found, vbind treats the string as rule
       name and gives it a second try.

       Plain filenames are those not followed by any version bind directive in
       square brackets. Without a rule given with  the  -rule  option  on  the
       command  line, plain filenames are bound using the default version bind
       rule. It selects the busy version if there is one, or the  most  recent
       non busy version otherwise.

       eq (state, busy); max (version).

       The  default  version binding may also be indicated by an empty pair of
       brackets: foo[]

NAME PATTERNS

       The ShapeTools version binding mechanism performs filename substitution
       for  given  name patterns similar to sh(1). This is necessary, as shell
       filename substitution does not recognize the names of  saved  versions.
       Magic cookies are are:

       *       matching any string, including the empty string,

       ?       matching any single character,

       [c...]  matching  any  one  of  the  characters  enclosed in the square
               brackets,

       [l-r]   matching any character lexically between the left (l)  and  the
               right (r) character, inclusive, and

       [!c...]

       [!l-r]  matching  any  character  not  recognized by their counterparts
               above.

       As square brackets on the command line may either be part of a  pattern
       (e.g.  *.[ch])  or a version binding (e.g. *[release-2]), this may lead
       to some confusion. The leftmost pair of brackets is always  interpreted
       as  version  binding.  Hence,  in  the  first  case, the string will be
       misinterpreted and you must add an explicit version  binding  to  avoid
       this (e.g. *.[ch][], default version binding added).

GENERAL VERSION BINDING OPTIONS

       -before baseline
              Define  the  lower boundary of a time interval for selecting all
              versions evolved in this interval. Baseline can be  any  version
              bind  directive  uniquely  selecting  a  version  (e.g.  version
              number, version alias, or date). The saving date of the baseline
              version  is  the  interval  start  time.  The  boundary  version
              (exactly matching the time given) is not included in the  result
              set.

       -bind version binding
              Use  version  binding for binding each name on the command line,
              that has no explicit version binding in brackets.

       -last  Select the  last  (modification/saving  time)  version  of  each
              nonunique  selection.  This causes the resulting version list to
              contain at most one  version  of  each  history.  -last  may  be
              combined with other version bindings.

       -lastsaved
              Like -last, but busy versions are ignored.

       -nonuniq
              Force non-unique version identification. This option can be used
              to swich off the default behavior of some commands  (e.g.  vadm)
              that suggests unique version identification.

       -rule rulename | rulebody
              With a name argument, this option sets the named rule as default
              rule for binding all names on the command line. Alternatively, a
              rule body (a version selection rule without a name) may be given
              as argument, which will  be  evaluated  for  each  name  on  the
              command  line.  This option disables any previous -bind or -rule
              definition. It does not affect names with a version  binding  in
              brackets.

       -rulefile filename
              Read  in  the named rule file and add all contained rules to the
              list of known rules. A syntactical error, detected while parsing
              a  rule  causes  the  according rule to be skipped. Use vbind(1)
              with  the  -ruleerr  option  for  inspecting  bind  rule  files.
              Multiple rule files may be specified on the command line.

       -since baseline
              Define  the  upper boundary of a time interval for selecting all
              versions evolved in this interval. Baseline can be  any  version
              bind  directive  uniquely  selecting  a  version  (e.g.  version
              number, version alias, or date. The saving date of the  baseline
              version  is the interval end time. The boundary version (exactly
              matching the time given) is not included in the result set.

       -trace Trace the evaluation. Each evaluated predicate  is  reported  to
              standard  output.  Additionally,  the set of versions fulfilling
              the expressed  (the hits set) is displayed after  evaluation  of
              each predicate.

       -uniq  Require  unique version identification. All history names on the
              command line, where multiple  versions  meet  the  version  bind
              requirements are ignored.

THE VBIND COMMAND

       Vbind  performs a version binding and returns a bound filename for each
       selected version. A bound filename is a filename followed by a  version
       number enclosed in brackets (e.g. foo[1.2]).

       -?, -help
               Display a short usage description.

       -alias version alias
               Use  version  alias  for binding all names on the command line.
               This disables any previous -alias, -bind, -date, -rule or -vnum
               definition.   It  does not affect names in pseudo bound version
               notation.

       -date date
               Use date for binding all names occurring on the  command  line.
               This  disables any previous -alias, -bind, date, -rule or -vnum
               definition.  It does not affect names in pseudo  bound  version
               notation.

       -nomsgSuppress output produced by version bind rules.

       -ruledump
               The  -ruledump option causes all known version bind rules to be
               written to standard output. The generated output  contains  all
               rule  definitions  in  regular  format and may be used as input
               rulefile for subsequent calls of vbind.

       -ruleerr
               This option makes sense, when testing a new, hand written  file
               containing bind rules. The -ruleerr option causes syntax errors
               detected in the rule file to be  reported  to  standard  error.
               Make sure, that this option occurs on the command line prior to
               the rulefile to be inspected.

       -rulelist
               Write a list of all known rule names to standard output.

       -ruletest
               Interpret all names on the command line as rule names and  test
               the  existence  of  equally  named  rules  in the list of known
               rules.

       -version
               Print  version  identification  of  vbind  command   and   used
               libraries.

       -vnum version number
               Use  version  number for binding all names on the command line.
               This disables any previous -alias, -bind, -date, -rule or -vnum
               definition.   It  does not affect names in pseudo bound version
               notation.

ENVIRONMENT

       SHAPETOOLS - list of path names as search space  for  files  containing
       version  bind  rules.  The  bind  rule  files  must be named BindRules.
       Default path is /usr/local/lib/shape.

FILES

       $SHAPETOOLS/lib/shape/BindRules

SEE ALSO

       vl(1), sttime(3), bindrules(7)

AUTHOR

       Andreas.Lampen@cs.tu-berlin.de