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

  1.  
  2.  
  3.  
  4. cvs(5)                                                     cvs(5)
  5.  
  6.  
  7. NAME
  8.        cvs - Concurrent Versions System support files
  9.  
  10. SYNOPSIS
  11.        $CVSROOT/CVSROOT/commitinfo,v
  12.  
  13.        $CVSROOT/CVSROOT/cvsignore,v
  14.  
  15.        $CVSROOT/CVSROOT/cvswrappers,v
  16.  
  17.        $CVSROOT/CVSROOT/editinfo,v
  18.  
  19.        $CVSROOT/CVSROOT/history
  20.  
  21.        $CVSROOT/CVSROOT/loginfo,v
  22.  
  23.        $CVSROOT/CVSROOT/modules,v
  24.  
  25.        $CVSROOT/CVSROOT/rcsinfo,v
  26.  
  27.        $CVSROOT/CVSROOT/taginfo,v
  28.  
  29. DESCRIPTION
  30.        cvs is a system for providing source control to hierarchi-
  31.        cal collections of source directories.  Commands and  pro-
  32.        cedures for using cvs are described in cvs(1).
  33.  
  34.        cvs  manages source repositories, the directories contain-
  35.                     ------ ------------
  36.        ing master copies of  the  revision-controlled  files,  by
  37.        copying  particular revisions of the files to (and modifi-
  38.        cations back from) developers'  private  working  directo-
  39.                                                 -------  --------
  40.        ries.   In terms of file structure, each individual source
  41.        ----
  42.        repository is an immediate subdirectory of $CVSROOT.
  43.  
  44.        The files described here are supporting files; they do not
  45.        have  to  exist  for cvs to operate, but they allow you to
  46.        make cvs operation more flexible.
  47.  
  48.        You can use the `modules' file to  define  symbolic  names
  49.        for  collections  of source maintained with cvs.  If there
  50.        is no `modules' file,  developers  must  specify  complete
  51.        path  names  (absolute,  or  relative to $CVSROOT) for the
  52.        files they wish to manage with cvs commands.
  53.  
  54.        You can use the `commitinfo' file to  define  programs  to
  55.        execute  whenever `cvs commit' is about to execute.  These
  56.        programs are used for ``pre-commit''  checking  to  verify
  57.        that  the  modified,  added,  and removed files are really
  58.        ready to be committed.  Some uses for this check might  be
  59.        to  turn  off  a portion (or all) of the source repository
  60.        from a particular person or group.  Or, perhaps, to verify
  61.        that the changed files conform to the site's standards for
  62.        coding practice.
  63.  
  64.        You can use the `cvswrappers' file to record  cvs  wrapper
  65.        commands  to  be  used when checking files into and out of
  66.        the repository.  Wrappers allow the file or  directory  to
  67.        be  processed  on the way in and out of CVS.  The intended
  68.        uses are many, one possible use would be to reformat  a  C
  69.        file  before the file is checked in, so all of the code in
  70.        the repository looks the same.
  71.  
  72.        You can use the `loginfo' file to define programs to  exe-
  73.        cute  after  any  commit,  which  writes  a  log entry for
  74.        changes in the repository.  These logging  programs  might
  75.        be  used to append the log message to a file.  Or send the
  76.        log message through electronic mail to a group of develop-
  77.        ers.   Or,  perhaps,  post the log message to a particular
  78.        newsgroup.
  79.  
  80.        You can use the `taginfo' file to define programs to  exe-
  81.        cute  after any tagorrtag operation.  These programs might
  82.        be used to append a message to a file listing the new  tag
  83.        name  and the programmer who created it, or send mail to a
  84.        group of developers, or, perhaps, post a message to a par-
  85.        ticular newsgroup.
  86.  
  87.        You  can  use  the  `rcsinfo' file to define forms for log
  88.        messages.
  89.  
  90.        You can use the `editinfo' file to define a program to ex-
  91.        ecute  for  editing/validating  `cvs  commit' log entries.
  92.        This is most useful when used with a `rcsinfo' forms spec-
  93.        ification,  as it can verify that the proper fields of the
  94.        form have been  filled  in  by  the  user  committing  the
  95.        change.
  96.  
  97.        You  can  use  the `cvsignore' file to specify the default
  98.        list of files to ignore during update.
  99.  
  100.        You can use the `history' file to record the cvs  commands
  101.        that affect the repository.  The creation of this file en-
  102.        ables history logging.
  103.  
  104. FILES
  105.        modules
  106.               The `modules'  file  records  your  definitions  of
  107.               names for collections of source code.  cvs will use
  108.               these definitions if you use cvs to check in a file
  109.               with        the        right        format       to
  110.               `$CVSROOT/CVSROOT/modules,v'.
  111.  
  112.               The `modules' file may contain blank lines and com-
  113.               ments  (lines beginning with `#') as well as module
  114.               definitions.  Long lines can be  continued  on  the
  115.               next  line by specifying a backslash (``\'') as the
  116.               last character on the line.
  117.  
  118.               A  module  definition  is  a  single  line  of  the
  119.                  ------  ----------
  120.               `modules'  file, in either of two formats.  In both
  121.               cases, mname represents the symbolic  module  name,
  122.                      -----
  123.               and the remainder of the line is its definition.
  124.  
  125.               mname -a aliases...
  126.               -----    -------
  127.               This represents the simplest way of defining a mod-
  128.               ule mname.  The `-a' flags the definition as a sim-
  129.                   -----
  130.               ple  alias:  cvs  will treat any use of mname (as a
  131.                                                       -----
  132.               command argument) as if the list of  names  aliases
  133.                                                           -------
  134.               had  been  specified  instead.  aliases may contain
  135.                                               -------
  136.               either other module names or paths.  When  you  use
  137.               paths in aliases, `cvs checkout' creates all inter-
  138.                        -------
  139.               mediate directories in the working directory,  just
  140.               as if the path had been specified explicitly in the
  141.               cvs arguments.
  142.  
  143.               mname [ options ] dir [ files... ] [ &module... ]
  144.               -----   -------   ---   -----         ------
  145.  
  146.               In the simplest case, this form of  module  defini-
  147.               tion  reduces to `mname dir'.  This defines all the
  148.                                 ----- ---
  149.               files in directory dir as module mname.  dir  is  a
  150.                                  ---           -----   ---
  151.               relative  path  (from  $CVSROOT)  to a directory of
  152.               source in one of the source repositories.  In  this
  153.               case,  on checkout, a single directory called mname
  154.                                                             -----
  155.               is created as a working directory; no  intermediate
  156.               directory  levels  are used by default, even if dir
  157.                                                               ---
  158.               was a path involving several directory levels.
  159.  
  160.               By explicitly specifying files in the module  defi-
  161.                                        -----
  162.               nition  after  dir, you can select particular files
  163.                              ---
  164.               from directory dir.  The sample definition for mod-
  165.                              ---
  166.               ules  is an example of a module defined with a sin-
  167.               gle file from a particular directory.  Here is  an-
  168.               other example:
  169.  
  170.               m4test  unsupported/gnu/m4 foreach.m4 forloop.m4
  171.  
  172.               With   this  definition,  executing  `cvs  checkout
  173.               m4test' will  create  a  single  working  directory
  174.               `m4test'  containing  the  two  files listed, which
  175.               both come from a common  directory  several  levels
  176.               deep in the cvs source repository.
  177.  
  178.               A  module  definition can refer to other modules by
  179.               including `&module' in  its  definition.   checkout
  180.                           ------
  181.               creates  a  subdirectory  for  each such module, in
  182.                                                        ------
  183.               your working directory.
  184.               New in cvs 1.3; avoid this feature if sharing  mod-
  185.               --- --     ----
  186.               ule definitions with older versions of cvs.
  187.  
  188.               Finally,  you  can use one or more of the following
  189.               options in module definitions:
  190.               -------
  191.  
  192.               `-d name', to name the working directory  something
  193.                   ----
  194.               other than the module name.
  195.               New  in cvs 1.3; avoid this feature if sharing mod-
  196.               ---  --     ----
  197.               ule definitions with older versions of cvs.
  198.  
  199.               `-i prog' allows you to specify a program  prog  to
  200.                   ----                                   ----
  201.               run whenever files in a module are committed.  prog
  202.                                                              ----
  203.               runs with a single argument, the full  pathname  of
  204.               the  affected  directory  in  a  source repository.
  205.               The `commitinfo', `loginfo', and  `editinfo'  files
  206.               provide other ways to call a program on commit.
  207.  
  208.               `-o  prog'  allows you to specify a program prog to
  209.                    ----                                   ----
  210.               run whenever files in a  module  are  checked  out.
  211.               prog  runs with a single argument, the module name.
  212.               ----
  213.  
  214.               `-e prog' allows you to specify a program  prog  to
  215.                   ----                                   ----
  216.               run  whenever files in a module are exported.  prog
  217.                                                              ----
  218.               runs with a single argument, the module name.
  219.  
  220.               `-t prog' allows you to specify a program  prog  to
  221.                   ----                                   ----
  222.               run  whenever  files  in a module are tagged.  prog
  223.                                                              ----
  224.               runs with two arguments:  the module name  and  the
  225.               symbolic tag specified to rtag.
  226.  
  227.               `-u  prog'  allows you to specify a program prog to
  228.                    ----                                   ----
  229.               run whenever `cvs update' is executed from the top-
  230.               level  directory  of  the checked-out module.  prog
  231.                                                              ----
  232.               runs with a single argument, the full path  to  the
  233.               source repository for this module.
  234.  
  235.        commitinfo, loginfo, rcsinfo, editinfo
  236.               These files all specify programs to call at differ-
  237.               ent points in the `cvs commit' process.  They  have
  238.               a common structure.  Each line is a pair of fields:
  239.               a regular expression, separated by whitespace  from
  240.               a  filename or command-line template.  Whenever one
  241.               of the regular expression matches a directory  name
  242.               in  the  repository,  the rest of the line is used.
  243.               If the line begins with a # character,  the  entire
  244.               line  is  considered  a  comment  and  is  ignored.
  245.               Whitespace between the fields is also ignored.
  246.  
  247.               For `loginfo', the rest of the line is  a  command-
  248.               line  template  to  execute.  The templates can in-
  249.               clude not only a program name, but whatever list of
  250.               arguments you wish.  If you write `%s' somewhere on
  251.               the argument list, cvs supplies, at that point, the
  252.               list  of  files  affected by the commit.  The first
  253.               entry in the list is the relative path  within  the
  254.               source  repository  where the change is being made.
  255.               The remaining arguments list the files that are be-
  256.               ing  modified, added, or removed by this commit in-
  257.               vocation.
  258.  
  259.               For `taginfo', the rest of the line is  a  command-
  260.               line  template to execute.  The arguments passed to
  261.               the command are, in order, the tagname ,  operation
  262.                                              ------- -  ---------
  263.               (i.e.  add for `tag', mov for `tag -F', and del for
  264.               `tag -d`), repository , and any remaining are pairs
  265.                          ---------- -
  266.               of filename revision .  A non-zero exit of the fil-
  267.               ter program will cause the tag to be aborted.
  268.  
  269.               For `commitinfo', the rest of the line  is  a  com-
  270.               mand-line  template  to  execute.  The template can
  271.               include not only a program name, but whatever  list
  272.               of  arguments  you wish.  The full path to the cur-
  273.               rent source repository is appended to the template,
  274.               followed by the file names of any files involved in
  275.               the commit (added, removed, and modified files).
  276.  
  277.               For `rcsinfo', the rest of the  line  is  the  full
  278.               path  to  a file that should be loaded into the log
  279.               message template.
  280.  
  281.               For `editinfo', the rest of the line is a  command-
  282.               line template to execute.  The template can include
  283.               not only a program name, but whatever list of argu-
  284.               ments  you  wish.  The full path to the current log
  285.               message template file is appended to the  template.
  286.  
  287.               You can use one of two special strings instead of a
  288.               regular expression: `ALL' specifies a command  line
  289.               template   that   must   always  be  executed,  and
  290.               `DEFAULT' specifies a command line template to  use
  291.               if no regular expression is a match.
  292.  
  293.               The  `commitinfo' file contains commands to execute
  294.               before any other commit activity, to allow  you  to
  295.               ------
  296.               check  any conditions that must be satisfied before
  297.               commit can proceed.  The rest of  the  commit  will
  298.               execute  only  if  all  selected commands from this
  299.               file exit with exit status 0.
  300.  
  301.               The `rcsinfo' file allows you to specify  log  tem-
  302.                                                         ---  ----
  303.               plates  for the commit logging session; you can use
  304.               ------
  305.               this to provide a form to edit when filling out the
  306.               commit  log.   The  field after the regular expres-
  307.               sion, in this file, contains  filenames  (of  files
  308.               containing  the  logging forms) rather than command
  309.               templates.
  310.  
  311.               The `editinfo' file allows you to execute a  script
  312.               before  the commit starts, but after the log infor-
  313.               ------  --- ------ ------
  314.               mation is recorded.  These "edit" scripts can veri-
  315.               fy  information  recorded  in the log file.  If the
  316.               edit script exits wth a non-zero exit  status,  the
  317.               commit is aborted.
  318.  
  319.               The  `loginfo' file contains commands to execute at
  320.                                                                --
  321.               the end of a commit.  The text specified as a  com-
  322.               --- ---
  323.               mit log message is piped through the command; typi-
  324.               cal uses include sending mail, filing an article in
  325.               a newsgroup, or appending to a central file.
  326.  
  327.        cvsignore, .cvsignore
  328.               The  default list of files (or sh(1) file name pat-
  329.               terns) to ignore during `cvs update'.   At  startup
  330.               time,  cvs  loads  the  compiled in default list of
  331.               file name patterns (see  cvs(1)).   Then  the  per-
  332.               repository list included in $CVSROOT/CVSROOT/cvsig-
  333.               nore is loaded, if it exists.   Then  the  per-user
  334.               list  is  loaded from `$HOME/.cvsignore'.  Finally,
  335.               as cvs traverses through your directories, it  will
  336.               load  any per-directory `.cvsignore' files whenever
  337.               it finds one.  These per-directory files  are  only
  338.               valid for exactly the directory that contains them,
  339.               not for any sub-directories.
  340.  
  341.        history
  342.               Create this file in $CVSROOT/CVSROOT to enable his-
  343.               tory   logging   (see   the   description  of  `cvs
  344.               history').
  345.  
  346. SEE ALSO
  347.        cvs(1),
  348.  
  349. COPYING
  350.        Copyright (C) 1992 Cygnus  Support,  Brian  Berliner,  and
  351.        Jeff Polk
  352.  
  353.        Permission  is  granted  to  make  and distribute verbatim
  354.        copies of this manual provided the  copyright  notice  and
  355.        this permission notice are preserved on all copies.
  356.  
  357.        Permission is granted to copy and distribute modified ver-
  358.        sions of this manual under  the  conditions  for  verbatim
  359.        copying,  provided  that the entire resulting derived work
  360.        is distributed under the  terms  of  a  permission  notice
  361.        identical to this one.
  362.  
  363.        Permission  is granted to copy and distribute translations
  364.        of this manual into another language, under the above con-
  365.        ditions for modified versions, except that this permission
  366.        notice may be included in  translations  approved  by  the
  367.        Free  Software  Foundation  instead of in the original En-
  368.        glish.
  369.