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