RCSDIFF(1)

πŸ’… RCSDIFF(1) β€” like, the whole manual, bestie ✨

okay so this is rcsdiff from the General Commands Manual crew, and I'm gonna walk you through it like we're texting at 2am 🫢


🌸 NAME 🌸

rcsdiff β€” compare RCS revisions. that's it. that's the whole vibe check πŸ’–


✨ SYNOPSIS ✨

rcsdiff [ -ksubst ] [ -q ] [ -rrev1 [ -rrev2 ] ] [ -T ] [ -V[n] ] [
-xsuffixes ] [ -zzone ] [ diff options ] file ...

πŸ¦‹ DESCRIPTION πŸ¦‹

So rcsdiff literally just runs diff(1) to compare two revisions of each RCS file you hand it. that's the whole job, and it does it iconically πŸ’…

Filenames that match an RCS suffix? those are RCS files, periodt. everything else is a working file. and the names get paired up the way ci(1) explains it β€” go read that one, iykyk πŸŽ€

  • -q suppresses diagnostic output. silencing the haters, honestly πŸ™ˆ
  • you can give zero, one, or two revisions with -r. zero? one? two? all valid, she's flexible ✨
  • -ksubst affects keyword substitution when extracting revisions, exactly as described in co(1). like, for example: -kk -r1.1 -r1.2 ignores differences in keyword values when comparing revisions 1.1 and 1.2. so clean πŸ”₯
okay this next bit is a whole paragraph but it MATTERS, so pay attention bestie:

To avoid excess output from locker name substitution, -kkvl is assumed if all four of these are true:

  1. at most one revision option is given
  2. no -k option is given
  3. -kkv is the default keyword substitution
  4. the working file's mode would be produced by co -l

See co(1) for the deets about -T, -V, -x and -z β€” she's the main character of that info, not this page 🌈

Otherwise? all options of diff(1) that apply to regular files are accepted, with the same meaning as for diff. yes literally all of them, go off πŸ‘‘


🧚 the three revision scenarios (this is the good part) 🧚

both rev1 and rev2 omitted β†’ rcsdiff compares the latest revision on the default branch (by default the trunk) with the contents of the corresponding working file. super useful for figuring out what you changed since the last checkin. "what have i done since then" energy 😭

rev1 given, rev2 omitted β†’ rcsdiff compares revision rev1 of the RCS file with the contents of the corresponding working file. one foot in history, one foot in the present πŸ¦‹

both rev1 and rev2 given β†’ rcsdiff compares revisions rev1 and rev2 of the RCS file. full time travel, no working file needed ⭐

and just so we're clear: both rev1 and rev2 may be given numerically or symbolically. numbers, names, whatever feels right πŸ’œ


πŸŽ€ EXAMPLE πŸŽ€

the command

rcsdiff  f.c

compares the latest revision on the default branch of the RCS file to the contents of the working file f.c. short, sweet, slayed πŸ’…


πŸ”₯ ENVIRONMENT πŸ”₯

  • RCSINIT β€” options prepended to the argument list, separated by spaces. a backslash escapes spaces within an option. the RCSINIT options get prepended to the argument lists of most RCS commands. useful RCSINIT options include -q, -V, -x, and -z. lowkey a little pre-game ritual for your args πŸ“
  • RCS_MEM_LIMIT β€” normally, for speed, commands either memory map or copy into memory the RCS file if its size is less than the memory-limit, currently defaulting to unlimited. otherwise (or if the initially-tried speedy ways fail), the commands fall back to using standard i/o routines. you can adjust the memory limit by setting RCS_MEM_LIMIT to a numeric value lim (measured in kilobytes). an empty value is silently ignored. as a side effect, specifying RCS_MEM_LIMIT inhibits fall-back to slower routines. ngl that side effect is a little spicy, so know it before you set it 🌢️
  • TMPDIR β€” name of the temporary directory. if not set, the environment variables TMP and TEMP are inspected instead and the first value found is taken; if none of them are set, a host-dependent default is used, typically /tmp. the backup-plan chain of directories, honestly πŸ’€

πŸ’€ DIAGNOSTICS πŸ’€

Exit status is 0 for no differences during any comparison, 1 for some differences, 2 for trouble. three moods, all valid 🌈


πŸ‘‘ IDENTIFICATION πŸ‘‘

giving credit where credit is due, respectfully:

  • Author: Walter F. Tichy.
  • Manual Page Revision: 5.10.1; Release Date: 2024-10-01.
  • Copyright Β© 2010-2022 Thien-Thi Nguyen.
  • Copyright Β© 1990, 1991, 1992, 1993 Paul Eggert.
  • Copyright Β© 1982, 1988, 1989 Walter F. Tichy.

πŸ’– SEE ALSO πŸ’–

Walter F. Tichy, RCS--A System for Version Control, Software--Practice & Experience 15, 7 (July 1985), 637-654. academic baddie behavior πŸŽ“βœ¨

The full documentation for RCS is maintained as a Texinfo manual. if the info(1) and RCS programs are properly installed at your site, the command

info rcs

should give you access to the complete manual. additionally, the RCS homepage:

http://www.gnu.org/software/rcs/

has news and links to the latest release, development site, etc. go peek, it's giving archives πŸ¦‹


okay that's the whole page, no notes πŸ’… and yeah β€” this beautiful thing is GNU RCS 5.10.1, dated 2024-10-01, from the bottom of the manpage like a little signature. mwah, stan 🫢✨

πŸ“¦ where this page comes from