|
|
1.1 root 1: .PP
2: The major differences between release 2 and release 3 of RCS are:
3: .IP ci: \w'rcsmerge'u+.2i
4: Release 3 ci determines whether the file to be checked in is
5: different from the previous revision. If it is not different, ci
6: asks whether to do a checkin anyway, or, if -q is present, ci
7: suppresses the checkin. This feature avoids redundant checkins. A
8: checkin can be forced with the new option -f.
9: .IP
10: The option -l on release 3 ci now works properly: After the
11: checkin, an implicit checkout with locking occurs. The keywords
12: are updated. A new option, -u, also performs an implicit
13: checkout, but does not lock.
14: .IP
15: The option -k looks through the working file to pick up keyword
16: values for the revision number, date, author and state, and
17: assigns them to the checked-in revision, rather then computing
18: them from existing locks, the clock, etc. This is useful for
19: software distribution: Suppose a file is maintained in RCS format
20: at several sites. If an update is sent to these sites and checked
21: in with the -k option, then the original revision number, date,
22: author, and state are preserved.
23: .IP co:
24: Generates full path names for RCS files during the keyword
25: expansion. (Determining the full path causes a noticeable
26: slowdown of co; this can be mitigated by checking out several
27: files in a single command.)
28: .IP
29: A new keyword, $Locker$, expands to the id of the user
30: currently holding a lock on the revision.
31: .IP rlog:
32: The option -L omits all files that have no locks set. The option
33: -R prints only the RCS file name. Try rlog -L -R or rlog -L -h.
34: .IP rcsdiff:
35: (New operation) Runs diff on a checked-out file and a revision in
36: an RCS file. This is useful for figuring out what modifications
37: were made since the last ci. Rcsdiff can also run diff on 2
38: revisions in an RCS file.
39: .IP rcsmerge: (New operation) Merges the changes between 2 revisions in
40: an RCS file into the checked out revision.
41: .IP merge: 3-way file merge. Merge now has an option to print the result to
42: stdout (and a manual page).
43: .IP File naming conventions:
44: Release 3 RCS no longer removes suffixes of working files.
45: In addition, the suffix for RCS files is now ",v" instead of
46: ".v". Thus, a working file of the form "f.c" is stored into
47: "f.c,v".
48: .IP
49: All you have to do is to rename your existing ".v"-files. Don't
50: forget to add the suffix of the working file, if it was stripped
51: off.
52: .IP
53: Note that this change restricts the length of working file names
54: to 12 characters (RCS detects violations reliably). In 4.2bsd, this
55: restriction will be removed. The ",v" was necessary to keep MAKE
56: happy. A new version of MAKE that knows about RCS files in
57: subdirectories /RCS will be released soon.
58: .IP File modes:
59: During the initial checkin, the RCS file inherits the read and
60: execute permission from the working file. During subsequent
61: checkouts, the working file inherits the read and execute
62: permission from the RCS file. Thus, an executable file containing
63: a shell program will still be executable after a ci-co cycle.
64: .IP
65: The working file is normally generated with write permission for
66: the owner. An exception is if locking is set to strict, and
67: checkout is without locking. Then the working file is generated
68: without write permission, resulting in an error if one tries to
69: edit it.
70: .IP Portability:
71: Release 3 is portable. I have tested it on a VAX-11/780 (Unix 4.1
72: bsd), a PDP-11/70, and a PDP-11/45 (Unix 2.8 bsd), and it runs on
73: these machines without change. Porting RCS to Berkeley Unix 4.2
74: is trivial by changing one macro. I've also included the
75: modifications that were necessary to run release 2 on the BBN-C70
76: (BBN's C-machine), IBM 4341 with VM/UTS, M68000, Intel 86/330
77: with Xenix-86, Onyx with V7 Unix, VAX/VMS/Eunice 2.2. However, it
78: has not been tested on these systems. Currently. RCS is being
79: ported to the DEC-20.
80: .PP
81: Numerous minor problems have been fixed. RCS now dies gracefully in case
82: the file system fills up, or if there are other read/write errors.
83: (Gracefully in this case means that RCS files are not mutilated.)
84: RCS operations can no longer be interrupted during the renaming of RCS files
85: (and thus will no longer through away RCS files if interrupted).
86: There were some problems with nil-revision numbers and with printing of
87: nil-strings; these have all been fixed. If stdin is not a terminal, ci and
88: rcs now suppress the prompts for the log message and the descriptive text.
89: Calls to getlogin() have been replaced with getpwuid(getuid()). The default
90: for overwriting working files by co has been changed to not overwriting. Co
91: does overwrite without asking if the file is read-only (generated by
92: unlocking checkout, but with locking set to strict.) A serious, but
93: extremely rare problem with the regeneration of older revision has been
94: fixed. The comment-leader for .h-files is now initially set to " * ".
95: .PP
96: Lots of fixes were necessary to make RCS portable. These include
97: sign-extension bugs, long identifiers, conflicting structure members, and
98: expression overflows in older C-compilers. One person reported that %02d in
99: printf doesn't work on his USG system; I now have a macro DATEFORM which
100: either uses %02d or %.2d.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.