1.\" Format this file with: 2.\" pic file | tbl | troff -ms 3.\" 4.\" \*s stands for $, and avoids problems when this file is checked in. 5.ds s $ |
6.de D( 7.DS 8.nr VS 12p 9.vs 12p 10.I 11.. 12.de D) 13.DE 14.nr VS 18p 15.vs 18p 16.R 17.. 18.de Id 19.ND \\$4 20.. |
21.Id $Id: rcs.ms,v 5.4 1995/06/01 16:23:43 eggert Exp $ |
22.RP 23.TL 24RCS\*-A System for Version Control 25.sp 26.AU 27Walter F. Tichy 28.AI 29Department of Computer Sciences --- 248 unchanged lines hidden (view full) --- 278The marker 279.D( 280\*sLog\*s 281.D) 282has a similar function. It accumulates 283the log messages that are requested during check-in. 284Thus, one can maintain the complete history of a revision directly inside it, 285by enclosing it in a comment. |
286Figure 1 is an edited version of a log contained in revision 4.1 of |
287the file \fIci.c\fR. The log appears at the beginning of the file, 288and makes it easy to determine what the recent modifications were. 289.sp 290.nr VS 12p 291.vs 12p 292.ne 18 293.nf 294.in +0.5i |
295/* 296.in +\w'/'u 297* \*sLog: ci.c,v \*s 298* Revision 4.1 1983/05/10 17:03:06 wft 299* Added option \-d and \-w, and updated assignment of date, etc. to new delta. 300* Added handling of default branches. 301* 302* Revision 3.9 1983/02/15 15:25:44 wft 303* Added call to fastcopy() to copy remainder of RCS file. 304* 305* Revision 3.8 1983/01/14 15:34:05 wft 306* Added ignoring of interrupts while new RCS file is renamed; 307* avoids deletion of RCS files by interrupts. 308* 309* Revision 3.7 1982/12/10 16:09:20 wft 310* Corrected checking of return code from diff. 311* An RCS file now inherits its mode during the first ci from the working file, 312* except that write permission is removed. 313*/ |
314.in 0 315.ce 1 316Figure 1. Log entries produced by the marker \*sLog\*s. 317.fi 318.nr VS 18p 319.vs 18p 320.sp 0 321.LP --- 87 unchanged lines hidden (view full) --- 409.R 410This sequence of commands transforms the tree of Figure 2 into 411the one in Figure 3. 412Note that it may be necessary to incorporate the differences 413between 1.3 and 1.3.1.1 414into a revision at level 2. The operation \fIrcsmerge\fR automates this 415process (see the Appendix). 416.ne 7 |
417.PS 4i |
418.ps -2 419 box "1.1" 420 arrow 421 box "1.2" 422 arrow 423R13: box "1.3" 424 arrow 425R21: box "2.1" --- 22 unchanged lines hidden (view full) --- 448the customer's RCS file, and the customer 449can then merge the local modifications back into the new release. 450In the above example, a 451customer's RCS file would contain the following tree, assuming 452that the customer has received revision 1.3, added his local modifications 453as revision 1.3.1.1, then received revision 2.4, and merged 4542.4 and 1.3.1.1, resulting in 2.4.1.1. 455.ne 7 |
456.PS 4i |
457.ps -2 458R13: box "1.3" 459 line invis 460R21: box invis 461 line invis 462R22: box invis 463 line invis 464R24: box "2.4" --- 84 unchanged lines hidden (view full) --- 549RCS uses \fIforward\fR deltas for branches. Regenerating a revision 550on a side branch proceeds as follows. First, extract the latest revision 551on the trunk; secondly, apply reverse deltas until the fork revision for 552the branch is obtained; thirdly, apply forward deltas until the desired 553branch revision is reached. Figure 5 illustrates a tree with 554one side branch. Triangles pointing to the left and right represent 555reverse and forward deltas, respectively. 556.ne 8 |
557.PS 4i |
558.ps -2 559define BD X [line invis $1 right .5; 560line up .3 then left .5 down .3 then right .5 down .3 then up .3] X 561 562define FD X [line invis $1 right .5; 563line left .5 down .3 then up .6 then right .5 down .3;] X 564 565right |
566D11: BD(" 1.1") |
567 arrow right from D11.e |
568D12: BD(" 1.2") 569 arrow right from D12.e 570D13: BD(" 1.3") 571 arrow right from D13.e 572D21: BD(" 2.1") 573 arrow right from D21.e 574D22: box "2.2" |
575 line invis down from D21.s |
576F1: FD("1.3.1.1 ") |
577 arrow from D13.se to F1.w 578 arrow from F1.e right 579 right |
580F2: FD("1.3.1.2 ") |
581.ps +2 582.PE 583.ce 1 584Figure 5. A revision tree with reverse and forward deltas. 585.sp 0 586.PP 587Although implementing fast check-out for the latest trunk revision, 588this arrangement has the disadvantage that generation of other revisions --- 690 unchanged lines hidden (view full) --- 1279from any file and prints them. 1280.IP "\fIrcs\fP \fB\- change RCS file attributes\fP" 1281.sp 0 1282\fIRcs\fR is an administrative operation that changes access lists, 1283locks, unlocks, breaks locks, toggles the strict-locking feature, 1284sets state attributes and symbolic revision numbers, changes the 1285description, and deletes revisions. A revision can 1286only be deleted if it is not the fork of a side branch. |
1287.br 1288.ne 10 |
1289.IP "\fIrcsclean\fP \fB\- clean working directory\fP" 1290.sp 0 |
1291\fIRcsclean\fR removes working files that were checked out but never changed.* 1292.FS * 1293The \fIrcsclean\fP and \fIrcsfreeze\fP commands 1294are optional and are not always installed. 1295.FE 1296.IP "\fIrcsdiff\fP \fB\- compare revisions\fP" 1297.sp 0 1298\fIRcsdiff\fR compares two revisions and prints their --- 220 unchanged lines hidden --- |