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