home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 19 / AACD19.BIN / AACD / Programming / cvs-1.11 / cvs.1.man < prev    next >
Text File  |  2001-02-03  |  80KB  |  1,733 lines

  1.  
  2.  
  3.  
  4. CVS(1)                                                     CVS(1)
  5.  
  6.  
  7. NAME
  8.        cvs - Concurrent Versions System
  9.  
  10. SYNOPSIS
  11.        cvs [ cvs_options ]
  12.              -----------
  13.               cvs_command [ command_options ] [ command_args ]
  14.               -----------   ---------------     ------------
  15.  
  16. NOTE
  17.        This  manpage  is a summary of some of the features of cvs
  18.        but for more  in-depth  documentation,  consult  the  Ced-
  19.        erqvist  manual  (as  described in the SEE ALSO section of
  20.        this manpage).
  21.  
  22. DESCRIPTION
  23.        CVS is a version control system, which allows you to  keep
  24.        old versions of files (usually source code), keep a log of
  25.        who, when, and why changes occurred,  etc.,  like  RCS  or
  26.        SCCS.  Unlike the simpler systems, CVS does not just oper-
  27.        ate on one file at a time or one directory at a time,  but
  28.        operates  on  hierarchical collections of directories con-
  29.        sisting of version controlled files.  CVS helps to  manage
  30.        releases  and  to control the concurrent editing of source
  31.        files among multiple  authors.   CVS  allows  triggers  to
  32.        enable/log/control  various operations and works well over
  33.        a wide area network.
  34.  
  35.        cvs keeps a single copy of the master sources.  This  copy
  36.        is  called  the source ``repository''; it contains all the
  37.        information  to  permit   extracting   previous   software
  38.        releases  at  any time based on either a symbolic revision
  39.        tag, or a date in the past.
  40.  
  41. ESSENTIAL COMMANDS
  42.        cvs provides a rich variety of  commands  (cvs_command  in
  43.                                                   -----------
  44.        the  Synopsis),  each  of  which  often  has  a  wealth of
  45.        options, to satisfy the many needs of source management in
  46.        distributed environments.  However, you don't have to mas-
  47.        ter every detail to do useful work with cvs; in fact, five
  48.        commands  are  sufficient  to  use (and contribute to) the
  49.        source repository.
  50.  
  51.        cvs checkout modules...
  52.                     -------
  53.               A necessary preliminary for most cvs work:  creates
  54.               your  private copy of the source for modules (named
  55.                                                    -------
  56.               collections of source; you can also use a path rel-
  57.               ative to the source repository here).  You can work
  58.               with this copy  without  interfering  with  others'
  59.               work.   At  least  one subdirectory level is always
  60.               created.
  61.  
  62.        cvs update
  63.               Execute  this  command  from  within  your  private
  64.                                             ------
  65.               source  directory  when  you  wish  to  update your
  66.               copies of source  files  from  changes  that  other
  67.               developers  have  made to the source in the reposi-
  68.               tory.
  69.  
  70.        cvs add file...
  71.                ----
  72.               Use this command to enroll new files in cvs records
  73.               of your working directory.  The files will be added
  74.               to the  repository  the  next  time  you  run  `cvs
  75.               commit'.   Note:  You  should  use the `cvs import'
  76.               command to bootstrap new sources  into  the  source
  77.               repository.   `cvs  add' is only used for new files
  78.               to an already checked-out module.
  79.  
  80.        cvs remove file...
  81.                   ----
  82.               Use this command (after erasing any  files  listed)
  83.               to  declare  that  you wish to eliminate files from
  84.               the repository.  The removal does not affect others
  85.               until you run `cvs commit'.
  86.  
  87.        cvs commit file...
  88.                   ----
  89.               Use  this command when you wish to ``publish'' your
  90.               changes to other developers, by incorporating  them
  91.               in the source repository.
  92.  
  93. OPTIONS
  94.        The  cvs command line can include cvs_options, which apply
  95.                                          -----------
  96.        to the overall cvs program; a cvs_command, which specifies
  97.                                      -----------
  98.        a  particular  action  on  the source repository; and com-
  99.                                                              ----
  100.        mand_options and command_arguments to fully  specify  what
  101.        ------------     -----------------
  102.        the cvs_command will do.
  103.            -----------
  104.  
  105.        Warning:  you must be careful of precisely where you place
  106.        --------
  107.        options relative to the cvs_command.  The same option  can
  108.                                -----------
  109.        mean  different  things  depending on whether it is in the
  110.        cvs_options position (to the left of a cvs command) or  in
  111.        -----------
  112.        the  command_options  position (to the right of a cvs com-
  113.             ---------------
  114.        mand).
  115.  
  116.        There are only two situations where you may omit  cvs_com-
  117.                                                          --------
  118.        mand: `cvs -H' or `cvs --help' elicits a list of available
  119.        ----
  120.        commands, and `cvs -v' or `cvs --version' displays version
  121.        information on cvs itself.
  122.  
  123.  
  124. CVS OPTIONS
  125.        As  of release 1.6, cvs supports GNU style long options as
  126.        well as short options.  Only a few long options  are  cur-
  127.        rently  supported,  these are listed in brackets after the
  128.        short options whose functions they duplicate.
  129.  
  130.        Use these options to control the overall cvs program:
  131.  
  132.        -H [ --help ]
  133.               Display  usage  information  about  the   specified
  134.               cvs_command   (but  do  not  actually  execute  the
  135.               -----------
  136.               command).  If you don't  specify  a  command  name,
  137.               `cvs  -H'  displays  a  summary of all the commands
  138.               available.
  139.  
  140.        -Q     Causes the command to be really quiet; the  command
  141.                                        ------
  142.               will generate output only for serious problems.
  143.  
  144.        -q     Causes  the  command to be somewhat quiet; informa-
  145.               tional  messages,  such  as  reports  of  recursion
  146.               through subdirectories, are suppressed.
  147.  
  148.        -b bindir
  149.           ------
  150.               Use  bindir as the directory where RCS programs are
  151.                    ------
  152.               located (CVS 1.9 and older).  Overrides the setting
  153.               of  the  RCSBIN  environment  variable.  This value
  154.               should be specified as an absolute pathname.
  155.  
  156.        -d CVS_root_directory
  157.           ------------------
  158.               Use CVS_root_directory as the root directory  path-
  159.                   ------------------
  160.               name  of  the  master source repository.  Overrides
  161.               the setting of the  CVSROOT  environment  variable.
  162.               This value should be specified as an absolute path-
  163.               name.
  164.  
  165.        -e editor
  166.           ------
  167.               Use  editor  to  enter  revision  log  information.
  168.                    ------
  169.               Overrides the setting of the CVSEDITOR, VISUAL, and
  170.               EDITOR environment variables.
  171.  
  172.        -f     Do not read the cvs startup file (~/.cvsrc).
  173.                                                 --------
  174.  
  175.        -l     Do not log the cvs_command in the  command  history
  176.                              -----------
  177.               (but  execute  it  anyway).  See the description of
  178.               the history command for information on command his-
  179.               tory.
  180.  
  181.        -n     Do  not  change  any files.  Attempt to execute the
  182.               cvs_command, but only  to  issue  reports;  do  not
  183.               -----------
  184.               remove,  update,  or  merge  any existing files, or
  185.               create any new files.
  186.  
  187.        -t     Trace program execution; display  messages  showing
  188.               the  steps  of  cvs  activity.  Particularly useful
  189.               with -n to explore the potential impact of an unfa-
  190.               miliar command.
  191.  
  192.        -r     Makes  new working files read-only.  Same effect as
  193.               if the CVSREAD environment variable is set.
  194.  
  195.        -v [ --version ]
  196.               Displays version and copyright information for cvs.
  197.  
  198.        -w     Makes   new  working  files  read-write  (default).
  199.               Overrides the setting of  the  CVSREAD  environment
  200.               variable.
  201.  
  202.        -x     Encrypt  all  communication  between the client and
  203.               the server.  As  of  this  writing,  this  is  only
  204.               implemented when using a Kerberos connection.
  205.  
  206.        -z compression-level
  207.           -----------------
  208.               When transferring files across the network use gzip
  209.               with compression level  compression-level  to  com-
  210.                                       -----------------
  211.               press  and  de-compress  data as it is transferred.
  212.               Requires the presence of the GNU  gzip  program  in
  213.               the current search path at both ends of the link.
  214.  
  215. USAGE
  216.        Except  when  requesting  general  help with `cvs -H', you
  217.        must specify a cvs_command to cvs  to  select  a  specific
  218.                       -----------
  219.        release  control  function  to  perform.  Each cvs command
  220.        accepts its own collection of options and arguments.  How-
  221.        ever,  many options are available across several commands.
  222.        You can display a usage summary for each command by speci-
  223.        fying the -H option with the command.
  224.  
  225. CVS STARTUP FILE
  226.        Normally,  when  CVS  starts  up, it reads the .cvsrc file
  227.                                                       ------
  228.        from the home directory of  the  user  reading  it.   This
  229.        startup procedure can be turned off with the -f flag.
  230.  
  231.        The  .cvsrc  file  lists CVS commands with a list of argu-
  232.             ------
  233.        ments, one command per line.  For example,  the  following
  234.        line in .cvsrc:
  235.                ------
  236.  
  237.        diff -c
  238.  
  239.        will  mean  that  the  `cvs  diff'  command will always be
  240.        passed the -c option in addition to any other options that
  241.        are  specified  in  the command line (in this case it will
  242.        have the effect of producing context sensitive  diffs  for
  243.        all executions of `cvs diff' ).
  244.  
  245. CVS COMMAND SUMMARY
  246.        Here are brief descriptions of all the cvs commands:
  247.  
  248.        add    Add  a  new  file  or  directory to the repository,
  249.               pending a `cvs commit' on the same file.  Can  only
  250.               be  done  from within sources created by a previous
  251.               `cvs checkout' invocation.   Use  `cvs  import'  to
  252.               place  whole  new  hierarchies of sources under cvs
  253.               control.  (Does  not  directly  affect  repository;
  254.               changes working directory.)
  255.  
  256.        admin  Execute control functions on the source repository.
  257.               (Changes repository directly; uses  working  direc-
  258.               tory without changing it.)
  259.  
  260.        checkout
  261.               Make  a working directory of source files for edit-
  262.               ing.  (Creates or changes working directory.)
  263.  
  264.        commit Apply to the source repository changes,  additions,
  265.               and   deletions   from   your   working  directory.
  266.               (Changes repository.)
  267.  
  268.        diff   Show differences between files in working directory
  269.               and  source repository, or between two revisions in
  270.               source repository.  (Does not change either reposi-
  271.               tory or working directory.)
  272.  
  273.        export Prepare  copies  of a set of source files for ship-
  274.               ment off site.  Differs from `cvs checkout' in that
  275.               no  cvs administrative directories are created (and
  276.               therefore `cvs commit' cannot be  executed  from  a
  277.               directory  prepared  with `cvs export'), and a sym-
  278.               bolic tag must  be  specified.   (Does  not  change
  279.               repository;  creates  directory  similar to working
  280.               directories).
  281.  
  282.        history
  283.               Show reports on cvs commands  that  you  or  others
  284.               have  executed on a particular file or directory in
  285.               the source repository.  (Does not change repository
  286.               or  working directory.)  History logs are kept only
  287.               if     enabled     by     creation      of      the
  288.               `$CVSROOT/CVSROOT/history' file; see cvs(5).
  289.  
  290.        import Incorporate a set of updates from off-site into the
  291.               source  repository,   as   a   ``vendor   branch''.
  292.               (Changes repository.)
  293.  
  294.        init   Initialize  a repository by adding the CVSROOT sub-
  295.               directory and some default control files. You  must
  296.               use  this  command  or initialize the repository in
  297.               some other way before you can use it.
  298.  
  299.        log    Display log information.  (Does not change  reposi-
  300.               tory or working directory.)
  301.  
  302.        rdiff  Prepare  a  collection  of  diffs  as  a patch file
  303.               between two releases in the repository.  (Does  not
  304.               change repository or working directory.)
  305.  
  306.        release
  307.               Cancel  a  `cvs  checkout', abandoning any changes.
  308.               (Can delete working directory; no effect on reposi-
  309.               tory.)
  310.  
  311.        remove Remove  files from the source repository, pending a
  312.               `cvs commit' on the same files.  (Does not directly
  313.               affect repository; changes working directory.)
  314.  
  315.        rtag   Explicitly  specify  a  symbolic tag for particular
  316.               revisions of files in the source  repository.   See
  317.               also `cvs tag'.  (Changes repository directly; does
  318.               not require or affect working directory.)
  319.  
  320.        status Show current status of files: latest version,  ver-
  321.               sion  in working directory, whether working version
  322.               has been edited and, optionally, symbolic  tags  in
  323.               the RCS file.  (Does not change repository or work-
  324.               ing directory.)
  325.  
  326.        tag    Specify a symbolic tag for files in the repository.
  327.               By  default, tags the revisions that were last syn-
  328.               chronized with your working  directory.    (Changes
  329.               repository directly; uses working directory without
  330.               changing it.)
  331.  
  332.        update Bring  your  working  directory  up  to  date  with
  333.               changes  from the repository.  Merges are performed
  334.               automatically when possible; a warning is issued if
  335.               manual   resolution  is  required  for  conflicting
  336.               changes.   (Changes  working  directory;  does  not
  337.               change repository.)
  338.  
  339. COMMON COMMAND OPTIONS
  340.        This section describes the command_options that are avail-
  341.                                   ---------------
  342.        able across several cvs commands.  Not all  commands  sup-
  343.        port  all  of these options; each option is only supported
  344.        for commands where it makes sense.  However, when  a  com-
  345.        mand  has  one  of these options you can count on the same
  346.        meaning for the option as in other commands.  (Other  com-
  347.        mand  options,  which  are listed with the individual com-
  348.        mands, may have different meanings from one cvs command to
  349.        another.)   Warning:  the history command is an exception;
  350.                    --------
  351.        it supports many options that  conflict  even  with  these
  352.        standard options.
  353.  
  354.        -D date_spec
  355.           ---------
  356.               Use   the   most  recent  revision  no  later  than
  357.               date_spec  (a  single  argument,  date  description
  358.               ---------
  359.               specifying  a date in the past).  A wide variety of
  360.               date  formats  are  supported,  in  particular  ISO
  361.               ("1972-09-24  20:05")  or  Internet  ("24  Sep 1972
  362.               20:05").  The date_spec is interpreted as being  in
  363.                             ---------
  364.               the  local  timezone, unless a specific timezone is
  365.               specified.  The specification  is  ``sticky''  when
  366.               you use it to make a private copy of a source file;
  367.               that is, when you get a working file using -D,  cvs
  368.               records  the  date  you  specified, so that further
  369.               updates in the same directory  will  use  the  same
  370.               date  (unless  you  explicitly override it; see the
  371.               description of the update command).  -D  is  avail-
  372.               able  with  the  checkout,  diff,  history, export,
  373.               rdiff, rtag,  and  update  commands.   Examples  of
  374.               valid date specifications include:
  375.                         1 month ago
  376.                         2 hours ago
  377.                         400000 seconds ago
  378.                         last year
  379.                         last Monday
  380.                         yesterday
  381.                         a fortnight ago
  382.                         3/31/92 10:00:07 PST
  383.                         January 23, 1987 10:05pm
  384.                         22:00 GMT
  385.  
  386.        -f     When  you  specify  a particular date or tag to cvs
  387.               commands, they normally ignore files  that  do  not
  388.               contain the tag (or did not exist on the date) that
  389.               you specified.  Use the -f option if you want files
  390.               retrieved  even  when there is no match for the tag
  391.               or date.  (The most recent version is used in  this
  392.               situation.)   -f  is available with these commands:
  393.               checkout, export, rdiff, rtag, and update.
  394.  
  395.        -k kflag
  396.           -----
  397.               Alter the default processing of keywords.   The  -k
  398.               option  is  available with the add, checkout, diff,
  399.               export, rdiff, and  update  commands.   Your  kflag
  400.                                                             -----
  401.               specification is ``sticky'' when you use it to cre-
  402.               ate a private copy of a source file; that is,  when
  403.               you  use  this  option  with the checkout or update
  404.               commands, cvs associates your selected  kflag  with
  405.                                                       -----
  406.               the  file,  and  continues  to  use  it with future
  407.               update commands on the same file until you  specify
  408.               otherwise.
  409.  
  410.               Some of the more useful kflags are -ko and -kb (for
  411.                                       -----
  412.               binary files), and  -kv  which  is  useful  for  an
  413.               export where you wish to retain keyword information
  414.               after an import at some other site.
  415.  
  416.        -l     Local;  run  only  in  current  working  directory,
  417.               rather   than   recurring  through  subdirectories.
  418.               Available with the  following  commands:  checkout,
  419.               commit,  diff, export, remove, rdiff, rtag, status,
  420.               tag, and update.  Warning: this is not the same  as
  421.                                 --------
  422.               the  overall `cvs -l' option, which you can specify
  423.               to the left of a cvs command!
  424.                      ----
  425.  
  426.        -n     Do not run any checkout/commit/tag/update  program.
  427.                  ---
  428.               (A program can be specified to run on each of these
  429.               activities, in the modules  database;  this  option
  430.               bypasses it.)  Available with the checkout, commit,
  431.               export, and rtag commands.  Warning:  this  is  not
  432.                                           --------
  433.               the  same as the overall `cvs -n' option, which you
  434.               can specify to the left of a cvs command!
  435.                                  ----
  436.  
  437.        -P     Prune (remove) directories  that  are  empty  after
  438.               being  updated,  on checkout, or update.  Normally,
  439.               an empty directory (one that is void  of  revision-
  440.               controlled  files)  is  left  alone.  Specifying -P
  441.               will cause these directories to be silently removed
  442.               from  your  checked-out  sources.   This  does  not
  443.               remove the directory from the repository, only from
  444.               your  checked  out  copy.  Note that this option is
  445.               implied by the -r or -D  options  of  checkout  and
  446.               export.
  447.  
  448.        -p     Pipe  the  files  retrieved  from the repository to
  449.               standard output, rather than writing  them  in  the
  450.               current directory.  Available with the checkout and
  451.               update commands.
  452.  
  453.        -r tag Use the revision  specified  by  the  tag  argument
  454.           ---                                       ---
  455.               instead  of the default ``head'' revision.  As well
  456.               as arbitrary tags defined with the tag or rtag com-
  457.               mand, two special tags are always available: `HEAD'
  458.               refers to the most recent version available in  the
  459.               repository,  and  `BASE' refers to the revision you
  460.               last checked out into the  current  working  direc-
  461.               tory.
  462.  
  463.               The  tag  specification  is ``sticky'' when you use
  464.                    ---
  465.               this option with `cvs checkout' or `cvs update'  to
  466.               make your own copy of a file: cvs remembers the tag
  467.                                                               ---
  468.               and continues to use it on future update  commands,
  469.               until  you  specify otherwise.  tag can be either a
  470.                                               ---
  471.               symbolic or numeric tag.  Specifying the -q  global
  472.               option  along  with  the -r command option is often
  473.               useful, to suppress the warning messages  when  the
  474.               RCS file does not contain the specified tag.  -r is
  475.               available with the checkout, commit, diff, history,
  476.               export, rdiff, rtag, and update commands.  Warning:
  477.                                                          --------
  478.               this is not  the  same  as  the  overall  `cvs  -r'
  479.               option,  which you can specify to the left of a cvs
  480.                                                     ----
  481.               command!
  482.  
  483. CVS COMMANDS
  484.        Here (finally) are details on all the cvs commands and the
  485.        options  each  accepts.   The  summary lines at the top of
  486.        each  command's  description  highlight  three  kinds   of
  487.        things:
  488.  
  489.            Command Options and Arguments
  490.                  Special  options  are described in detail below;
  491.                  common command options may appear  only  in  the
  492.                  summary line.
  493.  
  494.            Working Directory, or Repository?
  495.                  Some cvs commands require a working directory to
  496.                  operate; some require a repository.  Also,  some
  497.                  commands  change the repository, some change the
  498.                            ------
  499.                  working directory, and some change nothing.
  500.  
  501.            Synonyms
  502.                  Many commands have synonyms, which you may  find
  503.                  easier  to remember (or type) than the principal
  504.                  name.
  505.  
  506.  
  507.        add [-k kflag] [-m 'message'] files...
  508.                -----       -------   --------
  509.               Requires: repository, working directory.
  510.               ---------
  511.               Changes: working directory.
  512.               --------
  513.               Synonym: new
  514.               --------
  515.               Use the add command to create a new file or  direc-
  516.               tory in the source repository.  The files or direc-
  517.               tories specified with add must already exist in the
  518.               current  directory  (which  must  have been created
  519.               with the checkout command).  To  add  a  whole  new
  520.               directory  hierarchy  to the source repository (for
  521.               example, files received from a third-party vendor),
  522.               use the `cvs import' command instead.
  523.  
  524.               If the argument to `cvs add' refers to an immediate
  525.               sub-directory, the directory is created at the cor-
  526.               rect place in the source repository, and the neces-
  527.               sary cvs administration files are created  in  your
  528.               working directory.  If the directory already exists
  529.               in the source repository, `cvs add'  still  creates
  530.               the  administration  files  in  your version of the
  531.               directory.  This allows you to use `cvs add' to add
  532.               a particular directory to your private sources even
  533.               if someone else created that directory  after  your
  534.               checkout of the sources.  You can do the following:
  535.  
  536.                         example% mkdir new_directory
  537.                                           -
  538.                         example% cvs add new_directory
  539.                                             -
  540.                         example% cvs update new_directory
  541.                                                -
  542.  
  543.               An alternate approach using `cvs update' might be:
  544.  
  545.                         example% cvs update -d new_directory
  546.                                                   -
  547.  
  548.               (To add any available new directories to your work-
  549.                       --- ---------
  550.               ing  directory,  it's  probably simpler to use `cvs
  551.               checkout' or `cvs update -d'.)
  552.  
  553.               The added files are not placed in the source repos-
  554.               itory until you use `cvs commit' to make the change
  555.               permanent.  Doing a `cvs add' on a  file  that  was
  556.               removed  with  the `cvs remove' command will resur-
  557.               rect the file, if no `cvs  commit'  command  inter-
  558.               vened.
  559.  
  560.               You  will have the opportunity to specify a logging
  561.               message, as usual, when you  use  `cvs  commit'  to
  562.               make the new file permanent.  If you'd like to have
  563.               another logging message associated with  just  cre-
  564.                                                              ----
  565.               ation  of  the  file  (for example, to describe the
  566.               -----
  567.               file's purpose), you can specify it  with  the  `-m
  568.               message' option to the add command.
  569.               -------
  570.  
  571.               The  `-k  kflag'  option  specifies the default way
  572.               that this file will be checked  out.   The  `kflag'
  573.               argument  is  stored  in  the  RCS  file and can be
  574.               changed with `cvs admin'.  Specifying `-ko' is use-
  575.               ful  for  checking  in binaries that shouldn't have
  576.               keywords expanded.
  577.  
  578.        admin [rcs-options] files...
  579.               -----------  --------
  580.               Requires: repository, working directory.
  581.               ---------
  582.               Changes: repository.
  583.               --------
  584.               Synonym: rcs
  585.               --------
  586.               This is the cvs interface to  assorted  administra-
  587.               tive  facilities,  similar to rcs(1).  This command
  588.               works recursively, so extreme care should be  used.
  589.  
  590.        checkout [options] modules...
  591.                           -------
  592.               Requires: repository.
  593.               ---------
  594.               Changes: working directory.
  595.               --------
  596.               Synonyms: co, get
  597.               ---------
  598.               Make  a  working directory containing copies of the
  599.               source files specified by modules.  You  must  exe-
  600.                                         -------
  601.               cute  `cvs checkout' before using most of the other
  602.               cvs commands, since most of them  operate  on  your
  603.               working directory.
  604.  
  605.               modules   are  either  symbolic  names  (themselves
  606.               -------
  607.               defined as  the  module  `modules'  in  the  source
  608.               repository;  see  cvs(5))  for  some  collection of
  609.               source directories and files, or paths to  directo-
  610.               ries or files in the repository.
  611.  
  612.               Depending  on the modules you specify, checkout may
  613.                                 -------
  614.               recursively create directories  and  populate  them
  615.               with  the  appropriate  source files.  You can then
  616.               edit these source files at any time (regardless  of
  617.               whether other software developers are editing their
  618.               own copies of the sources); update them to  include
  619.               new changes applied by others to the source reposi-
  620.               tory; or commit your work as a permanent change  to
  621.               the repository.
  622.  
  623.               Note  that  checkout is used to create directories.
  624.               The top-level directory created is always added  to
  625.               the  directory  where checkout is invoked, and usu-
  626.               ally has the same name as the specified module.  In
  627.                                                       ------
  628.               the  case of a module alias, the created sub-direc-
  629.                              ------
  630.               tory may have a different name, but you can be sure
  631.               that  it will be a sub-directory, and that checkout
  632.               will show the relative path leading to each file as
  633.               it is extracted into your private work area (unless
  634.               you specify the -Q global option).
  635.  
  636.               Running `cvs checkout'  on  a  directory  that  was
  637.               already  built  by a prior checkout is also permit-
  638.               ted, and has the same effect as specifying  the  -d
  639.               option to the update command described below.
  640.  
  641.               The  options  permitted with `cvs checkout' include
  642.                    -------
  643.               the standard command options -P, -f, -k kflag , -l,
  644.                                                       -----
  645.               -n, -p, -r tag, and -D date.
  646.                          ---         ----
  647.  
  648.               In  addition  to  those,  you can use these special
  649.               command options with checkout:
  650.  
  651.               Use the -A option to reset any sticky tags,  dates,
  652.               or  -k  options.   (If you get a working file using
  653.               one of the -r, -D, or -k options, cvs remembers the
  654.               corresponding  tag,  date,  or  kflag and continues
  655.                                               -----
  656.               using it on future updates; use the  -A  option  to
  657.               make  cvs forget these specifications, and retrieve
  658.               the ``head'' version of the file).
  659.  
  660.               The  -j  branch  option  merges  the  changes  made
  661.                        ------
  662.               between  the  resulting  revision  and the revision
  663.               that it is based on (e.g., if the tag refers  to  a
  664.               branch,  cvs  will  merge  all changes made in that
  665.               branch into your working file).
  666.  
  667.               With two -j options, cvs will merge in the  changes
  668.               between  the two respective revisions.  This can be
  669.               used to ``remove'' a certain delta from your  work-
  670.               ing file.
  671.  
  672.               In addition, each -j option can contain on optional
  673.               date specification which, when used with  branches,
  674.               can  limit the chosen revision to one within a spe-
  675.               cific date.   An  optional  date  is  specified  by
  676.               adding a colon (:) to the tag.  An example might be
  677.               what `cvs import' tells you to  do  when  you  have
  678.               just  imported  sources  that  have  conflicts with
  679.               local changes:
  680.  
  681.                         example% cvs checkout -jTAG:yesterday -jTAG module
  682.  
  683.               Use the -N option with `-d dir' to avoid shortening
  684.                                          ---
  685.               module  paths  in  your  working directory.   (Nor-
  686.               mally, cvs shortens paths as much as possible  when
  687.               you specify an explicit target directory.)
  688.  
  689.               Use  the -c option to copy the module file, sorted,
  690.               to the standard  output,  instead  of  creating  or
  691.               modifying  any files or directories in your working
  692.               directory.
  693.  
  694.               Use the -d dir option to create a directory  called
  695.                          ---
  696.               dir  for  the  working  files, instead of using the
  697.               ---
  698.               module name.  Unless you also  use  -N,  the  paths
  699.               created under dir will be as short as possible.
  700.                             ---
  701.  
  702.               Use  the  -s  option  to  display per-module status
  703.               information stored with the -s  option  within  the
  704.               modules file.
  705.  
  706.        commit   [-lnR]  [-m  'log_message'  |  -f  file]  [-r
  707.                               -----------          ----
  708.        revision] [files...]
  709.        --------   --------
  710.               Requires: working directory, repository.
  711.               ---------
  712.               Changes: repository.
  713.               --------
  714.               Synonym: ci
  715.               --------
  716.               Use  `cvs  commit'  when  you  want  to incorporate
  717.               changes from your working  source  files  into  the
  718.               general source repository.
  719.  
  720.               If  you  don't  specify particular files to commit,
  721.                                                  -----
  722.               all of the files in your working current  directory
  723.               are  examined.   commit is careful to change in the
  724.               repository only those files that  you  have  really
  725.               changed.   By default (or if you explicitly specify
  726.               the -R option), files in  subdirectories  are  also
  727.               examined  and  committed  if they have changed; you
  728.               can use the -l option to limit commit to  the  cur-
  729.               rent  directory  only.   Sometimes  you may want to
  730.               force a file to be  committed  even  though  it  is
  731.               unchanged; this is achieved with the -f flag, which
  732.               also has the effect of disabling recursion (you can
  733.               turn it back on with -R of course).
  734.  
  735.               commit  verifies  that the selected files are up to
  736.               date with  the  current  revisions  in  the  source
  737.               repository;  it  will  notify you, and exit without
  738.               committing, if any of the specified files  must  be
  739.               made  current first with `cvs update'.  commit does
  740.               not call the update command  for  you,  but  rather
  741.               leaves that for you to do when the time is right.
  742.  
  743.               When all is well, an editor is invoked to allow you
  744.               to enter a log message that will be written to  one
  745.               or  more  logging programs and placed in the source
  746.               repository file.  You can instead specify  the  log
  747.               message  on  the  command  line with the -m option,
  748.               thus suppressing the editor invocation, or use  the
  749.               -F  option  to  specify that the argument file con-
  750.                                                         ----
  751.               tains the log message.
  752.  
  753.               The -r option can be used to commit to a particular
  754.               symbolic  or  numeric  revision.   For  example, to
  755.               bring all your files up  to  the  revision  ``3.0''
  756.               (including  those  that haven't changed), you might
  757.               do:
  758.  
  759.                         example% cvs commit -r3.0
  760.  
  761.               cvs will only allow you to  commit  to  a  revision
  762.               that is on the main trunk (a revision with a single
  763.               dot).  However, you can also  commit  to  a  branch
  764.               revision (one that has an even number of dots) with
  765.               the -r option.  To create a  branch  revision,  one
  766.               typically use the -b option of the rtag or tag com-
  767.               mands.  Then, either checkout or update can be used
  768.               to  base  your sources on the newly created branch.
  769.               From that point on, all commit changes made  within
  770.               these  working  sources will be automatically added
  771.               to a branch revision, thereby not perturbing  main-
  772.               line  development  in any way.  For example, if you
  773.               had to create a patch to the  1.2  version  of  the
  774.               product,  even  though  the  2.0 version is already
  775.               under development, you might do:
  776.  
  777.                         example% cvs rtag -b -rFCS1_2 FCS1_2_Patch product_module
  778.                                                    -      - -             -
  779.                         example% cvs checkout -rFCS1_2_Patch product_module
  780.                                                     - -             -
  781.                         example% cd product_module
  782.                                            -
  783.                         [[ hack away ]]
  784.                         example% cvs commit
  785.  
  786.               Say you have been working on some extremely experi-
  787.               mental  software,  based  on  whatever revision you
  788.               happened to checkout last week.  If others in  your
  789.               group would like to work on this software with you,
  790.               but without disturbing main-line  development,  you
  791.               could  commit  your change to a new branch.  Others
  792.               can then checkout your experimental stuff and  uti-
  793.               lize  the  full benefit of cvs conflict resolution.
  794.               The scenario might look like:
  795.  
  796.                         example% cvs tag -b EXPR1
  797.                         example% cvs update -rEXPR1
  798.                         [[ hack away ]]
  799.                         example% cvs commit
  800.  
  801.               Others  would  simply  do  `cvs  checkout   -rEXPR1
  802.               whatever_module' to work with you on the experimen-
  803.                       -
  804.               tal change.
  805.  
  806.        diff [-kl] [rcsdiff_options] [[-r rev1 | -D date1] [-r
  807.                    ---------------       ----      -----
  808.        rev2 |  -D date2]] [files...]
  809.        ----       -----    --------
  810.               Requires: working directory, repository.
  811.               ---------
  812.               Changes: nothing.
  813.               --------
  814.               You can compare your working files  with  revisions
  815.               in  the source repository, with the `cvs diff' com-
  816.               mand.  If you don't specify a particular  revision,
  817.               your  files  are  compared  with the revisions they
  818.               were based on.  You can also use the  standard  cvs
  819.               command  option -r to specify a particular revision
  820.               to compare your files with.  Finally, if you use -r
  821.               twice,  you  can  see differences between two revi-
  822.               sions in the repository.  You can also  specify  -D
  823.               options  to  diff  against  a revision in the past.
  824.               The -r and -D options can be mixed together with at
  825.               most two options ever specified.
  826.  
  827.               See   rcsdiff(1)  for  a  list  of  other  accepted
  828.               options.
  829.  
  830.               If you don't specify any files, diff  will  display
  831.               differences  for  all  those  files  in the current
  832.               directory (and its subdirectories, unless  you  use
  833.               the standard option -l) that differ from the corre-
  834.               sponding revision in the  source  repository  (i.e.
  835.               files  that  you have changed), or that differ from
  836.                            ---
  837.               the revision specified.
  838.  
  839.        export [-flNnQq] -r rev|-D date [-d dir] [-k kflag]
  840.                            ---    ----     ---      -----
  841.        module...
  842.        ------
  843.               Requires: repository.
  844.               ---------
  845.               Changes: current directory.
  846.               --------
  847.               This command is a variant of `cvs checkout'; use it
  848.               when you want a copy of the source for module with-
  849.                                                      ------
  850.               out  the cvs administrative directories.  For exam-
  851.               ple, you might use `cvs export' to  prepare  source
  852.               for  shipment off-site.  This command requires that
  853.                                                     --------
  854.               you specify a date or tag (with -D or -r), so  that
  855.               you can count on reproducing the source you ship to
  856.               others.
  857.  
  858.               The only non-standard options are `-d  dir'  (write
  859.                                                      ---
  860.               the  source  into  directory  dir)  and `-N' (don't
  861.                                             ---
  862.               shorten module paths).  These have the  same  mean-
  863.               ings as the same options in `cvs checkout'.
  864.  
  865.               The -kv option is useful when export is used.  This
  866.               causes any keywords to be  expanded  such  that  an
  867.               import  done  at  some other site will not lose the
  868.               keyword revision information.  Other kflags may  be
  869.                                                    -----
  870.               used  with `cvs export' and are described in co(1).
  871.  
  872.        history [-report] [-flags] [-options args] [files...]
  873.                  ------    -----    ------- ----   -----
  874.               Requires: the file `$CVSROOT/CVSROOT/history'
  875.               ---------
  876.               Changes: nothing.
  877.               --------
  878.               cvs keeps a history file that tracks  each  use  of
  879.               the  checkout,  commit,  rtag,  update, and release
  880.               commands.  You can use  `cvs  history'  to  display
  881.               this information in various formats.
  882.  
  883.               Warning:  `cvs  history' uses `-f', `-l', `-n', and
  884.               --------
  885.               `-p' in ways that conflict with the descriptions in
  886.               COMMON COMMAND OPTIONS.
  887.  
  888.               Several  options  (shown  above as -report) control
  889.                                                   ------
  890.               what kind of report is generated:
  891.  
  892.              -c  Report on each time commit was used (i.e.,  each
  893.                  time the repository was modified).
  894.  
  895.              -m module
  896.                 ------
  897.                  Report  on  a particular module.  (You can mean-
  898.                                           ------
  899.                  ingfully use -m more than once  on  the  command
  900.                  line.)
  901.  
  902.              -o  Report on checked-out modules.
  903.  
  904.              -T  Report on all tags.
  905.  
  906.              -x type
  907.                 ----
  908.                  Extract  a particular set of record types X from
  909.                                                            -
  910.                  the cvs history.  The  types  are  indicated  by
  911.                  single  letters, which you may specify in combi-
  912.                  nation.  Certain commands have a  single  record
  913.                  type:  checkout  (type `O'), release (type `F'),
  914.                  and rtag (type `T').  One of four  record  types
  915.                  may result from an update: `W', when the working
  916.                  copy of a file is deleted during update (because
  917.                  it  was  gone  from the repository); `U', when a
  918.                  working file was  copied  from  the  repository;
  919.                  `G',  when  a  merge  was  necessary and it suc-
  920.                  ceeded; and 'C', when a merge was necessary  but
  921.                  collisions were detected (requiring manual merg-
  922.                  ing).   Finally,  one  of  three  record   types
  923.                  results  from commit: `M', when a file was modi-
  924.                  fied; `A', when a file is first added; and  `R',
  925.                  when a file is removed.
  926.  
  927.              -e  Everything  (all  record  types);  equivalent to
  928.                  specifying `-xMACFROGWUT'.
  929.  
  930.              -z zone
  931.                 ----
  932.                  Use  time  zone  zone  when  outputting  history
  933.                                   ----
  934.                  records.   The  zone  name  LT  stands for local
  935.                  time; numeric offsets stand for hours  and  min-
  936.                  utes  ahead  of  UTC.  For example, +0530 stands
  937.                  for 5 hours and 30 minutes ahead of  (i.e.  east
  938.                  of) UTC.
  939.  
  940.             The  options  shown  as  -flags  constrain the report
  941.                                       -----
  942.             without requiring option arguments:
  943.  
  944.              -a  Show data for all users (the default is to  show
  945.                  data only for the user executing `cvs history').
  946.  
  947.              -l  Show last modification only.
  948.  
  949.              -w  Show only the  records  for  modifications  done
  950.                  from  the  same  working  directory  where  `cvs
  951.                  history' is executing.
  952.  
  953.             The options shown  as  -options  args  constrain  the
  954.                                     -------  ----
  955.             report based on an argument:
  956.  
  957.              -b str
  958.                 ---
  959.                  Show data back to a record containing the string
  960.                  str in either the module name, the file name, or
  961.                  ---
  962.                  the repository path.
  963.  
  964.              -D date
  965.                 ----
  966.                  Show data since date.
  967.                                  ----
  968.  
  969.              -p repository
  970.                 ----------
  971.                  Show  data  for  a  particular source repository
  972.                  (you can specify several -p options on the  same
  973.                  command line).
  974.  
  975.              -r rev
  976.                 ---
  977.                  Show  records  referring  to revisions since the
  978.                  revision or tag named rev appears in  individual
  979.                                        ---
  980.                  RCS  files.   Each  RCS file is searched for the
  981.                  revision or tag.
  982.  
  983.              -t tag
  984.                 ---
  985.                  Show records since tag tag was last added to the
  986.                                         ---
  987.                  history  file.   This  differs  from the -r flag
  988.                  above in that it reads only  the  history  file,
  989.                  not the RCS files, and is much faster.
  990.  
  991.              -u name
  992.                 ----
  993.                  Show records for user name.
  994.                                        ----
  995.  
  996.  
  997.        import [-options] repository vendortag releasetag...
  998.                 -------  ---------- --------- ----------
  999.               Requires:  Repository,  source  distribution direc-
  1000.               ---------
  1001.               tory.
  1002.               Changes: repository.
  1003.               --------
  1004.               Use `cvs import' to incorporate  an  entire  source
  1005.               distribution from an outside source (e.g., a source
  1006.               vendor) into your source repository directory.  You
  1007.               can use this command both for initial creation of a
  1008.               repository, and for wholesale updates to the module
  1009.               form the outside source.
  1010.  
  1011.               The  repository argument gives a directory name (or
  1012.                    ----------
  1013.               a path to a directory) under the CVS root directory
  1014.               for  repositories;  if the directory did not exist,
  1015.               import creates it.
  1016.  
  1017.               When you use import for updates to source that  has
  1018.               been  modified  in  your source repository (since a
  1019.               prior import), it will notify you of any files that
  1020.               conflict  in  the  two branches of development; use
  1021.               `cvs checkout -j' to reconcile the differences,  as
  1022.               import instructs you to do.
  1023.  
  1024.               By  default,  certain file names are ignored during
  1025.               `cvs import': names associated with CVS administra-
  1026.               tion,  or with other common source control systems;
  1027.               common names for patch files, object files, archive
  1028.               files,  and  editor  backup  files; and other names
  1029.               that are usually artifacts of  assorted  utilities.
  1030.               For  an  up to date list of ignored file names, see
  1031.               the Cederqvist manual (as described in the SEE ALSO
  1032.               section of this manpage).
  1033.  
  1034.               The  outside  source  is  saved  in  a  first-level
  1035.               branch, by default `1.1.1'.  Updates are leaves  of
  1036.               this  branch;  for  example,  files  from the first
  1037.               imported collection  of  source  will  be  revision
  1038.               `1.1.1.1',  then  files  from  the  first  imported
  1039.               update will be revision `1.1.1.2', and so on.
  1040.  
  1041.               At least three arguments are required.   repository
  1042.                                                        ----------
  1043.               is  needed  to  identify  the collection of source.
  1044.               vendortag is a tag for the entire branch (e.g., for
  1045.               ---------
  1046.               `1.1.1').   You  must  also  specify  at  least one
  1047.               releasetag to identify the files at the leaves cre-
  1048.               ----------
  1049.               ated each time you execute `cvs import'.
  1050.  
  1051.               One  of  the standard cvs command options is avail-
  1052.               able: -m message.  If you do not specify a  logging
  1053.                        -------
  1054.               message  with  -m,  your editor is invoked (as with
  1055.               commit) to allow you to enter one.
  1056.  
  1057.               There are three additional special options.
  1058.  
  1059.               Use `-d' to specify that each file's time  of  last
  1060.               modification  should  be  used for the checkin date
  1061.               and time.
  1062.  
  1063.               Use `-b branch' to  specify  a  first-level  branch
  1064.                       ------
  1065.               other than `1.1.1'.
  1066.  
  1067.               Use  `-I name' to specify file names that should be
  1068.                        ----
  1069.               ignored during import.  You  can  use  this  option
  1070.               repeatedly.   To  avoid  ignoring  any files at all
  1071.               (even those ignored by default), specify `-I !'.
  1072.  
  1073.        log [-l] rlog-options [files...]
  1074.                 ------------ ------
  1075.               Requires: repository, working directory.
  1076.               ---------
  1077.               Changes: nothing.
  1078.               --------
  1079.               Synonym: rlog
  1080.               --------
  1081.               Display log information for files.  Among the  more
  1082.                                           -----
  1083.               useful  options  are  -h to display only the header
  1084.               (including tag definitions, but  omitting  most  of
  1085.               the  full  log);  -r  to  select logs on particular
  1086.               revisions or ranges of revisions; and -d to  select
  1087.               particular  dates  or date ranges.  See rlog(1) for
  1088.               full explanations.  This command  is  recursive  by
  1089.               default, unless the -l option is specified.
  1090.  
  1091.        rdiff [-flags] [-V vn] [-r t|-D d [-r t2|-D d2]]
  1092.                -----      --      -    -     --    --
  1093.        modules...
  1094.        ----------
  1095.               Requires: repository.
  1096.               ---------
  1097.               Changes: nothing.
  1098.               --------
  1099.               Synonym: patch
  1100.               --------
  1101.               Builds a Larry Wall format  patch(1)  file  between
  1102.               two  releases,  that  can  be fed directly into the
  1103.               patch program to bring an  old  release  up-to-date
  1104.               with  the new release.  (This is one of the few cvs
  1105.               commands that operates directly  from  the  reposi-
  1106.               tory,  and  doesn't require a prior checkout.)  The
  1107.               diff output is sent to the standard output  device.
  1108.               You  can  specify  (using  the  standard  -r and -D
  1109.               options) any combination of one or two revisions or
  1110.               dates.   If only one revision or date is specified,
  1111.               the patch file reflects  differences  between  that
  1112.               revision or date and the current ``head'' revisions
  1113.               in the RCS file.
  1114.  
  1115.               Note that if the software release affected is  con-
  1116.               tained  in  more than one directory, then it may be
  1117.               necessary to specify the -p  option  to  the  patch
  1118.               command  when  patching  the  old  sources, so that
  1119.               patch is able to find the files that are located in
  1120.               other directories.
  1121.  
  1122.               The  standard option flags -f, and -l are available
  1123.                                    -----
  1124.               with this command.  There are also several  special
  1125.               options flags:
  1126.  
  1127.               If  you  use the -s option, no patch output is pro-
  1128.               duced.  Instead, a summary of the changed or  added
  1129.               files between the two releases is sent to the stan-
  1130.               dard output device.  This  is  useful  for  finding
  1131.               out,  for example, which files have changed between
  1132.               two dates or revisions.
  1133.  
  1134.               If you use the -t option, a diff  of  the  top  two
  1135.               revisions  is  sent  to the standard output device.
  1136.               This is most useful for seeing what the last change
  1137.               to a file was.
  1138.  
  1139.               If you use the -u option, the patch output uses the
  1140.               newer ``unidiff'' format for context diffs.
  1141.  
  1142.               You can use -c to explicitly specify the `diff  -c'
  1143.               form  of  context  diffs (which is the default), if
  1144.               you like.
  1145.  
  1146.        release [-dQq] modules...
  1147.                       -------
  1148.               Requires: Working directory.
  1149.               ---------
  1150.               Changes: Working directory, history log.
  1151.               --------
  1152.               This command is meant to safely cancel  the  effect
  1153.               of  `cvs  checkout'.' Since cvs doesn't lock files,
  1154.               it isn't strictly necessary to  use  this  command.
  1155.               You  can  always  simply delete your working direc-
  1156.               tory, if you like; but you risk losing changes  you
  1157.               may  have  forgotten, and you leave no trace in the
  1158.               cvs history file that you've abandoned your  check-
  1159.               out.
  1160.  
  1161.               Use  `cvs  release'  to avoid these problems.  This
  1162.               command checks that  no  un-committed  changes  are
  1163.               present; that you are executing it from immediately
  1164.               above, or inside, a cvs working directory; and that
  1165.               the  repository recorded for your files is the same
  1166.               as the repository defined in the module database.
  1167.  
  1168.               If all these conditions  are  true,  `cvs  release'
  1169.               leaves a record of its execution (attesting to your
  1170.               intentionally abandoning your checkout) in the  cvs
  1171.               history log.
  1172.  
  1173.               You  can use the -d flag to request that your work-
  1174.               ing copies of the source files be  deleted  if  the
  1175.               release succeeds.
  1176.  
  1177.        remove [-lR] [files...]
  1178.                      --------
  1179.               Requires: Working directory.
  1180.               ---------
  1181.               Changes: Working directory.
  1182.               --------
  1183.               Synonyms: rm, delete
  1184.               ---------
  1185.               Use this command to declare that you wish to remove
  1186.               files from the source repository.   Like  most  cvs
  1187.               -----
  1188.               commands, `cvs remove' works on files in your work-
  1189.               ing directory, not directly on the repository.   As
  1190.               a  safeguard, it also requires that you first erase
  1191.               the specified files from your working directory.
  1192.  
  1193.               The files are not actually removed until you  apply
  1194.               your changes to the repository with commit; at that
  1195.               point, the corresponding RCS files  in  the  source
  1196.               repository  are  moved  into  the `Attic' directory
  1197.                                -----
  1198.               (also within the source repository).
  1199.  
  1200.               This command is recursive  by  default,  scheduling
  1201.               all  physically  removed  files  that  it finds for
  1202.               removal by the next commit.  Use the -l  option  to
  1203.               avoid  this  recursion, or just specify that actual
  1204.               files that you wish remove to consider.
  1205.  
  1206.        rtag [-falnRQq]  [-b]  [-d]  [-r  tag  |  -D  date]  sym-
  1207.                                          ---         ----   ----
  1208.        bolic_tag modules...
  1209.        --------- ----------
  1210.               Requires: repository.
  1211.               ---------
  1212.               Changes: repository.
  1213.               --------
  1214.               Synonym: rfreeze
  1215.               --------
  1216.               You can use this command to assign symbolic tags to
  1217.               particular, explicitly specified source versions in
  1218.               the repository.  `cvs rtag' works directly  on  the
  1219.               repository  contents  (and requires no prior check-
  1220.               out).  Use `cvs tag' instead, to base the selection
  1221.               of  versions to tag on the contents of your working
  1222.               directory.
  1223.  
  1224.               In general, tags (often the symbolic names of soft-
  1225.               ware  distributions) should not be removed, but the
  1226.               -d option is available as a means  to  remove  com-
  1227.               pletely  obsolete  symbolic  names if necessary (as
  1228.               might be the case for an Alpha release, say).
  1229.  
  1230.               `cvs rtag' will not move a tag that already exists.
  1231.               With  the  -F  option, however, `cvs rtag' will re-
  1232.               locate any instance of  symbolic_tag  that  already
  1233.                                       ------------
  1234.               exists on that file to the new repository versions.
  1235.               Without the -F option, attempting to use `cvs rtag'
  1236.               to  apply  a  tag  that already exists on that file
  1237.               will produce an error message.
  1238.  
  1239.               The -b option  makes  the  tag  a  ``branch''  tag,
  1240.               allowing concurrent, isolated development.  This is
  1241.               most useful for creating a patch  to  a  previously
  1242.               released software distribution.
  1243.  
  1244.               You  can  use the standard -r and -D options to tag
  1245.               only those files that  already  contain  a  certain
  1246.               tag.   This  method  would be used to rename a tag:
  1247.               tag only the files identified by the old tag,  then
  1248.               delete  the old tag, leaving the new tag on exactly
  1249.               the same files as the old tag.
  1250.  
  1251.               rtag executes recursively by default,  tagging  all
  1252.               subdirectories  of modules you specify in the argu-
  1253.                                  -------
  1254.               ment.  You can restrict its operation to  top-level
  1255.               directories with the standard -l option; or you can
  1256.               explicitly request recursion with -R.
  1257.  
  1258.               The modules database can specify a program to  exe-
  1259.               cute  whenever a tag is specified; a typical use is
  1260.               to send electronic mail to a  group  of  interested
  1261.               parties.   If  you want to bypass that program, use
  1262.               the standard -n option.
  1263.  
  1264.               Use the -a option to have rtag look in the  `Attic'
  1265.               for  removed  files that contain the specified tag.
  1266.               The tag is removed from these files, which makes it
  1267.               convenient  to re-use a symbolic tag as development
  1268.               continues (and files get removed from the up-coming
  1269.               distribution).
  1270.  
  1271.        status [-lRqQ] [-v] [files...]
  1272.                             -----
  1273.               Requires: working directory, repository.
  1274.               ---------
  1275.               Changes: nothing.
  1276.               --------
  1277.               Display  a  brief  report  on the current status of
  1278.               files  with  respect  to  the  source   repository,
  1279.               -----
  1280.               including   any   ``sticky''  tags,  dates,  or  -k
  1281.               options.  (``Sticky''  options  will  restrict  how
  1282.               `cvs update' operates until you reset them; see the
  1283.               description of `cvs update -A...'.)
  1284.  
  1285.               You can also use this  command  to  anticipate  the
  1286.               potential  impact of a `cvs update' on your working
  1287.               source directory.  If you do not specify any  files
  1288.                                                             -----
  1289.               explicitly,  reports  are  shown for all files that
  1290.               cvs has placed in your working directory.  You  can
  1291.               limit  the  scope  of  this  search  to the current
  1292.               directory itself (not its subdirectories) with  the
  1293.               standard  -l  option  flag;  or  you can explicitly
  1294.               request  recursive  status  reports  with  the   -R
  1295.               option.
  1296.  
  1297.               The  -v option causes the symbolic tags for the RCS
  1298.               file to be displayed as well.
  1299.  
  1300.        tag [-lQqR] [-F] [-b] [-d] [-r tag | -D date]  [-f]  sym-
  1301.                                       ---      ----         ----
  1302.        bolic_tag [files...]
  1303.        ---------  -----
  1304.               Requires: working directory, repository.
  1305.               ---------
  1306.               Changes: repository.
  1307.               --------
  1308.               Synonym: freeze
  1309.               --------
  1310.               Use this command to assign  symbolic  tags  to  the
  1311.               nearest   repository   versions   to  your  working
  1312.               sources.  The tags are applied immediately  to  the
  1313.               repository, as with rtag.
  1314.  
  1315.               One use for tags is to record a ``snapshot'' of the
  1316.               current sources when the software freeze date of  a
  1317.               project  arrives.   As  bugs  are  fixed  after the
  1318.               freeze date, only those changed sources that are to
  1319.               be part of the release need be re-tagged.
  1320.  
  1321.               The  symbolic  tags are meant to permanently record
  1322.               which revisions of which files were used in  creat-
  1323.               ing  a software distribution.  The checkout, export
  1324.               and update commands allow you to extract  an  exact
  1325.               copy of a tagged release at any time in the future,
  1326.               regardless of  whether  files  have  been  changed,
  1327.               added, or removed since the release was tagged.
  1328.  
  1329.               You  can  use the standard -r and -D options to tag
  1330.               only those files that  already  contain  a  certain
  1331.               tag.   This  method  would be used to rename a tag:
  1332.               tag only the files identified by the old tag,  then
  1333.               delete  the old tag, leaving the new tag on exactly
  1334.               the same files as the old tag.
  1335.  
  1336.               Specifying the -f flag in addition to the -r or  -D
  1337.               flags  will  tag  those  files named on the command
  1338.               line even if they do not contain the old tag or did
  1339.               not exist on the specified date.
  1340.  
  1341.               By  default  (without a -r or -D flag) the versions
  1342.               to be tagged are supplied  implicitly  by  the  cvs
  1343.               records  of your working files' history rather than
  1344.               applied explicitly.
  1345.  
  1346.               If you use `cvs tag -d symbolic_tag...',  the  sym-
  1347.                                      ------------
  1348.               bolic  tag  you specify is deleted instead of being
  1349.                                          -------
  1350.               added.  Warning: Be very  certain  of  your  ground
  1351.                       -------
  1352.               before  you  delete  a  tag; doing this effectively
  1353.               discards some  historical  information,  which  may
  1354.               later turn out to have been valuable.
  1355.  
  1356.               `cvs  tag' will not move a tag that already exists.
  1357.               With the -F option, however,  `cvs  tag'  will  re-
  1358.               locate  any  instance  of symbolic_tag that already
  1359.                                         ------------
  1360.               exists on that file to the new repository versions.
  1361.               Without  the -F option, attempting to use `cvs tag'
  1362.               to apply a tag that already  exists  on  that  file
  1363.               will produce an error message.
  1364.  
  1365.               The  -b  option  makes  the  tag  a ``branch'' tag,
  1366.               allowing concurrent, isolated development.  This is
  1367.               most  useful  for  creating a patch to a previously
  1368.               released software distribution.
  1369.  
  1370.               Normally, tag executes recursively  through  subdi-
  1371.               rectories;  you can prevent this by using the stan-
  1372.               dard -l option, or specify the recursion explicitly
  1373.               by using -R.
  1374.  
  1375.        update [-ACdflPpQqR] [-d] [-r tag|-D date] files...
  1376.                                      ---    ----  --------
  1377.               Requires: repository, working directory.
  1378.               ---------
  1379.               Changes: working directory.
  1380.               --------
  1381.               After  you've  run  checkout to create your private
  1382.               copy of source from the  common  repository,  other
  1383.               developers   will  continue  changing  the  central
  1384.               source.  From time to time, when it  is  convenient
  1385.               in your development process, you can use the update
  1386.               command from within your working directory to  rec-
  1387.               oncile your work with any revisions applied to  the
  1388.               source  repository  since  your  last  checkout  or
  1389.               update.
  1390.  
  1391.               update  keeps  you  informed  of  its  progress  by
  1392.               printing a line for each file, prefaced with one of
  1393.               the characters `U A R M C ?' to indicate the status
  1394.               of the file:
  1395.  
  1396.        U file    The file was brought up to date with respect  to
  1397.          ----                         -- -- ----
  1398.                  the  repository.  This is done for any file that
  1399.                  exists in the repository but not in your source,
  1400.                  and  for  files that you haven't changed but are
  1401.                  not the most recent versions  available  in  the
  1402.                  repository.
  1403.  
  1404.        A file    The  file has been added to your private copy of
  1405.          ----                       -----
  1406.                  the sources, and will be  added  to  the  source
  1407.                  repository  when  you  run  `cvs  commit' on the
  1408.                  file.  This is a reminder to you that  the  file
  1409.                  needs to be committed.
  1410.  
  1411.        R file    The file has been removed from your private copy
  1412.          ----                      -------
  1413.                  of the sources, and will  be  removed  from  the
  1414.                  source  repository  when you run `cvs commit' on
  1415.                  the file.  This is a reminder to  you  that  the
  1416.                  file needs to be committed.
  1417.  
  1418.        M file    The  file is modified in your working directory.
  1419.          ----                 --------
  1420.                  `M' can indicate one of two states  for  a  file
  1421.                  you're  working on: either there were no modifi-
  1422.                  cations to the same file in the  repository,  so
  1423.                  that  your  file  remains as you last saw it; or
  1424.                  there were modifications in  the  repository  as
  1425.                  well  as in your copy, but they were merged suc-
  1426.                                                       ------
  1427.                  cessfully, without  conflict,  in  your  working
  1428.                  directory.
  1429.  
  1430.        C file    A  conflict  was  detected while trying to merge
  1431.          ----       --------
  1432.                  your changes  to  file  with  changes  from  the
  1433.                                    ----
  1434.                  source repository.  file (the copy in your work-
  1435.                                      ----
  1436.                  ing directory) is now the result of merging  the
  1437.                  two versions; an unmodified copy of your file is
  1438.                  also in your working directory,  with  the  name
  1439.                  `.#file.version',  where version is the revision
  1440.                     ---- -------          -------
  1441.                  that your modified  file  started  from.   (Note
  1442.                  that some systems automatically purge files that
  1443.                  begin with  `.#' if they have not been  accessed
  1444.                  for a few days.  If you intend to keep a copy of
  1445.                  your original file, it is a very  good  idea  to
  1446.                  rename it.)
  1447.  
  1448.        ? file    file  is in your working directory, but does not
  1449.          ----    ----
  1450.                  correspond to anything in the source repository,
  1451.                  and  is  not  in  the  list  of files for cvs to
  1452.                  ignore (see the description of the -I option).
  1453.  
  1454.  
  1455.             Use the -A option to reset any sticky tags, dates, or
  1456.             -k  options.  (If you get a working copy of a file by
  1457.             using one of the -r, -D, or -k options, cvs remembers
  1458.             the  corresponding  tag, date, or kflag and continues
  1459.                                               -----
  1460.             using it on future updates; use the -A option to make
  1461.             cvs  forget  these  specifications,  and retrieve the
  1462.             ``head'' version of the file).
  1463.  
  1464.             The -jbranch option merges the changes  made  between
  1465.                   ------
  1466.             the  resulting  revision  and the revision that it is
  1467.             based on (e.g., if the tag refers to  a  branch,  cvs
  1468.             will  merge all changes made in that branch into your
  1469.             working file).
  1470.  
  1471.             With two -j options, cvs will merge  in  the  changes
  1472.             between  the  two  respective revisions.  This can be
  1473.             used to ``remove'' a certain delta from your  working
  1474.             file.   E.g.,  If the file foo.c is based on revision
  1475.             1.6 and I want to remove the changes made between 1.3
  1476.             and 1.5, I might do:
  1477.  
  1478.                       example% cvs update -j1.5 -j1.3 foo.c   # note the order...
  1479.  
  1480.             In  addition,  each -j option can contain on optional
  1481.             date specification which, when  used  with  branches,
  1482.             can  limit  the  chosen revision to one within a spe-
  1483.             cific date.  An optional date is specified by  adding
  1484.             a colon (:) to the tag.
  1485.  
  1486.                       -jSymbolic_Tag:Date_Specifier
  1487.                                 -        -
  1488.  
  1489.             Use  the  -d  option  to  create any directories that
  1490.             exist in the repository if they're missing  from  the
  1491.             working  directory.   (Normally,  update acts only on
  1492.             directories and files that were already  enrolled  in
  1493.             your working directory.)  This is useful for updating
  1494.             directories that were created in the repository since
  1495.             the  initial checkout; but it has an unfortunate side
  1496.             effect.  If you deliberately avoided certain directo-
  1497.             ries  in the repository when you created your working
  1498.             directory (either through use of a module name or  by
  1499.             listing  explicitly  the  files  and  directories you
  1500.             wanted on the command line), then  updating  with  -d
  1501.             will  create those directories, which may not be what
  1502.             you want.
  1503.  
  1504.             Use -I name to ignore files whose  names  match  name
  1505.                    ----                                      ----
  1506.             (in  your  working directory) during the update.  You
  1507.             can specify -I more than once on the command line  to
  1508.             specify  several files to ignore.  By default, update
  1509.             ignores files whose names match certain patterns; for
  1510.             an  up  to  date  list of ignored file names, see the
  1511.             Cederqvist manual (as described in the SEE ALSO  sec-
  1512.             tion of this manpage).
  1513.  
  1514.             Use `-I !' to avoid ignoring any files at all.
  1515.  
  1516.             Use  the  `-C'  option  to overwrite locally modified
  1517.             files with clean copies from the repository (the mod-
  1518.             ified file is saved in `.#file.revision', however).
  1519.                                       ---- --------
  1520.  
  1521.             The  standard cvs command options -f, -k, -l, -P, -p,
  1522.             and -r are also available with update.
  1523.  
  1524. FILES
  1525.        For more detailed information on cvs supporting files, see
  1526.        cvs(5).
  1527.  
  1528.        Files in home directories:
  1529.        ----- -- ---- ------------
  1530.  
  1531.        .cvsrc The  cvs  initialisation  file.  Lines in this file
  1532.               can be used to specify default options for each cvs
  1533.               command.   For  example  the  line  `diff  -c' will
  1534.               ensure that `cvs diff'  is  always  passed  the  -c
  1535.               option  in  addition to any other options passed on
  1536.               the command line.
  1537.  
  1538.        .cvswrappers
  1539.               Specifies wrappers to be used in addition to  those
  1540.               specified  in  the  CVSROOT/cvswrappers file in the
  1541.               repository.
  1542.  
  1543.        Files in working directories:
  1544.        ----- -- ------- ------------
  1545.  
  1546.        CVS    A directory of cvs administrative  files.   Do  not
  1547.                                                           --  ---
  1548.               delete.
  1549.               -------
  1550.  
  1551.        CVS/Entries
  1552.               List and status of files in your working directory.
  1553.  
  1554.        CVS/Entries.Backup
  1555.               A backup of `CVS/Entries'.
  1556.  
  1557.        CVS/Entries.Static
  1558.               Flag: do not add more entries on `cvs update'.
  1559.  
  1560.        CVS/Root
  1561.               Pathname to the repository ( CVSROOT ) location  at
  1562.               the time of checkout.  This file is used instead of
  1563.               the CVSROOT environment variable if the environment
  1564.               variable  is  not  set.   A warning message will be
  1565.               issued when the contents of this file and the  CVS-
  1566.               ROOT  environment variable differ.  The file may be
  1567.               over-ridden    by    the    presence     of     the
  1568.               CVS_IGNORE_REMOTE_ROOT environment variable.
  1569.  
  1570.        CVS/Repository
  1571.               Pathname  to  the  corresponding  directory  in the
  1572.               source repository.
  1573.  
  1574.        CVS/Tag
  1575.               Contains the per-directory ``sticky'' tag  or  date
  1576.               information.  This file is created/updated when you
  1577.               specify -r or -D to the  checkout  or  update  com-
  1578.               mands, and no files are specified.
  1579.  
  1580.        CVS/Checkin.prog
  1581.               Name of program to run on `cvs commit'.
  1582.  
  1583.        CVS/Update.prog
  1584.               Name of program to run on `cvs update'.
  1585.  
  1586.        Files in source repositories:
  1587.        ----- -- ------ -------------
  1588.  
  1589.        $CVSROOT/CVSROOT
  1590.               Directory of global administrative files for repos-
  1591.               itory.
  1592.  
  1593.        CVSROOT/commitinfo,v
  1594.               Records  programs  for   filtering   `cvs   commit'
  1595.               requests.
  1596.  
  1597.        CVSROOT/cvswrappers,v
  1598.               Records cvs wrapper commands to be used when check-
  1599.               ing files into and out of the repository.  Wrappers
  1600.               allow  the file or directory to be processed on the
  1601.               way in and out of CVS.  The intended uses are many,
  1602.               one  possible  use  would  be  to reformat a C file
  1603.               before the file is checked in, so all of  the  code
  1604.               in the repository looks the same.
  1605.  
  1606.        CVSROOT/editinfo,v
  1607.               Records   programs   for   editing/validating  `cvs
  1608.               commit' log entries.
  1609.  
  1610.        CVSROOT/history
  1611.               Log file of cvs transactions.
  1612.  
  1613.        CVSROOT/loginfo,v
  1614.               Records  programs  for  piping  `cvs  commit'   log
  1615.               entries.
  1616.  
  1617.        CVSROOT/modules,v
  1618.               Definitions for modules in this repository.
  1619.  
  1620.        CVSROOT/rcsinfo,v
  1621.               Records  pathnames  to templates used during a `cvs
  1622.               commit' operation.
  1623.  
  1624.        CVSROOT/taginfo,v
  1625.               Records programs for validating/logging  `cvs  tag'
  1626.               and `cvs rtag' operations.
  1627.  
  1628.        MODULE/Attic
  1629.               Directory for removed source files.
  1630.  
  1631.        #cvs.lock
  1632.               A  lock  directory created by cvs when doing sensi-
  1633.               tive changes to the source repository.
  1634.  
  1635.        #cvs.tfl.pid
  1636.                 ---
  1637.               Temporary lock file for repository.
  1638.  
  1639.        #cvs.rfl.pid
  1640.                 ---
  1641.               A read lock.
  1642.  
  1643.        #cvs.wfl.pid
  1644.                 ---
  1645.               A write lock.
  1646.  
  1647. ENVIRONMENT VARIABLES
  1648.        CVSROOT
  1649.               Should contain the full pathname to the root of the
  1650.               cvs  source  repository  (where  the  RCS files are
  1651.               kept).  This information must be available  to  cvs
  1652.               for  most  commands  to  execute; if CVSROOT is not
  1653.               set, or if you wish to override it for one  invoca-
  1654.               tion,  you  can supply it on the command line: `cvs
  1655.               -d cvsroot cvs_command...' You may not need to  set
  1656.                  ------- -----------
  1657.               CVSROOT  if your cvs binary has the right path com-
  1658.               piled in; use `cvs -v' to display  all  compiled-in
  1659.               paths.
  1660.  
  1661.        CVSREAD
  1662.               If  this  is set, checkout and update will try hard
  1663.               to make the files in your working  directory  read-
  1664.               only.   When  this is not set, the default behavior
  1665.               is to permit modification of your working files.
  1666.  
  1667.        RCSBIN Specifies the full pathname where to find RCS  pro-
  1668.               grams, such as co(1) and ci(1) (CVS 1.9 and older).
  1669.  
  1670.        CVSEDITOR
  1671.               Specifies the program to use for recording log mes-
  1672.               sages  during  commit.   If not set, the VISUAL and
  1673.               EDITOR environment variables  are  tried  (in  that
  1674.               order).   If  neither  is  set,  a system-dependent
  1675.               default editor (e.g., vi) is used.
  1676.  
  1677.        CVS_IGNORE_REMOTE_ROOT
  1678.               If this variable is set then cvs  will  ignore  all
  1679.               references  to  remote repositories in the CVS/Root
  1680.               file.
  1681.  
  1682.        CVS_RSH
  1683.               cvs uses the contents of this variable to determine
  1684.               the  name  of  the remote shell command to use when
  1685.               starting a cvs server.  If this variable is not set
  1686.               then `rsh' is used.
  1687.  
  1688.        CVS_SERVER
  1689.               cvs uses the contents of this variable to determine
  1690.               the name of the cvs server command.  If this  vari-
  1691.               able is not set then `cvs' is used.
  1692.  
  1693.        CVSWRAPPERS
  1694.               This  variable  is used by the `cvswrappers' script
  1695.               to determine the name of the wrapper file, in addi-
  1696.               tion  to  the  wrappers  defaults  contained in the
  1697.               repository  (CVSROOT/cvswrappers)  and  the  user's
  1698.               home directory (~/.cvswrappers).
  1699.  
  1700. AUTHORS
  1701.        Dick Grune
  1702.               Original  author  of  the  cvs shell script version
  1703.               posted to comp.sources.unix in the volume6  release
  1704.               of  December,  1986.  Credited with much of the cvs
  1705.               conflict resolution algorithms.
  1706.  
  1707.        Brian Berliner
  1708.               Coder and designer of the  cvs  program  itself  in
  1709.               April,  1989,  based  on  the original work done by
  1710.               Dick.
  1711.  
  1712.        Jeff Polk
  1713.               Helped Brian with the design of the cvs module  and
  1714.               vendor  branch support and author of the checkin(1)
  1715.               shell script (the ancestor of `cvs import').
  1716.  
  1717.        And many others too numerous to mention here.
  1718.  
  1719. SEE ALSO
  1720.        The most comprehensive manual for CVS is  Version  Manage-
  1721.        ment  with CVS by Per Cederqvist et al.  Depending on your
  1722.        system, you may be able to get it with the info  cvs  com-
  1723.        mand  or  it  may  be  available  as  cvs.ps (postscript),
  1724.        cvs.texinfo (texinfo source), or cvs.html.
  1725.  
  1726.        For CVS updates, more information on documentation,  soft-
  1727.        ware related to CVS, development of CVS, and more, see:
  1728.                  http://www.cyclic.com
  1729.                  http://www.loria.fr/~molli/cvs-index.html
  1730.  
  1731.        ci(1),  co(1),  cvs(5),   cvsbug(8),   diff(1),   grep(1),
  1732.        patch(1), rcs(1), rcsdiff(1), rcsmerge(1), rlog(1).
  1733.