Man Linux: Main Page and Category List

NAME

       save - save revision of a file

SYNOPSIS

       save [ version binding options ] [ options ] files ..
       Save [ version binding options ] [ options ] files ..

       Options: [ -?fglq ] [ -help ] [ -a (or -alias) version alias ]
                [ -delta ] [ -force ] [ -fix generation | alias | date ]
                [ -newgen ] [ -lock ] [ -m (or -logmsg) message ]
                [ -n (or -setvnum) version number ] [ -nodelta ] [ -quiet ]
                [ -setattrs filename ] [ -stdin ] [ -version ]

DESCRIPTION

       save  takes  a  snapshot  of  the current state of the specified files,
       stores them into corresponding archive files and assigns unique version
       numbers to the created versions.  The original files will by default be
       removed and unlocked  in  order  to  support  a  cooperative  style  of
       teamwork.  Versions  of files can be restored as regular files with the
       retrv command. Versions in archives are inalterable.

       An archive will be created  the  first  time  a  file  is  saved  in  a
       subdirectory  named  AtFS. The AtFS subdirectory must be present.  When
       an archive is created, save asks for a short description of  the  saved
       documents  purpose.  If  a  subsequent  version  is  saved, the user is
       prompted for a comment describing the modifications. The  save  command
       requires  that  the  version  history  of a file that shall be saved is
       locked by the user issuing the command.  This is to  prevent  different
       developers  from  applying  concurrent  updates  to  the  same file and
       thereby invalidating the  other  developers’  modifications.  The  only
       exception from this rule is the first time a file is saved, which means
       that an archive has yet to be created. For more details on locking, see
       the ShapeTools Tutorial, retrv(1), and vadm(1).

       The  save  program assigns unique version ids to each evolving revision
       of a file. The version id is a pair of integers  separated  by  a  dot,
       identifying the major and minor revision (<generation>.<revision>) of a
       version. Subsequent invocations of save  increase  the  minor  revision
       number,  starting  with version 1.0. The generation number is increased
       by invocations of Save (see below). There is no  support  for  explicit
       branching. The version control toolkit rather encourages a linear model
       of version evolution. Instead of branching, save allows to  insert  new
       versions  into  old generations (see description of -fix). This allows,
       for example, to fix bugs in major  revision  N  (version  numbers  N.x)
       which  may  be  the  currently  operational  release  while development
       proceeds in generation N+1 (or N+n if you like).

       Before a file is saved it will  be  checked  whether  it  has  actually
       changed  with  respect  to  the  previously  saved version. If the file
       hasn’t changed, the user will be asked if it should  be  saved  anyway.
       The command line option -f (or -force) overrides the prompting.

       The  version  control system supports a built-in basic status model for
       versions. The version status is intended to express different levels of
       quality,  and aims at providing basic project management functionality.
       State attributes of software objects can help to describe  an  object’s
       current  meaning in the development process (e.g.  tested, incompletely
       implemented, submitted for evaluation, or shipped to customer).

       A newly created version will by default be assigned  the  state  saved.
       This  status  marks  the  lowest  level of quality, suggesting that the
       version  is  just  saved  for  possible  later  retrieval  but  may  be
       inconsistent.  Versions that meet higher quality standards (or are part
       of a  release)  should  be  marked  by  appropriate  status  (see  vadm
       -promote, sbmt, or publ).

       If  the program is invoked as Save (that is with capital-S) a new major
       revision (generation) of the document history is created - provided the
       programmer  issuing  the  command  has  the permission to do this. This
       option is intended to support a development model where maintenance  of
       an  operational release can be performed parallel to the development of
       the next release (see -fix).

