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