





_F_u_n_c_t_i_o_n_s _o_f _R_C_S (_R_e_v_i_s_i_o_n _C_o_n_t_r_o_l _S_y_s_t_e_m)

     RCS manages software libraries.  It  greatly  increases
programmer  productivity  by  providing  the following func-
tions.

1.   RCS stores and retrieves multiple revisions of  program
     and  other  text.   Thus,  one can maintain one or more
     releases while developing  the  next  release,  with  a
     minimum  of  space  overhead. Changes no longer destroy
     the original -- previous revisions remain accessible.

     a.   Maintains each module as a tree of revisions.

     b.   Project  libraries  can  be  organized  centrally,
          decentralized, or any way you like.

     c.   RCS works for any type of text: programs, documen-
          tation,  memos,  papers,  graphics,  VLSI layouts,
          form letters, etc.

2.   RCS maintains a complete history of changes.  Thus, one
     can  find  out  what  happened  to  a module easily and
     quickly, without having to compare source  listings  or
     having to track down colleagues.

     a.   RCS performs automatic record keeping.

     b.   RCS logs all changes automatically.

     c.   RCS guarantees project continuity.

3.   RCS manages multiple lines of development.

4.   RCS can merge multiple  lines  of  development.   Thus,
     when several parallel lines of development must be con-
     solidated into one line,  the  merging  of  changes  is
     automatic.

5.   RCS flags coding conflicts.  If two or  more  lines  of
     development  modify  the  same section of code, RCS can
     alert programmers about overlapping changes.

6.   RCS resolves access conflicts.  When two or  more  pro-
     grammers  wish  to modify the same revision, RCS alerts
     the programmers and makes sure  that  one  modification
     won't wipe out the other one.

7.   RCS provides high-level retrieval functions.  Revisions
     can  be  retrieved  according  to  ranges  of  revision
     numbers, symbolic names, dates, authors, and states.

8.   RCS provides release and configuration control.   Revi-
     sions  can be marked as released, stable, experimental,



                      January 2, 1991





                           - 2 -


     etc.  Configurations of modules can be described simply
     and directly.

9.   RCS performs automatic identification of  modules  with
     name,  revision  number,  creation  time,  author, etc.
     Thus, it is always possible to  determine  which  revi-
     sions of which modules make up a given configuration.

10.  Provides high-level management visibility.  Thus, it is
     easy to track the status of a software project.

     a.   RCS provides a complete change history.

     b.   RCS records who did what when to which revision of
          which module.

11.  RCS is fully compatible with existing software develop-
     ment tools.  RCS is unobtrusive -- its interface to the
     file system is such that  all  your  existing  software
     tools can be used as before.

12.  RCS' basic user  interface  is  extremely  simple.  The
     novice  need  to  learn  only  two  commands.  Its more
     sophisticated features have been tuned towards advanced
     software  development  environments and the experienced
     software professional.

13.  RCS simplifies software distribution if customers main-
     tain  sources  with  RCS  also.  This technique assures
     proper identification of versions  and  configurations,
     and tracking of customer modifications. Customer modif-
     ications  can  be  merged  into  distributed   versions
     locally or by the development group.

14.  RCS needs little extra space for  the  revisions  (only
     the   differences).    If  intermediate  revisions  are
     deleted, the corresponding differences  are  compressed
     into the shortest possible form.

15.  RCS is implemented with reverse deltas. This means that
     the  latest revision, which is the one that is accessed
     most often, is stored intact.  All  others  are  regen-
     erated  from  the latest one by applying reverse deltas
     (backward differences). This  results  in  fast  access
     time for the revision needed most often.












                      January 2, 1991


