save(1)


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





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.