OPTIONS

       For version selection, any version binding option, as described on  the
       vbind(1) manual page, may be given. Version bind directives in brackets
       added to the filename are interpreted different to vbind(1). A  version
       number  following  the  name  will  be  treated as if the -n (-setvnum)
       option was given with this version number as argument. Any other string
       in brackets will be taken as alias name (see -alias option).

       -?, -help
              print short information about usage of this command.

       -a, -alias version alias
              assign  a version alias (a symbolic name) to the new version. In
              more detail, an attribute __SymbolicName__ is set to  the  value
              specified in version alias. The specified alias name must not be
              assigned to any other version within the same  version  history.
              Alternatively  to  the -a option, the version alias may be given
              in brackets following the name of the file to  be  saved.  Check
              the  description  of  the  -n  option  for  an  example  of this
              notation.

       -delta Create delta for internal storage. This is the default.

       -f, -force
              force a revision deposit (i.e. without asking), even if the busy
              version hasn’t changed since the last time it was saved.

       -fix generation | alias | date
              append  a  new  version after the most recent version within the
              referenced  major  revision  level.  The  major  revision  level
              (called  ‘‘generation’’)  is  either  referenced  explicitly, by
              specifying a number, or  implicitly,  by  specifying  a  version
              alias  (e.g.  a  release  name)  or  a  date. The latter form is
              particularly useful for saving a fix that extends over more than
              one object.

              This option is intended to support maintenance of older releases
              while development proceeds at the logical  end  of  the  version
              chain.  In  order  to  insert  a  (fixed)  version  into  an old
              generation, one must have a lock on the most recent  version  of
              that  generation  (generation  lock). This lock must be set with
              the vadm command. The -fix option is incompatible with -setvnum,
              -newgen and the Save command option.

       -g, -newgen
              create  a  major  revision  of the document. Major revisions are
              indicated by the first number in  the  version-id  (generation).
              Only  the  archive  administrator  is  allowed  to  create major
              revisions. The archive administrator is the user  who  owns  the
              AtFS subdirectory where the version archives reside. Use of this
              switch is identical to calling the program as Save.

       -l, -lock
              Keep the lock on the version history. The saved files  will  not
              be removed.

       -m, -logmsg message
              set  message  as descriptive note for all document versions that
              result from the invocation of save. When message starts with  an
              at  sign  (@),  it  is  interpreted  as  filename  and  the text
              contained in the  file  is  set  as  descriptive  note  for  all
              document versions that result from the invocation of save.

       -n, -setvnum version number
              set the version number of the newly created revision to version.
              The version must be given in the format  <generation>.<revision>
              where generation and revision are integers. Example:
              save -setvnum 4.3 mkattr.c
              The   specified   version  must  be  greater  than  the  highest
              previously assigned version number in a  given  object  history.
              Only the archive administrator may set version numbers directly.
              The  archive  administrator  is  the  user  who  owns  the  AtFS
              subdirectory  where  the  version  archives  reside. -setvnum is
              useful for keeping consistent version numbering across  related,
              physically  different  object  repositories,  or  for converting
              archive formats  of  other  revision  control  systems  to  this
              toolkit  (see:  rcs2atfs).  Alternatively  to the -n option, the
              version number may be given in brackets following  the  name  of
              the file to be saved.  The command
              save mkattr.c[4.3]
              is interpreted the same way as the example above.

       -nodelta
              Suppress delta generation

       -q, -quiet
              quiet operation. No messages are printed on standard output.  If
              the busy version is unchanged, it will not be saved unless -f is
              set. The user will not be prompted for a descriptive note. If no
              message or note is supplied with the command line  (see  options
              -m  and -t) the log will remain empty. This option is useful for
              batch operation.

       -setattrs filename
              read names and values of user defined attributes from  the  file
              filename.  The entries in the attribute file must have either of
              the  formats  NAME=VALUE  or  NAME+=VALUE.  NAME  must   be   an
              alphanumeric  string  (no  spaces)  immediately  followed by the
              assignment operator. The value may be an arbitrary ASCII  string
              with the exception of control-A and newline characters. There is
              exactly one attribute  definition  per  line.  The  file’s  last
              character must be a newline character.

              If  the  first  format (single equal symbol) is used, previously
              assigned values of user defined attributes are  reset  with  the
              values defined in the attribute file.  The second format (‘‘plus
              equal’’) allows  to  append  additional  values  to  an  already
              existing  attribute.  If no attribute of a given name exists, it
              will be created.

              This way to attach attributes  was  introduced  to  allow  quick
              automatic  attachment of a large number of attributes to version
              objects. This interface to the  attribute  setting  facility  is
              mainly intended for tools that invoke save.

              If   the   -setattrs   option  is  omitted,  save  searches  the
              environment for a variable SVATTRS. If this variable is  absent,
              no  user  defined  attributes  will  be assigned to the evolving
              versions.

       -stdin force save to read a descriptive  note  from  stdin  instead  of
              forking an editor. A previously set intent-message is printed.

       -version
              print the version of the program itself.

FILES

       All  revisions  of  documents  are  stored  in  archive  files  in  the
       subdirectory AtFS.

BUGS

       With the -g (-newgen) option given and an unchanged busy version,  save
       ignores the users answer to the question, if the busy version should be
       saved anyway. It always assumes a positive answer and goes on with  its
       saving  procedure.  You  can avoid saving by interrupting (Ctrl-C) save
       during the next question if the unmodified version should be  commented
       anyway.

SEE ALSO

       retrv(1), vbind(1)

AUTHOR

       Axel.Mahler@cs.tu-berlin.de and Andreas.Lampen@cs.tu-berlin.de