RCCS(1)

πŸ‘‘ RCCS(1) β€” like, the manual page for rccs πŸ’–

okay bestie, pull up a chair, we're reading a Programmers tools manpage together and honestly? it's a good one. it's rccs, no cap. ✨


✨ NAME ✨

rccs β€” apply RCS commands to sets of files 🫢


🌸 SYNOPSIS 🌸

rccs command [ options ] [ filename and/or directory ...  ]

that's it. that's the whole vibe. command, options, files. slay. πŸ’…


πŸ’œ DESCRIPTION πŸ’œ

so rccs is a perl script that tries to emulate the Berkeley SCCS program for RCS. if your fingers already know how to type commands to SCCS, just do the exact same thing to rccs. muscle memory stays winning, fr fr. πŸ”₯

a subset of the SCCS commands are implemented β€” specifically the ones that I use. some new commands have been added too. and it's easy to add more commands: go peek at the Example routine at the bottom of rccs to see how. iykyk. πŸ‘‘

the big thing to know: this interface does not require a list of files/directories for most commands β€” the implied list is *,v and/or RCS/*,v. but ⚠️ destructive commands, like clean -f, unedit, unget, do not have an implied list. in other words:

  • rccs diffs is the same as rccs diffs RCS
  • rccs unedit is not the same as rccs unedit RCS
πŸ’€ read that twice. the destructive ones don't guess for you. they will simply do the thing.

πŸŽ€ COMMANDS πŸŽ€

  • options β€” note that RCS options are typically passed through to RCS. the options that made sense to SCCS commands are translated to RCS options. ✨
  • ci β€” alias for delta. checks in files.
  • clean [-e] [-f] [-d|y'message'] [files] β€” with no arguments at all, this command removes all files that are read only and have an associated RCS file. with the -e argument, clean removes files that have been checked out writable but have not been modified. the -d|y|m option may be combined with -e to check in the set of files that have been modified. with the -f option, clean removes all working files, including files that have been modified since the check out.
🚨 Be careful. that's not me being dramatic, that's literally in the manpage. -f does not care about your feelings.
  • co β€” alias for get. checks out files.
  • create [-y|d'message'] [-g] files β€” initial check in of files to the RCS system. the files are then checked out readonly unless the -g option is present. the -y or -d options may be used to set the descriptive text message. differs from SCCS in that the original files are not preserved. πŸ™ˆ
  • deledit β€” alias for delta followed by a get -e.
  • delget β€” alias for delta followed by a get.
  • delta [-y|d'message'] [-q] [files] β€” check in a delta of the file. -q is changed to RCS' -s and means to be quiet about what is happening. -y'message' or -d'message' or -m'message' all get sent through to RCS as the check in message. no other arguments are translated.
  • diffs [-C|c] [-r<rev>] [-sdiff] [files] β€” shows changes between the working files and the RCS file. note that the files do not need to be checked out, only writable. -C or -c means do a context diff. -sdiff means do a side by side diff. the sdiff option will figure out your screen width if it knows how β€” see the source to make this work on your system. πŸ–₯️✨
  • edit β€” alias for get -e.
  • enter β€” alias for create -g.
  • fix β€” useful if you just checked in the file and then realized you forgot something. 😭 the fix command will remove the top delta from the history and leave you with an editable working file with the top delta as the contents. it's giving undo button energy.
  • get [-e] [-p] [-k] [-s] [files] β€” get, or check out, the file. without any options, get just gets the latest revision of the RCS file in the working file. with -e, check out the file writable. with -p, send the file to stdout. with -k, supress expansion of key words. with -s, be quiet about what is happening. 🀫
  • help β€” get a brief help screen of information. 🫢
  • history [files] β€” print the RCS history (my format) of the specified files.
  • info [files] β€” print the list of files being edited.
  • print β€” alias for a loop that prints the history of each file followed by the contents of the file.
  • prs β€” alias for history.
  • prt β€” alias for history.
  • unedit β€” alias for clean -f.
  • unget β€” alias for clean -f.

🌈 GLOBAL OPTIONS 🌈

  • -debug β€” turn on debugging. used when debugging rccs itself. πŸ”
  • -verbose β€” be more verbose about what is happening. πŸ—£οΈ

⭐ EXAMPLES ⭐

to start off, add a bunch of files to RCS:

rccs create -y'my program name' myprog.c myprog.h

now let's edit them all:

rccs get -e

if we didn't change anything, the following gives us a clean directory:

rccs clean -e

if we changed myprog.h, the following gives us a clean directory after checking in myprog.h:

rccs clean -e -d'some message'

if we want to see what we changed:

rccs diffs

main character workflow, honestly. πŸ’…πŸŒΈ


πŸ¦‹ SEE ALSO πŸ¦‹

RCS commands, SCCS commands, sdiff(1), perl(1).


🧚 TODO 🧚

it would be nice to implement a -i option that prompted before each action, especially the destructive ones. πŸ’€ (yes, the destructive ones. the ones that eat your files. those ones.)


so yeah, that's the whole thing bestie. this page is signed off by lm@sgi.com, dated Nov, 1995 β€” genuinely iconic, 10/10, no notes. periodt. πŸ’–πŸ‘‘