home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 22 gnu / 22-gnu.zip / rcs57pc1.zip / doc / ci.man next >
Text File  |  1996-02-13  |  26KB  |  661 lines

  1.  
  2.  
  3.  
  4. CI(1)                                                       CI(1)
  5.  
  6.  
  7. NAME
  8.        ci - check in RCS revisions
  9.  
  10. SYNOPSIS
  11.        ci [options] file ...
  12.  
  13. DESCRIPTION
  14.        ci  stores  new  revisions  into RCS files.  Each pathname
  15.        matching an RCS suffix is taken to be an  RCS  file.   All
  16.        others  are  assumed  to  be  working files containing new
  17.        revisions.  ci deposits the contents of each working  file
  18.        into  the  corresponding RCS file.  If only a working file
  19.        is given, ci tries to find the corresponding RCS  file  in
  20.        an  RCS subdirectory and then in the working file's direc-
  21.        tory.  For more details, see FILE NAMING below.
  22.  
  23.        For ci to work, the caller's login must be on  the  access
  24.        list,  except if the access list is empty or the caller is
  25.        the superuser or the owner of the file.  To append  a  new
  26.        revision  to  an existing branch, the tip revision on that
  27.        branch must be locked by the caller.   Otherwise,  only  a
  28.        new  branch  can  be  created.   This  restriction  is not
  29.        enforced for the owner of the file if  non-strict  locking
  30.        is  used (see rcs(1)).  A lock held by someone else can be
  31.        broken with the rcs command.
  32.  
  33.        Unless the -f option is given, ci checks whether the revi-
  34.        sion  to  be deposited differs from the preceding one.  If
  35.        not, instead of creating a new revision ci reverts to  the
  36.        preceding one.  To revert, ordinary ci removes the working
  37.        file and any lock; ci -l keeps and ci -u removes any lock,
  38.        and  then they both generate a new working file much as if
  39.        co -l or co -u had been applied to the preceding revision.
  40.        When reverting, any -n and -s options apply to the preced-
  41.        ing revision.
  42.  
  43.        For each revision deposited, ci prompts for a log message.
  44.        The  log  message  should summarize the change and must be
  45.        terminated by end-of-file or by  a  line  containing  . by
  46.        itself.   If  several files are checked in ci asks whether
  47.        to reuse the previous log message.  If the standard  input
  48.        is  not  a terminal, ci suppresses the prompt and uses the
  49.        same log message for all files.  See also -m.
  50.  
  51.        If the RCS file does not exist, ci creates it and deposits
  52.        the  contents  of the working file as the initial revision
  53.        (default number: 1.1).  The access list is initialized  to
  54.        empty.   Instead  of the log message, ci requests descrip-
  55.        tive text (see -t below).
  56.  
  57.        The number rev of the deposited revision can be  given  by
  58.        any  of the options -f, -i, -I, -j, -k, -l, -M, -q, -r, or
  59.        -u.  rev can be symbolic,  numeric,  or  mixed.   Symbolic
  60.        names  in  rev  must already be defined; see the -n and -N
  61.  
  62.  
  63.  
  64. GNU                         1995/06/16                          1
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CI(1)                                                       CI(1)
  71.  
  72.  
  73.        options for assigning names during checkin.  If rev is  $,
  74.        ci  determines  the revision number from keyword values in
  75.        the working file.
  76.  
  77.        If rev begins with a period, then the default branch (nor-
  78.        mally  the  trunk) is prepended to it.  If rev is a branch
  79.        number followed by a period, then the latest  revision  on
  80.        that branch is used.
  81.  
  82.        If  rev  is  a revision number, it must be higher than the
  83.        latest one on the branch to which  rev  belongs,  or  must
  84.        start a new branch.
  85.  
  86.        If  rev is a branch rather than a revision number, the new
  87.        revision is appended to that branch.  The level number  is
  88.        obtained  by  incrementing the tip revision number of that
  89.        branch.  If rev  indicates  a  non-existing  branch,  that
  90.        branch  is  created  with  the  initial  revision numbered
  91.        rev.1.
  92.  
  93.        If rev is omitted, ci tries to  derive  the  new  revision
  94.        number  from  the  caller's  last lock.  If the caller has
  95.        locked the tip revision of a branch, the new  revision  is
  96.        appended  to  that  branch.   The  new  revision number is
  97.        obtained by incrementing the tip revision number.  If  the
  98.        caller  locked a non-tip revision, a new branch is started
  99.        at that revision by incrementing the highest branch number
  100.        at  that  revision.   The default initial branch and level
  101.        numbers are 1.
  102.  
  103.        If rev is omitted and the caller has no lock, but owns the
  104.        file  and  locking is not set to strict, then the revision
  105.        is appended to the default branch (normally the trunk; see
  106.        the -b option of rcs(1)).
  107.  
  108.        Exception:  On the trunk, revisions can be appended to the
  109.        end, but not inserted.
  110.  
  111. OPTIONS
  112.        -rrev  Check in revision rev.
  113.  
  114.        -r     The bare -r option (without any  revision)  has  an
  115.               unusual  meaning in ci.  With other RCS commands, a
  116.               bare -r option specifies the most  recent  revision
  117.               on  the  default  branch,  but  with  ci, a bare -r
  118.               option  reestablishes  the  default   behavior   of
  119.               releasing a lock and removing the working file, and
  120.               is used to override any default -l  or  -u  options
  121.               established by shell aliases or scripts.
  122.  
  123.        -l[rev]
  124.               works  like  -r,  except  it performs an additional
  125.               co -l  for  the  deposited  revision.   Thus,   the
  126.               deposited revision is immediately checked out again
  127.  
  128.  
  129.  
  130. GNU                         1995/06/16                          2
  131.  
  132.  
  133.  
  134.  
  135.  
  136. CI(1)                                                       CI(1)
  137.  
  138.  
  139.               and locked.  This is useful for saving  a  revision
  140.               although one wants to continue editing it after the
  141.               checkin.
  142.  
  143.        -u[rev]
  144.               works like -l, except that the  deposited  revision
  145.               is not locked.  This lets one read the working file
  146.               immediately after checkin.
  147.  
  148.               The -l, bare -r, and -u options are mutually exclu-
  149.               sive  and  silently override each other.  For exam-
  150.               ple, ci -u -r is equivalent to ci -r  because  bare
  151.               -r overrides -u.
  152.  
  153.        -f[rev]
  154.               forces  a  deposit;  the  new revision is deposited
  155.               even it is not different from the preceding one.
  156.  
  157.        -k[rev]
  158.               searches the working file  for  keyword  values  to
  159.               determine   its  revision  number,  creation  date,
  160.               state, and author (see co(1)),  and  assigns  these
  161.               values  to the deposited revision, rather than com-
  162.               puting them locally.  It also generates  a  default
  163.               login  message  noting  the login of the caller and
  164.               the actual checkin date.  This option is useful for
  165.               software  distribution.  A revision that is sent to
  166.               several sites should be  checked  in  with  the  -k
  167.               option at these sites to preserve the original num-
  168.               ber, date, author, and state.  The  extracted  key-
  169.               word  values  and  the  default  log message can be
  170.               overridden with the options -d, -m, -s, -w, and any
  171.               option that carries a revision number.
  172.  
  173.        -q[rev]
  174.               quiet  mode;  diagnostic  output is not printed.  A
  175.               revision that is not different from  the  preceding
  176.               one is not deposited, unless -f is given.
  177.  
  178.        -i[rev]
  179.               initial  checkin;  report  an error if the RCS file
  180.               already exists.  This  avoids  race  conditions  in
  181.               certain applications.
  182.  
  183.        -j[rev]
  184.               just checkin and do not initialize; report an error
  185.               if the RCS file does not already exist.
  186.  
  187.        -I[rev]
  188.               interactive mode; the user is  prompted  and  ques-
  189.               tioned  even  if the standard input is not a termi-
  190.               nal.
  191.  
  192.  
  193.  
  194.  
  195.  
  196. GNU                         1995/06/16                          3
  197.  
  198.  
  199.  
  200.  
  201.  
  202. CI(1)                                                       CI(1)
  203.  
  204.  
  205.        -d[date]
  206.               uses date for the checkin date and time.  The  date
  207.               is  specified in free format as explained in co(1).
  208.               This is useful for lying about  the  checkin  date,
  209.               and  for  -k  if  no date is available.  If date is
  210.               empty, the working file's time of last modification
  211.               is used.
  212.  
  213.        -M[rev]
  214.               Set  the  modification time on any new working file
  215.               to be the date  of  the  retrieved  revision.   For
  216.               example, ci -d -M -u f does not alter f's modifica-
  217.               tion time, even if f's contents change due to  key-
  218.               word  substitution.   Use this option with care; it
  219.               can confuse make(1).
  220.  
  221.        -mmsg  uses the string msg as  the  log  message  for  all
  222.               revisions  checked in.  By convention, log messages
  223.               that start with # are comments and are  ignored  by
  224.               programs  like  GNU  Emacs's vc package.  Also, log
  225.               messages that start with {clumpname}  (followed  by
  226.               white  space)  are  meant to be clumped together if
  227.               possible, even if they are associated with  differ-
  228.               ent  files;  the {clumpname} label is used only for
  229.               clumping, and is not considered to be part  of  the
  230.               log message itself.
  231.  
  232.        -nname assigns the symbolic name name to the number of the
  233.               checked-in revision.  ci prints an error message if
  234.               name is already assigned to another number.
  235.  
  236.        -Nname same  as  -n,  except  that it overrides a previous
  237.               assignment of name.
  238.  
  239.        -sstate
  240.               sets the state of the checked-in  revision  to  the
  241.               identifier state.  The default state is Exp.
  242.  
  243.        -tfile writes  descriptive  text  from the contents of the
  244.               named file into the RCS file, deleting the existing
  245.               text.  The file cannot begin with -.
  246.  
  247.        -t-string
  248.               Write descriptive text from the string into the RCS
  249.               file, deleting the existing text.
  250.  
  251.               The -t option, in both its forms, has  effect  only
  252.               during  an  initial checkin; it is silently ignored
  253.               otherwise.
  254.  
  255.               During the initial checkin, if -t is not given,  ci
  256.               obtains the text from standard input, terminated by
  257.               end-of-file or by a line  containing  . by  itself.
  258.               The user is prompted for the text if interaction is
  259.  
  260.  
  261.  
  262. GNU                         1995/06/16                          4
  263.  
  264.  
  265.  
  266.  
  267.  
  268. CI(1)                                                       CI(1)
  269.  
  270.  
  271.               possible; see -I.
  272.  
  273.               For backward compatibility with older  versions  of
  274.               RCS, a bare -t option is ignored.
  275.  
  276.        -T     Set  the  RCS  file's  modification time to the new
  277.               revision's time if the former precedes  the  latter
  278.               and  there  is  a  new  revision;  preserve the RCS
  279.               file's modification time otherwise.   If  you  have
  280.               locked  a  revision,  ci  usually  updates  the RCS
  281.               file's  modification  time  to  the  current  time,
  282.               because  the  lock  is  stored  in the RCS file and
  283.               removing the lock requires changing the  RCS  file.
  284.               This  can create an RCS file newer than the working
  285.               file in one of two ways: first, ci -M can create  a
  286.               working  file  with a date before the current time;
  287.               second, when reverting to the previous revision the
  288.               RCS  file can change while the working file remains
  289.               unchanged.  These two  cases  can  cause  excessive
  290.               recompilation caused by a make(1) dependency of the
  291.               working file  on  the  RCS  file.   The  -T  option
  292.               inhibits  this recompilation by lying about the RCS
  293.               file's date.  Use this option  with  care;  it  can
  294.               suppress  recompilation  even when a checkin of one
  295.               working file should  affect  another  working  file
  296.               associated  with  the  same RCS file.  For example,
  297.               suppose the RCS file's time is 01:00, the (changed)
  298.               working  file's  time  is 02:00, some other copy of
  299.               the working file has a time of 03:00, and the  cur-
  300.               rent  time  is  04:00.   Then ci -d -T sets the RCS
  301.               file's time to 02:00 instead of  the  usual  04:00;
  302.               this causes make(1) to think (incorrectly) that the
  303.               other copy is newer than the RCS file.
  304.  
  305.        -wlogin
  306.               uses login for the author field  of  the  deposited
  307.               revision.   Useful  for lying about the author, and
  308.               for -k if no author is available.
  309.  
  310.        -V     Print RCS's version number.
  311.  
  312.        -Vn    Emulate RCS version n.  See co(1) for details.
  313.  
  314.        -xsuffixes
  315.               specifies the suffixes for RCS files.   A  nonempty
  316.               suffix  matches  any pathname ending in the suffix.
  317.               An empty suffix matches any pathname  of  the  form
  318.               RCS/path  or  path1/RCS/path2.   The  -x option can
  319.               specify a list of suffixes  separated  by  /.   For
  320.               example,  -x,v/  specifies two suffixes: ,v and the
  321.               empty suffix.  If two or more suffixes  are  speci-
  322.               fied,  they  are tried in order when looking for an
  323.               RCS file; the first one that works is used for that
  324.               file.   If no RCS file is found but an RCS file can
  325.  
  326.  
  327.  
  328. GNU                         1995/06/16                          5
  329.  
  330.  
  331.  
  332.  
  333.  
  334. CI(1)                                                       CI(1)
  335.  
  336.  
  337.               be created, the suffixes  are  tried  in  order  to
  338.               determine the new RCS file's name.  The default for
  339.               suffixes is installation-dependent; normally it  is
  340.               ,v/ for hosts like Unix that permit commas in file-
  341.               names, and is empty (i.e. just  the  empty  suffix)
  342.               for other hosts.
  343.  
  344.        -zzone specifies the date output format in keyword substi-
  345.               tution, and specifies the  default  time  zone  for
  346.               date  in  the  -ddate  option.   The zone should be
  347.               empty, a numeric UTC offset, or the special  string
  348.               LT  for  local time.  The default is an empty zone,
  349.               which uses the traditional RCS format of UTC  with-
  350.               out any time zone indication and with slashes sepa-
  351.               rating the parts of the date; otherwise, times  are
  352.               output  in  ISO  8601 format with time zone indica-
  353.               tion.  For example, if local time  is  January  11,
  354.               1990,  8pm  Pacific Standard Time, eight hours west
  355.               of UTC, then the time is output as follows:
  356.  
  357.                      option    time output
  358.                      -z        1990/01/12 04:00:00        (default)
  359.                      -zLT      1990-01-11 20:00:00-08
  360.                      -z+05:30  1990-01-12 09:30:00+05:30
  361.  
  362.               The -z option does not affect dates stored  in  RCS
  363.               files, which are always UTC.
  364.  
  365. FILE NAMING
  366.        Pairs  of  RCS files and working files can be specified in
  367.        three ways (see also the example section).
  368.  
  369.        1) Both the RCS file and the working file are given.   The
  370.        RCS  pathname is of the form path1/workfileX and the work-
  371.        ing pathname is of the form  path2/workfile  where  path1/
  372.        and  path2/ are (possibly different or empty) paths, work-
  373.        file is a filename, and X is  an  RCS  suffix.   If  X  is
  374.        empty,  path1/ must start with RCS/ or must contain /RCS/.
  375.  
  376.        2) Only the RCS file is given.  Then the working  file  is
  377.        created  in  the current directory and its name is derived
  378.        from the name of the RCS file by removing path1/  and  the
  379.        suffix X.
  380.  
  381.        3) Only the working file is given.  Then ci considers each
  382.        RCS suffix X in turn, looking for an RCS file of the  form
  383.        path2/RCS/workfileX  or  (if the former is not found and X
  384.        is nonempty) path2/workfileX.
  385.  
  386.        If the RCS file is specified without a path in 1) and  2),
  387.        ci looks for the RCS file first in the directory ./RCS and
  388.        then in the current directory.
  389.  
  390.        ci reports an error if an attempt  to  open  an  RCS  file
  391.  
  392.  
  393.  
  394. GNU                         1995/06/16                          6
  395.  
  396.  
  397.  
  398.  
  399.  
  400. CI(1)                                                       CI(1)
  401.  
  402.  
  403.        fails  for an unusual reason, even if the RCS file's path-
  404.        name is just one of several possibilities.   For  example,
  405.        to suppress use of RCS commands in a directory d, create a
  406.        regular file named d/RCS so that casual  attempts  to  use
  407.        RCS commands in d fail because d/RCS is not a directory.
  408.  
  409. EXAMPLES
  410.        Suppose ,v is an RCS suffix and the current directory con-
  411.        tains a subdirectory RCS with an RCS  file  io.c,v.   Then
  412.        each  of  the  following  commands check in a copy of io.c
  413.        into RCS/io.c,v as the latest revision, removing io.c.
  414.  
  415.               ci  io.c;    ci  RCS/io.c,v;   ci  io.c,v;
  416.               ci  io.c  RCS/io.c,v;    ci  io.c  io.c,v;
  417.               ci  RCS/io.c,v  io.c;    ci  io.c,v  io.c;
  418.  
  419.        Suppose instead that the empty suffix is an RCS suffix and
  420.        the  current directory contains a subdirectory RCS with an
  421.        RCS file io.c.  The each of the following commands  checks
  422.        in a new revision.
  423.  
  424.               ci  io.c;    ci  RCS/io.c;
  425.               ci  io.c  RCS/io.c;
  426.               ci  RCS/io.c  io.c;
  427.  
  428. FILE MODES
  429.        An  RCS  file  created by ci inherits the read and execute
  430.        permissions from the working file.  If the RCS file exists
  431.        already,  ci  preserves  its read and execute permissions.
  432.        ci always turns off all write permissions of RCS files.
  433.  
  434. FILES
  435.        Temporary files are created in  the  directory  containing
  436.        the working file, and also in the temporary directory (see
  437.        TMPDIR under ENVIRONMENT).  A semaphore file or files  are
  438.        created  in the directory containing the RCS file.  With a
  439.        nonempty suffix, the semaphore names begin with the  first
  440.        character of the suffix; therefore, do not specify an suf-
  441.        fix whose first character could be that of a working file-
  442.        name.   With an empty suffix, the semaphore names end with
  443.        _ so working filenames should not end in _.
  444.  
  445.        ci never changes an RCS or  working  file.   Normally,  ci
  446.        unlinks  the  file  and  creates a new one; but instead of
  447.        breaking a chain of one or more symbolic links to  an  RCS
  448.        file, it unlinks the destination file instead.  Therefore,
  449.        ci breaks any hard or symbolic links to any  working  file
  450.        it  changes;  and hard links to RCS files are ineffective,
  451.        but symbolic links to RCS files are preserved.
  452.  
  453.        The effective user must be able to search  and  write  the
  454.        directory  containing  the  RCS  file.  Normally, the real
  455.        user must be able to read the RCS and working files and to
  456.        search  and  write  the  directory  containing the working
  457.  
  458.  
  459.  
  460. GNU                         1995/06/16                          7
  461.  
  462.  
  463.  
  464.  
  465.  
  466. CI(1)                                                       CI(1)
  467.  
  468.  
  469.        file; however,  some  older  hosts  cannot  easily  switch
  470.        between  real  and  effective users, so on these hosts the
  471.        effective user is used for all  accesses.   The  effective
  472.        user is the same as the real user unless your copies of ci
  473.        and co have setuid privileges.  As described in  the  next
  474.        section,  these  privileges  yield  extra  security if the
  475.        effective user owns all RCS files and directories, and  if
  476.        only the effective user can write RCS directories.
  477.  
  478.        Users  can control access to RCS files by setting the per-
  479.        missions of the directory containing the files; only users
  480.        with write access to the directory can use RCS commands to
  481.        change its RCS files.  For example, in hosts that allow  a
  482.        user  to  belong to several groups, one can make a group's
  483.        RCS  directories  writable  to  that  group  only.    This
  484.        approach suffices for informal projects, but it means that
  485.        any group member can arbitrarily change  the  group's  RCS
  486.        files, and can even remove them entirely.  Hence more for-
  487.        mal projects sometimes distinguish between an RCS adminis-
  488.        trator,  who  can  change the RCS files at will, and other
  489.        project members, who can check in new revisions but cannot
  490.        otherwise change the RCS files.
  491.  
  492. SETUID USE
  493.        To prevent anybody but their RCS administrator from delet-
  494.        ing revisions, a set of users can employ setuid privileges
  495.        as follows.
  496.  
  497.        o Check  that the host supports RCS setuid use.  Consult a
  498.          trustworthy expert if there are any doubts.  It is  best
  499.          if  the  seteuid system call works as described in Posix
  500.          1003.1a Draft 5, because RCS can switch back  and  forth
  501.          easily  between  real  and  effective users, even if the
  502.          real user is root.  If not, the second best  is  if  the
  503.          setuid   system   call   supports   saved   setuid  (the
  504.          {_POSIX_SAVED_IDS} behavior of Posix 1003.1-1990);  this
  505.          fails  only  if  the real or effective user is root.  If
  506.          RCS detects any failure in setuid, it quits immediately.
  507.  
  508.        o Choose  a  user  A to serve as RCS administrator for the
  509.          set of users.  Only A can invoke the rcs command on  the
  510.          users'  RCS  files.   A  should not be root or any other
  511.          user with special powers.  Mutually suspicious  sets  of
  512.          users should use different administrators.
  513.  
  514.        o Choose  a  pathname  B  to be a directory of files to be
  515.          executed by the users.
  516.  
  517.        o Have A set up B to contain copies of ci and co that  are
  518.          setuid  to A by copying the commands from their standard
  519.          installation directory D as follows:
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526. GNU                         1995/06/16                          8
  527.  
  528.  
  529.  
  530.  
  531.  
  532. CI(1)                                                       CI(1)
  533.  
  534.  
  535.               mkdir  B
  536.               cp  D/c[io]  B
  537.               chmod  go-w,u+s  B/c[io]
  538.  
  539.        o Have each user prepend B to their path as follows:
  540.  
  541.               PATH=B:$PATH;  export  PATH  # ordinary shell
  542.               set  path=(B  $path)  # C shell
  543.  
  544.        o Have A create each RCS directory  R  with  write  access
  545.          only to A as follows:
  546.  
  547.               mkdir  R
  548.               chmod  go-w  R
  549.  
  550.        o If  you  want  to  let  only  certain users read the RCS
  551.          files, put the users into a group G, and have A  further
  552.          protect the RCS directory as follows:
  553.  
  554.               chgrp  G  R
  555.               chmod  g-w,o-rwx  R
  556.  
  557.        o Have  A  copy  old  RCS files (if any) into R, to ensure
  558.          that A owns them.
  559.  
  560.        o An RCS file's access list limits who can  check  in  and
  561.          lock revisions.  The default access list is empty, which
  562.          grants checkin access to anyone who  can  read  the  RCS
  563.          file.   If  you want limit checkin access, have A invoke
  564.          rcs -a  on  the  file;  see  rcs(1).    In   particular,
  565.          rcs -e -aA limits access to just A.
  566.  
  567.        o Have  A  initialize any new RCS files with rcs -i before
  568.          initial checkin, adding the -a option  if  you  want  to
  569.          limit checkin access.
  570.  
  571.        o Give  setuid privileges only to ci, co, and rcsclean; do
  572.          not give them to rcs or to any other command.
  573.  
  574.        o Do not use other setuid commands to invoke RCS commands;
  575.          setuid is trickier than you think!
  576.  
  577. ENVIRONMENT
  578.        RCSINIT
  579.               options  prepended  to the argument list, separated
  580.               by spaces.  A backslash escapes  spaces  within  an
  581.               option.   The  RCSINIT options are prepended to the
  582.               argument  lists  of  most  RCS  commands.    Useful
  583.               RCSINIT options include -q, -V, -x, and -z.
  584.  
  585.        TMPDIR Name  of  the temporary directory.  If not set, the
  586.               environment variables TMP and  TEMP  are  inspected
  587.               instead and the first value found is taken; if none
  588.               of them are set, a host-dependent default is  used,
  589.  
  590.  
  591.  
  592. GNU                         1995/06/16                          9
  593.  
  594.  
  595.  
  596.  
  597.  
  598. CI(1)                                                       CI(1)
  599.  
  600.  
  601.               typically /tmp.
  602.  
  603. DIAGNOSTICS
  604.        For  each  revision,  ci  prints the RCS file, the working
  605.        file, and the number of both the deposited and the preced-
  606.        ing  revision.  The exit status is zero if and only if all
  607.        operations were successful.
  608.  
  609. IDENTIFICATION
  610.        Author: Walter F. Tichy.
  611.        Manual Page Revision: 5.17; Release Date: 1995/06/16.
  612.        Copyright (C) 1982, 1988, 1989 Walter F. Tichy.
  613.        Copyright (C) 1990, 1991,  1992,  1993,  1994,  1995  Paul
  614.        Eggert.
  615.  
  616. SEE ALSO
  617.        co(1),  emacs(1),  ident(1), make(1), rcs(1), rcsclean(1),
  618.        rcsdiff(1), rcsintro(1), rcsmerge(1), rlog(1),  setuid(2),
  619.        rcsfile(5)
  620.        Walter  F.  Tichy,  RCS--A  System  for  Version  Control,
  621.        Software--Practice  &  Experience  15,  7   (July   1985),
  622.        637-654.
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658. GNU                         1995/06/16                         10
  659.  
  660.  
  661.