Man Linux: Main Page and Category List

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