1*7bdc2678Schristos.SH 2*7bdc2678SchristosFunctions of RCS (Revision Control System) 3*7bdc2678Schristos.PP 4*7bdc2678SchristosRCS manages software libraries. It greatly increases programmer productivity 5*7bdc2678Schristosby providing the following functions. 6*7bdc2678Schristos.IP 1. 7*7bdc2678SchristosRCS stores and retrieves multiple revisions of program and other text. 8*7bdc2678SchristosThus, one can maintain one or more releases while developing the next 9*7bdc2678Schristosrelease, with a minimum of space overhead. Changes no longer destroy the 10*7bdc2678Schristosoriginal -- previous revisions remain accessible. 11*7bdc2678Schristos.RS 12*7bdc2678Schristos.IP a. 13*7bdc2678SchristosMaintains each module as a tree of revisions. 14*7bdc2678Schristos.IP b. 15*7bdc2678SchristosProject libraries can 16*7bdc2678Schristosbe organized centrally, decentralized, or any way you like. 17*7bdc2678Schristos.IP c. 18*7bdc2678SchristosRCS works for any type of text: programs, documentation, memos, papers, 19*7bdc2678Schristosgraphics, VLSI layouts, form letters, etc. 20*7bdc2678Schristos.RE 21*7bdc2678Schristos.IP 2. 22*7bdc2678SchristosRCS maintains a complete history of changes. 23*7bdc2678SchristosThus, one can find out what happened to a module easily 24*7bdc2678Schristosand quickly, without having to compare source listings or 25*7bdc2678Schristoshaving to track down colleagues. 26*7bdc2678Schristos.RS 27*7bdc2678Schristos.IP a. 28*7bdc2678SchristosRCS performs automatic record keeping. 29*7bdc2678Schristos.IP b. 30*7bdc2678SchristosRCS logs all changes automatically. 31*7bdc2678Schristos.IP c. 32*7bdc2678SchristosRCS guarantees project continuity. 33*7bdc2678Schristos.RE 34*7bdc2678Schristos.IP 3. 35*7bdc2678SchristosRCS manages multiple lines of development. 36*7bdc2678Schristos.IP 4. 37*7bdc2678SchristosRCS can merge multiple lines of development. 38*7bdc2678SchristosThus, when several parallel lines of development must be consolidated 39*7bdc2678Schristosinto one line, the merging of changes is automatic. 40*7bdc2678Schristos.IP 5. 41*7bdc2678SchristosRCS flags coding conflicts. 42*7bdc2678SchristosIf two or more lines of development modify the same section of code, 43*7bdc2678SchristosRCS can alert programmers about overlapping changes. 44*7bdc2678Schristos.IP 6. 45*7bdc2678SchristosRCS resolves access conflicts. 46*7bdc2678SchristosWhen two or more programmers wish to modify the same revision, 47*7bdc2678SchristosRCS alerts the programmers and makes sure that one modification won't wipe 48*7bdc2678Schristosout the other one. 49*7bdc2678Schristos.IP 7. 50*7bdc2678SchristosRCS provides high-level retrieval functions. 51*7bdc2678SchristosRevisions can be retrieved according to ranges of revision numbers, 52*7bdc2678Schristossymbolic names, dates, authors, and states. 53*7bdc2678Schristos.IP 8. 54*7bdc2678SchristosRCS provides release and configuration control. 55*7bdc2678SchristosRevisions can be marked as released, stable, experimental, etc. 56*7bdc2678SchristosConfigurations of modules can be described simply and directly. 57*7bdc2678Schristos.IP 9. 58*7bdc2678SchristosRCS performs automatic identification of modules with name, revision 59*7bdc2678Schristosnumber, creation time, author, etc. 60*7bdc2678SchristosThus, it is always possible to determine which revisions of which 61*7bdc2678Schristosmodules make up a given configuration. 62*7bdc2678Schristos.IP 10. 63*7bdc2678SchristosProvides high-level management visibility. 64*7bdc2678SchristosThus, it is easy to track the status of a software project. 65*7bdc2678Schristos.RS 66*7bdc2678Schristos.IP a. 67*7bdc2678SchristosRCS provides a complete change history. 68*7bdc2678Schristos.IP b. 69*7bdc2678SchristosRCS records who did what when to which revision of which module. 70*7bdc2678Schristos.RE 71*7bdc2678Schristos.IP 11. 72*7bdc2678SchristosRCS is fully compatible with existing software development tools. 73*7bdc2678SchristosRCS is unobtrusive -- its interface to the file system is such that 74*7bdc2678Schristosall your existing software tools can be used as before. 75*7bdc2678Schristos.IP 12. 76*7bdc2678SchristosRCS' basic user interface is extremely simple. The novice need to learn 77*7bdc2678Schristosonly two commands. Its more sophisticated features have been 78*7bdc2678Schristostuned towards advanced software development environments and the 79*7bdc2678Schristosexperienced software professional. 80*7bdc2678Schristos.IP 13. 81*7bdc2678SchristosRCS simplifies software distribution if customers 82*7bdc2678Schristosmaintain sources with RCS also. This technique assures proper 83*7bdc2678Schristosidentification of versions and configurations, and tracking of customer 84*7bdc2678Schristosmodifications. Customer modifications can be merged into distributed 85*7bdc2678Schristosversions locally or by the development group. 86*7bdc2678Schristos.IP 14. 87*7bdc2678SchristosRCS needs little extra space for the revisions (only the differences). 88*7bdc2678SchristosIf intermediate revisions are deleted, the corresponding 89*7bdc2678Schristosdifferences are compressed into the shortest possible form. 90*7bdc2678Schristos.IP 15. 91*7bdc2678SchristosRCS is implemented with reverse deltas. This means that 92*7bdc2678Schristosthe latest revision, which is the one that is accessed most often, 93*7bdc2678Schristosis stored intact. All others are regenerated from the latest one 94*7bdc2678Schristosby applying reverse deltas (backward differences). This 95*7bdc2678Schristosresults in fast access time for the revision needed most often. 96