home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 22 gnu / 22-gnu.zip / rcs567x.zip / doc / ci.man next >
Text File  |  1994-03-22  |  29KB  |  661 lines

  1.  
  2.  
  3.  
  4. CI(1)                                                       CI(1)
  5.  
  6.  
  7. NNAAMMEE
  8.        ci - check in RCS revisions
  9.  
  10. SSYYNNOOPPSSIISS
  11.        ccii [_o_p_t_i_o_n_s] _f_i_l_e ...
  12.  
  13. DDEESSCCRRIIPPTTIIOONN
  14.        ccii  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.  ccii deposits the contents of each working  file
  18.        into  the  corresponding RCS file.  If only a working file
  19.        is given, ccii 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 ccii 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 rrccss(1)).  A lock held by someone else can be
  31.        broken with the rrccss command.
  32.  
  33.        Unless the --ff option is given, ccii checks whether the revi-
  34.        sion  to  be deposited differs from the preceding one.  If
  35.        not, instead of creating a new revision ccii reverts to  the
  36.        preceding one.  To revert, ordinary ccii removes the working
  37.        file and any lock; ccii --ll keeps and ccii --uu removes any lock,
  38.        and  then they both generate a new working file much as if
  39.        ccoo --ll or ccoo --uu had been applied to the preceding revision.
  40.        When reverting, any --nn and --ss options apply to the preced-
  41.        ing revision.
  42.  
  43.        For each revision deposited, ccii 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 ccii asks whether
  47.        to reuse the previous log message.  If the standard  input
  48.        is  not  a terminal, ccii suppresses the prompt and uses the
  49.        same log message for all files.  See also --mm.
  50.  
  51.        If the RCS file does not exist, ccii creates it and deposits
  52.        the  contents  of the working file as the initial revision
  53.        (default number: 11..11).  The access list is initialized  to
  54.        empty.   Instead  of the log message, ccii requests descrip-
  55.        tive text (see --tt below).
  56.  
  57.        The number _r_e_v of the deposited revision can be  given  by
  58.        any  of the options --ff, --ii, --II, --jj, --kk, --ll, --MM, --qq, --rr, or
  59.        --uu.  _r_e_v can be symbolic,  numeric,  or  mixed.   Symbolic
  60.        names  in  _r_e_v  must already be defined; see the --nn and --NN
  61.  
  62.  
  63.  
  64. GNU                         1994/03/17                          1
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CI(1)                                                       CI(1)
  71.  
  72.  
  73.        options for assigning names during checkin.  If _r_e_v is  $$,
  74.        ccii  determines  the revision number from keyword values in
  75.        the working file.
  76.  
  77.        If _r_e_v begins with a period, then the default branch (nor-
  78.        mally  the  trunk) is prepended to it.  If _r_e_v is a branch
  79.        number followed by a period, then the latest  revision  on
  80.        that branch is used.
  81.  
  82.        If  _r_e_v  is  a revision number, it must be higher than the
  83.        latest one on the branch to which  _r_e_v  belongs,  or  must
  84.        start a new branch.
  85.  
  86.        If  _r_e_v 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 _r_e_v  indicates  a  non-existing  branch,  that
  90.        branch  is  created  with  the  initial  revision numbered
  91.        _r_e_v..11.
  92.  
  93.        If _r_e_v is omitted, ccii 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 11.
  102.  
  103.        If _r_e_v is omitted and the caller has no lock, but owns the
  104.        file  and  locking is not set to _s_t_r_i_c_t, then the revision
  105.        is appended to the default branch (normally the trunk; see
  106.        the --bb option of rrccss(1)).
  107.  
  108.        Exception:  On the trunk, revisions can be appended to the
  109.        end, but not inserted.
  110.  
  111. OOPPTTIIOONNSS
  112.        --rr_r_e_v  Check in revision _r_e_v.
  113.  
  114.        --rr     The bare --rr option (without any  revision)  has  an
  115.               unusual  meaning in ccii.  With other RCS commands, a
  116.               bare --rr option specifies the most  recent  revision
  117.               on  the  default  branch,  but  with  ccii, a bare --rr
  118.               option  reestablishes  the  default   behavior   of
  119.               releasing a lock and removing the working file, and
  120.               is used to override any default --ll  or  --uu  options
  121.               established by shell aliases or scripts.
  122.  
  123.        --ll[_r_e_v]
  124.               works  like  --rr,  except  it performs an additional
  125.               ccoo --ll  for  the  deposited  revision.   Thus,   the
  126.               deposited revision is immediately checked out again
  127.  
  128.  
  129.  
  130. GNU                         1994/03/17                          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.        --uu[_r_e_v]
  144.               works like --ll, except that the  deposited  revision
  145.               is not locked.  This lets one read the working file
  146.               immediately after checkin.
  147.  
  148.               The --ll, bare --rr, and --uu options are mutually exclu-
  149.               sive  and  silently override each other.  For exam-
  150.               ple, ccii --uu --rr is equivalent to ccii --rr  because  bare
  151.               --rr overrides --uu.
  152.  
  153.        --ff[_r_e_v]
  154.               forces  a  deposit;  the  new revision is deposited
  155.               even it is not different from the preceding one.
  156.  
  157.        --kk[_r_e_v]
  158.               searches the working file  for  keyword  values  to
  159.               determine   its  revision  number,  creation  date,
  160.               state, and author (see ccoo(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  --kk
  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 --dd, --mm, --ss, --ww, and any
  171.               option that carries a revision number.
  172.  
  173.        --qq[_r_e_v]
  174.               quiet  mode;  diagnostic  output is not printed.  A
  175.               revision that is not different from  the  preceding
  176.               one is not deposited, unless --ff is given.
  177.  
  178.        --ii[_r_e_v]
  179.               initial  checkin;  report  an error if the RCS file
  180.               already exists.  This  avoids  race  conditions  in
  181.               certain applications.
  182.  
  183.        --jj[_r_e_v]
  184.               just checkin and do not initialize; report an error
  185.               if the RCS file does not already exist.
  186.  
  187.        --II[_r_e_v]
  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                         1994/03/17                          3
  197.  
  198.  
  199.  
  200.  
  201.  
  202. CI(1)                                                       CI(1)
  203.  
  204.  
  205.        --dd[_d_a_t_e]
  206.               uses _d_a_t_e for the checkin date and time.  The  _d_a_t_e
  207.               is  specified in free format as explained in ccoo(1).
  208.               This is useful for lying about  the  checkin  date,
  209.               and  for  --kk  if  no date is available.  If _d_a_t_e is
  210.               empty, the working file's time of last modification
  211.               is used.
  212.  
  213.        --MM[_r_e_v]
  214.               Set  the  modification time on any new working file
  215.               to be the date  of  the  retrieved  revision.   For
  216.               example, ccii --dd --MM --uu _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 mmaakkee(1).
  220.  
  221.        --mm_m_s_g  uses the string _m_s_g 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 vvcc package.  Also, log
  225.               messages that start with {{_c_l_u_m_p_n_a_m_e}}  (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 {{_c_l_u_m_p_n_a_m_e}} label is used only for
  229.               clumping, and is not considered to be part  of  the
  230.               log message itself.
  231.  
  232.        --nn_n_a_m_e assigns the symbolic name _n_a_m_e to the number of the
  233.               checked-in revision.  ccii prints an error message if
  234.               _n_a_m_e is already assigned to another number.
  235.  
  236.        --NN_n_a_m_e same  as  --nn,  except  that it overrides a previous
  237.               assignment of _n_a_m_e.
  238.  
  239.        --ss_s_t_a_t_e
  240.               sets the state of the checked-in  revision  to  the
  241.               identifier _s_t_a_t_e.  The default state is EExxpp.
  242.  
  243.        --tt_f_i_l_e writes  descriptive  text  from the contents of the
  244.               named _f_i_l_e into the RCS file, deleting the existing
  245.               text.  The _f_i_l_e cannot begin with --.
  246.  
  247.        --tt--_s_t_r_i_n_g
  248.               Write descriptive text from the _s_t_r_i_n_g into the RCS
  249.               file, deleting the existing text.
  250.  
  251.               The --tt 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 --tt is not given,  ccii
  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                         1994/03/17                          4
  263.  
  264.  
  265.  
  266.  
  267.  
  268. CI(1)                                                       CI(1)
  269.  
  270.  
  271.               possible; see --II.
  272.  
  273.               For backward compatibility with older  versions  of
  274.               RCS, a bare --tt option is ignored.
  275.  
  276.        --TT     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,  ccii  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, ccii --MM 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 mmaakkee(1) dependency of the
  291.               working file  on  the  RCS  file.   The  --TT  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 ccii --dd --TT sets the RCS
  301.               file's time to 02:00 instead of  the  usual  04:00;
  302.               this causes mmaakkee(1) to think (incorrectly) that the
  303.               other copy is newer than the RCS file.
  304.  
  305.        --ww_l_o_g_i_n
  306.               uses _l_o_g_i_n for the author field  of  the  deposited
  307.               revision.   Useful  for lying about the author, and
  308.               for --kk if no author is available.
  309.  
  310.        --VV     Print RCS's version number.
  311.  
  312.        --VV_n    Emulate RCS version _n.  See ccoo(1) for details.
  313.  
  314.        --xx_s_u_f_f_i_x_e_s
  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.               RRCCSS//_p_a_t_h  or  _p_a_t_h_1//RRCCSS//_p_a_t_h_2_.   The  --xx option can
  319.               specify a list of suffixes  separated  by  //.   For
  320.               example,  --xx,,vv//  specifies two suffixes: ,,vv 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                         1994/03/17                          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.               _s_u_f_f_i_x_e_s is installation-dependent; normally it  is
  340.               ,,vv// 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.        --zz_z_o_n_e specifies the date output format in keyword substi-
  345.               tution, and specifies the  default  time  zone  for
  346.               _d_a_t_e  in  the  --dd_d_a_t_e  option.   The _z_o_n_e should be
  347.               empty, a numeric UTC offset, or the special  string
  348.               LLTT  for  local time.  The default is an empty _z_o_n_e,
  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  11999900//0011//1111
  356.               0044::0000::0000  with --zz, as 11999900--0011--1111 2200::0000::0000--00880000 with
  357.               --zzLLTT, and as 11999900--0011--1111 0099::3300::0000++00553300 with --zz++00553300.
  358.               This option does not affect dates in RCS file them-
  359.               selves, which are always UTC.
  360.  
  361. FFIILLEE NNAAMMIINNGG
  362.        Pairs of RCS files and working files can be  specified  in
  363.        three ways (see also the example section).
  364.  
  365.        1)  Both the RCS file and the working file are given.  The
  366.        RCS pathname is of the form _p_a_t_h_1//_w_o_r_k_f_i_l_e_X and the  work-
  367.        ing  pathname  is  of the form _p_a_t_h_2//_w_o_r_k_f_i_l_e where _p_a_t_h_1//
  368.        and _p_a_t_h_2// are (possibly different or empty) paths,  _w_o_r_k_-
  369.        _f_i_l_e  is  a  filename,  and  _X  is an RCS suffix.  If _X is
  370.        empty, _p_a_t_h_1// must start with RRCCSS// or must contain  //RRCCSS//.
  371.  
  372.        2)  Only  the RCS file is given.  Then the working file is
  373.        created in the current directory and its name  is  derived
  374.        from  the  name of the RCS file by removing _p_a_t_h_1// and the
  375.        suffix _X.
  376.  
  377.        3) Only the working file is given.  Then ccii considers each
  378.        RCS  suffix _X in turn, looking for an RCS file of the form
  379.        _p_a_t_h_2//RRCCSS//_w_o_r_k_f_i_l_e_X or (if the former is not found  and  _X
  380.        is nonempty) _p_a_t_h_2//_w_o_r_k_f_i_l_e_X_.
  381.  
  382.        If  the RCS file is specified without a path in 1) and 2),
  383.        ccii looks for the RCS file first in the directory ..//RRCCSS and
  384.        then in the current directory.
  385.  
  386.        ccii  reports  an  error  if  an attempt to open an RCS file
  387.        fails for an unusual reason, even if the RCS file's  path-
  388.        name  is  just one of several possibilities.  For example,
  389.        to suppress use of RCS commands in a directory _d, create a
  390.        regular  file  named  _d//RRCCSS so that casual attempts to use
  391.  
  392.  
  393.  
  394. GNU                         1994/03/17                          6
  395.  
  396.  
  397.  
  398.  
  399.  
  400. CI(1)                                                       CI(1)
  401.  
  402.  
  403.        RCS commands in _d fail because _d//RRCCSS is not a directory.
  404.  
  405. EEXXAAMMPPLLEESS
  406.        Suppose ,,vv is an RCS suffix and the current directory con-
  407.        tains  a  subdirectory  RRCCSS with an RCS file iioo..cc,,vv.  Then
  408.        each of the following commands check in  a  copy  of  iioo..cc
  409.        into RRCCSS//iioo..cc,,vv as the latest revision, removing iioo..cc.
  410.  
  411.               ccii  iioo..cc;;    ccii  RRCCSS//iioo..cc,,vv;;   ccii  iioo..cc,,vv;;
  412.               ccii  iioo..cc  RRCCSS//iioo..cc,,vv;;    ccii  iioo..cc  iioo..cc,,vv;;
  413.               ccii  RRCCSS//iioo..cc,,vv  iioo..cc;;    ccii  iioo..cc,,vv  iioo..cc;;
  414.  
  415.        Suppose instead that the empty suffix is an RCS suffix and
  416.        the current directory contains a subdirectory RRCCSS with  an
  417.        RCS  file iioo..cc.  The each of the following commands checks
  418.        in a new revision.
  419.  
  420.               ccii  iioo..cc;;    ccii  RRCCSS//iioo..cc;;
  421.               ccii  iioo..cc  RRCCSS//iioo..cc;;
  422.               ccii  RRCCSS//iioo..cc  iioo..cc;;
  423.  
  424. FFIILLEE MMOODDEESS
  425.        An RCS file created by ccii inherits the  read  and  execute
  426.        permissions from the working file.  If the RCS file exists
  427.        already, ccii preserves its read  and  execute  permissions.
  428.        ccii always turns off all write permissions of RCS files.
  429.  
  430. FFIILLEESS
  431.        Temporary  files  are  created in the directory containing
  432.        the working file, and also in the temporary directory (see
  433.        TTMMPPDDIIRR  under EENNVVIIRROONNMMEENNTT).  A semaphore file or files are
  434.        created in the directory containing the RCS file.  With  a
  435.        nonempty  suffix, the semaphore names begin with the first
  436.        character of the suffix; therefore, do not specify an suf-
  437.        fix whose first character could be that of a working file-
  438.        name.  With an empty suffix, the semaphore names end  with
  439.        __ so working filenames should not end in __.
  440.  
  441.        ccii  never  changes  an  RCS or working file.  Normally, ccii
  442.        unlinks the file and creates a new  one;  but  instead  of
  443.        breaking  a  chain of one or more symbolic links to an RCS
  444.        file, it unlinks the destination file instead.  Therefore,
  445.        ccii  breaks  any hard or symbolic links to any working file
  446.        it changes; and hard links to RCS files  are  ineffective,
  447.        but symbolic links to RCS files are preserved.
  448.  
  449.        The  effective  user  must be able to search and write the
  450.        directory containing the RCS  file.   Normally,  the  real
  451.        user must be able to read the RCS and working files and to
  452.        search and write  the  directory  containing  the  working
  453.        file;  however,  some  older  hosts  cannot  easily switch
  454.        between real and effective users, so on  these  hosts  the
  455.        effective  user  is  used for all accesses.  The effective
  456.        user is the same as the real user unless your copies of ccii
  457.  
  458.  
  459.  
  460. GNU                         1994/03/17                          7
  461.  
  462.  
  463.  
  464.  
  465.  
  466. CI(1)                                                       CI(1)
  467.  
  468.  
  469.        and  ccoo  have setuid privileges.  As described in the next
  470.        section, these privileges  yield  extra  security  if  the
  471.        effective  user owns all RCS files and directories, and if
  472.        only the effective user can write RCS directories.
  473.  
  474.        Users can control access to RCS files by setting the  per-
  475.        missions of the directory containing the files; only users
  476.        with write access to the directory can use RCS commands to
  477.        change  its RCS files.  For example, in hosts that allow a
  478.        user to belong to several groups, one can make  a  group's
  479.        RCS   directories  writable  to  that  group  only.   This
  480.        approach suffices for informal projects, but it means that
  481.        any  group  member  can arbitrarily change the group's RCS
  482.        files, and can even remove them entirely.  Hence more for-
  483.        mal projects sometimes distinguish between an RCS adminis-
  484.        trator, who can change the RCS files at  will,  and  other
  485.        project members, who can check in new revisions but cannot
  486.        otherwise change the RCS files.
  487.  
  488. SSEETTUUIIDD UUSSEE
  489.        To prevent anybody but their RCS administrator from delet-
  490.        ing revisions, a set of users can employ setuid privileges
  491.        as follows.
  492.  
  493.        +o Check that the host supports RCS setuid use.  Consult  a
  494.          trustworthy  expert if there are any doubts.  It is best
  495.          if the sseetteeuuiidd system call works as described  in  Posix
  496.          1003.1a  Draft  5, because RCS can switch back and forth
  497.          easily between real and effective  users,  even  if  the
  498.          real  user  is  rroooott.  If not, the second best is if the
  499.          sseettuuiidd  system   call   supports   saved   setuid   (the
  500.          {_POSIX_SAVED_IDS}  behavior of Posix 1003.1-1990); this
  501.          fails only if the real or effective user  is  rroooott.   If
  502.          RCS detects any failure in setuid, it quits immediately.
  503.  
  504.        +o Choose a user _A to serve as RCS  administrator  for  the
  505.          set  of users.  Only _A can invoke the rrccss command on the
  506.          users' RCS files.  _A should not be  rroooott  or  any  other
  507.          user  with  special powers.  Mutually suspicious sets of
  508.          users should use different administrators.
  509.  
  510.        +o Choose a pathname _B to be a directory  of  files  to  be
  511.          executed by the users.
  512.  
  513.        +o Have  _A set up _B to contain copies of ccii and ccoo that are
  514.          setuid to _A by copying the commands from their  standard
  515.          installation directory _D as follows:
  516.  
  517.               mmkkddiirr  _B
  518.               ccpp  _D//cc[[iioo]]  _B
  519.               cchhmmoodd  ggoo--ww,,uu++ss  _B//cc[[iioo]]
  520.  
  521.        +o Have each user prepend _B to their path as follows:
  522.  
  523.  
  524.  
  525.  
  526. GNU                         1994/03/17                          8
  527.  
  528.  
  529.  
  530.  
  531.  
  532. CI(1)                                                       CI(1)
  533.  
  534.  
  535.               PPAATTHH==_B::$$PPAATTHH;;  eexxppoorrtt  PPAATTHH  # ordinary shell
  536.               sseett  ppaatthh==((_B  $$ppaatthh))  # C shell
  537.  
  538.        +o Have  _A  create  each  RCS directory _R with write access
  539.          only to _A as follows:
  540.  
  541.               mmkkddiirr  _R
  542.               cchhmmoodd  ggoo--ww  _R
  543.  
  544.        +o If you want to let  only  certain  users  read  the  RCS
  545.          files,  put the users into a group _G, and have _A further
  546.          protect the RCS directory as follows:
  547.  
  548.               cchhggrrpp  _G  _R
  549.               cchhmmoodd  gg--ww,,oo--rrwwxx  _R
  550.  
  551.        +o Have _A copy old RCS files (if any)  into  _R,  to  ensure
  552.          that _A owns them.
  553.  
  554.        +o An  RCS  file's  access list limits who can check in and
  555.          lock revisions.  The default access list is empty, which
  556.          grants  checkin  access  to  anyone who can read the RCS
  557.          file.  If you want limit checkin access, have  _A  invoke
  558.          rrccss --aa   on   the  file;  see  rrccss(1).   In  particular,
  559.          rrccss --ee --aa_A limits access to just _A.
  560.  
  561.        +o Have _A initialize any new RCS files with  rrccss --ii  before
  562.          initial  checkin,  adding  the  --aa option if you want to
  563.          limit checkin access.
  564.  
  565.        +o Give setuid privileges only to ccii, ccoo, and rrccsscclleeaann;  do
  566.          not give them to rrccss or to any other command.
  567.  
  568.        +o Do not use other setuid commands to invoke RCS commands;
  569.          setuid is trickier than you think!
  570.  
  571. EENNVVIIRROONNMMEENNTT
  572.        RRCCSSIINNIITT
  573.               options prepended to the argument  list,  separated
  574.               by  spaces.   A  backslash escapes spaces within an
  575.               option.  The RRCCSSIINNIITT options are prepended  to  the
  576.               argument   lists  of  most  RCS  commands.   Useful
  577.               RRCCSSIINNIITT options include --qq, --VV, --xx, and --zz.
  578.  
  579.        TTMMPPDDIIRR Name of the temporary directory.  If not  set,  the
  580.               environment  variables  TTMMPP  and TTEEMMPP are inspected
  581.               instead and the first value found is taken; if none
  582.               of  them are set, a host-dependent default is used,
  583.               typically //ttmmpp.
  584.  
  585. DDIIAAGGNNOOSSTTIICCSS
  586.        For each revision, ccii prints the  RCS  file,  the  working
  587.        file, and the number of both the deposited and the preced-
  588.        ing revision.  The exit status is zero if and only if  all
  589.  
  590.  
  591.  
  592. GNU                         1994/03/17                          9
  593.  
  594.  
  595.  
  596.  
  597.  
  598. CI(1)                                                       CI(1)
  599.  
  600.  
  601.        operations were successful.
  602.  
  603. IIDDEENNTTIIFFIICCAATTIIOONN
  604.        Author: Walter F. Tichy.
  605.        Manual Page Revision: 5.15; Release Date: 1994/03/17.
  606.        Copyright (C) 1982, 1988, 1989 Walter F. Tichy.
  607.        Copyright (C) 1990, 1991, 1992, 1993, 1994 Paul Eggert.
  608.  
  609. SSEEEE AALLSSOO
  610.        co(1),  emacs(1),  ident(1), make(1), rcs(1), rcsclean(1),
  611.        rcsdiff(1), rcsintro(1), rcsmerge(1), rlog(1),  setuid(2),
  612.        rcsfile(5)
  613.        Walter  F.  Tichy,  RCS--A  System  for  Version  Control,
  614.        _S_o_f_t_w_a_r_e_-_-_P_r_a_c_t_i_c_e  _&  _E_x_p_e_r_i_e_n_c_e  1155,  7   (July   1985),
  615.        637-654.
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  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                         1994/03/17                         10
  659.  
  660.  
  661.