|
|
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.