save - save revision of a file
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 ]
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).
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.
All revisions of documents are stored in archive files in the subdirectory AtFS.
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.
retrv(1), vbind(1)
Axel.Mahler@cs.tu-berlin.de and Andreas.Lampen@cs.tu-berlin.de
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 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.
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.
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.