19Sjkh.SH 29SjkhFunctions of RCS (Revision Control System) 39Sjkh.PP 49SjkhRCS manages software libraries. It greatly increases programmer productivity 59Sjkhby providing the following functions. 69Sjkh.IP 1. 79SjkhRCS stores and retrieves multiple revisions of program and other text. 89SjkhThus, one can maintain one or more releases while developing the next 99Sjkhrelease, with a minimum of space overhead. Changes no longer destroy the 109Sjkhoriginal -- previous revisions remain accessible. 119Sjkh.RS 129Sjkh.IP a. 139SjkhMaintains each module as a tree of revisions. 149Sjkh.IP b. 159SjkhProject libraries can 169Sjkhbe organized centrally, decentralized, or any way you like. 179Sjkh.IP c. 189SjkhRCS works for any type of text: programs, documentation, memos, papers, 199Sjkhgraphics, VLSI layouts, form letters, etc. 209Sjkh.RE 219Sjkh.IP 2. 229SjkhRCS maintains a complete history of changes. 239SjkhThus, one can find out what happened to a module easily 249Sjkhand quickly, without having to compare source listings or 259Sjkhhaving to track down colleagues. 269Sjkh.RS 279Sjkh.IP a. 289SjkhRCS performs automatic record keeping. 299Sjkh.IP b. 309SjkhRCS logs all changes automatically. 319Sjkh.IP c. 329SjkhRCS guarantees project continuity. 339Sjkh.RE 349Sjkh.IP 3. 359SjkhRCS manages multiple lines of development. 369Sjkh.IP 4. 379SjkhRCS can merge multiple lines of development. 389SjkhThus, when several parallel lines of development must be consolidated 399Sjkhinto one line, the merging of changes is automatic. 409Sjkh.IP 5. 419SjkhRCS flags coding conflicts. 429SjkhIf two or more lines of development modify the same section of code, 439SjkhRCS can alert programmers about overlapping changes. 449Sjkh.IP 6. 459SjkhRCS resolves access conflicts. 469SjkhWhen two or more programmers wish to modify the same revision, 479SjkhRCS alerts the programmers and makes sure that one modification won't wipe 489Sjkhout the other one. 499Sjkh.IP 7. 509SjkhRCS provides high-level retrieval functions. 519SjkhRevisions can be retrieved according to ranges of revision numbers, 529Sjkhsymbolic names, dates, authors, and states. 539Sjkh.IP 8. 549SjkhRCS provides release and configuration control. 559SjkhRevisions can be marked as released, stable, experimental, etc. 569SjkhConfigurations of modules can be described simply and directly. 579Sjkh.IP 9. 589SjkhRCS performs automatic identification of modules with name, revision 599Sjkhnumber, creation time, author, etc. 609SjkhThus, it is always possible to determine which revisions of which 619Sjkhmodules make up a given configuration. 629Sjkh.IP 10. 639SjkhProvides high-level management visibility. 649SjkhThus, it is easy to track the status of a software project. 659Sjkh.RS 669Sjkh.IP a. 679SjkhRCS provides a complete change history. 689Sjkh.IP b. 699SjkhRCS records who did what when to which revision of which module. 709Sjkh.RE 719Sjkh.IP 11. 729SjkhRCS is fully compatible with existing software development tools. 739SjkhRCS is unobtrusive -- its interface to the file system is such that 749Sjkhall your existing software tools can be used as before. 759Sjkh.IP 12. 769SjkhRCS' basic user interface is extremely simple. The novice need to learn 779Sjkhonly two commands. Its more sophisticated features have been 789Sjkhtuned towards advanced software development environments and the 799Sjkhexperienced software professional. 809Sjkh.IP 13. 819SjkhRCS simplifies software distribution if customers 829Sjkhmaintain sources with RCS also. This technique assures proper 839Sjkhidentification of versions and configurations, and tracking of customer 849Sjkhmodifications. Customer modifications can be merged into distributed 859Sjkhversions locally or by the development group. 869Sjkh.IP 14. 879SjkhRCS needs little extra space for the revisions (only the differences). 889SjkhIf intermediate revisions are deleted, the corresponding 899Sjkhdifferences are compressed into the shortest possible form. 909Sjkh.IP 15. 919SjkhRCS is implemented with reverse deltas. This means that 929Sjkhthe latest revision, which is the one that is accessed most often, 939Sjkhis stored intact. All others are regenerated from the latest one 949Sjkhby applying reverse deltas (backward differences). This 959Sjkhresults in fast access time for the revision needed most often. 96