xref: /netbsd-src/external/gpl2/rcs/dist/rcs_func.ms (revision 7bdc26784bf54dccf8e31c40b2af54b918f70f81)
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