Provided by: atfs_1.4pl6-13_amd64 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