War Story: RCS "blame" command

RCS is a source code control system (a precursor to GIT). History: SCCS, one of the first "source code control systems" was part of UNIX but it was owned by AT&T Bell Labs. There was a need for a similar system for BSD Unix. Walter Tichy created RCS. RCS was the basis for CVS. Whereas RCS (and SCCS) treated each source file as more-or-less independent, CVS dealt with a file tree. All of these have been replaced by Git, a much more powerful system. BUT... I use RCS for system config files because it is pretty reasonable for recording the evolution of a single file. Config files are often independent but in a common directory (eg. /etc) whereas git wishes to track a tree. Besides, I've been using RCS far longer than GIT has existed. Today's topic: blame git-blame is a very useful command. Blame prints each line of a file along with the revision number in which it was last changed. This is very useful when you are trying to figure out how this line came to be. CVS has "annotate". It does the same thing as git-blame. Of course it was created earlier. RCS didn't have a similar function. Someone created rcs-blame but it wasn't generally adopted. I wanted one today to understand a mistake that I made in a config file. rcs-blame was on Sourceforge, but it has disappeared. It is part of debian and Ubuntu, but not Fedora. I found a copy of the source here: <https://invisible-island.net/rcs-blame/rcs-blame.html>. That is Thomas E. Dickey's site and I trust him (he is/was the main maintainer of xterm). I followed the instructions in the tar file's README and it built easily. The upshot: I found which commit had the bug; I checked for similar bugs in that commit but found none.
participants (1)
-
D. Hugh Redelmeier