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