💾 Archived View for thrig.me › blog › 2023 › 06 › 21 › arpe.gmi captured on 2023-07-10 at 13:43:18. Gemini links have been rewritten to link to archived content
➡️ Next capture (2023-11-14)
-=-=-=-=-=-=-
Someone remarked that for the authentic rogue programming experience™ one should use RCS. Actually, it is worse than that; rogue (1980) predates RCS (1982) and used SCCS, or the Source Code Control System (1973). Computers are beginning to have History!
$ fgrep main.c main.c * @(#)main.c 3.27 (Berkeley) 6/15/81
That's from rogue 3.6.3. SCCS got itself more or less replaced with RCS and then CVS, which in turn got themselves mostly replaced with distributed version control software—git, among other options. Worse, when you say "git" many people will think "Github" or some website like that. There are several commercial version control systems that I'm ignoring here, and a shout out to Subversion which once wedged and ate my files (2004), and then I went back to CVS until git came along.
RCS tags (as copied by CVS) instead look like:
$ grep Open /usr/src/usr.bin/vi/ex/ex.c /* $OpenBSD: ex.c,v 1.22 2022/02/20 19:45:51 tb Exp $ */
So ideally for the authentic rogue programming experience™ you would need to find and compile SCCS, unless there's already a package for your system. You will also want an authentic editor, though obtaining a 1980 era vi(1) might be tricky; current versions of ex-vi have about 40 years of bugfixes applied, and probably crash less. There is also ed(1). Best might be to run a PDP-11 with a VT102, real or otherwise, but then you'd need to port a current version of rogue back to that system…
https://thrig.me/src/rogue36.git
Yes, I'm still fixing bugs in rogue. The entire messages system could do with a rewrite, and there are still some hard to fix things related to Field of View interactions with other systems: is/was the player blind, is/was the cell seen, is/was the room dark, when are messages showing up relative to when the FOV redraws happen, etc. It's like a giant ball of malicious state with not enough blanket to cover it all.
The following is good if you want to better understand git, but that's not an authentic rogue programming experience™.
https://jwiegley.github.io/git-from-the-bottom-up/
An authentic experience would be hard to have even if you could get the 1980s terminal room thing going. I once showed a graduate student a punch card and he was like "that's barbaric!"
what(1) seems unloved. Mostly doesn't work™, or there are other ways to associate installed files with where they came from these days; ports or package systems come to mind, in addition to Ansible and whatnot.
$ what rogue rogue: vers.c 3.6 (Berkeley) 4/21/81 $ doas what /bsd /bsd: OpenBSD 7.3 (GENERIC.MP) #1125: Sat Mar 25 10:36:29 MDT 2023 $ what `which ls` /bin/ls: $
tags #rogue #vcs