The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Larry McVoy <lm@mcvoy.com>
To: Alan Glasser <alanglasser@gmail.com>
Cc: TUHS main list <tuhs@minnie.tuhs.org>
Subject: Re: [TUHS] Book Recommendation [ reallly inscrutable languages ]
Date: Fri, 19 Nov 2021 14:28:40 -0800	[thread overview]
Message-ID: <20211119222840.GH15051@mcvoy.com> (raw)
In-Reply-To: <CALpTLGpsWL_YD2sJZRXcyRSmhdg6X+SG0cafN29T8Xv7BeAHNw@mail.gmail.com>

Hi Alan (and others, should this move to COFF?)

> I'm happy to hear that some folks appreciated what I called "INEX" (for
> include/exclude); one of my contributions to SCCS.

You just got yourself a big fan, anyone who had the insight to add includes
and excludes to SCCS is a smart cookie, thank you for those, BitKeeper makes
heavy use of them.

> I've had to argue against RCS and, of course, deal with CVS, much to my
> chagrin.

You and me both.

> Are you familiar with the concept of SCCS ID lists (slists), which act as a
> table of contents of a "unit" (usually a library or load module)?

That sounds like BitKeeper's ChangeSet file.  BitKeeper's model is
repository based, a repository is a collection of SCCS files that are
all managed as a unit.  It doesn't work this way but you could think
of the original content of the ChangeSet file as

	src/foo.c 1.1
	man/foo.1 1.1

It is <pathname> <revision>

The ChangeSet file is itself versioned so lets say you added a file,
then version 1.2 of the ChangeSet file is

	src/foo.c 1.1
	man/foo.1 1.1
	examples/foo.eg 1.1

Because pathnames can change (BitKeeper has pathnames versioned just like
the content is version) we had to come up with a non-changing name for
pathnames (think inode # but it has to be globally unique).  Ditto for
revisions, they get changed all the time because of merges.

BitKeeper's internal names look like (you can skip this for now):

Inode:

lm@lm.bitmover.com|man/WhatIs|19980710174007|58324|a9558aeac091a142

or

user@host.domain|relative/path|date|chksum|64 bits of /dev/random

Revision:

lm@work.bitmover.com|man/WhatIs|20000205064107|58704

or 

same as the inode but skip the 64 bits.


Getting back to useful stuff, you can clone a repository to any commit,
all that does is check out that version of the ChangeSet file and strips
off deltas until the tip matches the revision from that version of the
ChangeSet file.

BitKeeper was the first fully distributed SCM system, Git, Hg, et al,
are all inspired by BitKeeper (and would have done well to copy it more
closely, Git in particular is just awful).  BitKeeper owes a tremendous
nod to SCCS, SCCS taught me the value of that file format.

--lm

  reply	other threads:[~2021-11-19 22:30 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-16 17:00 [TUHS] Book Recommendation Douglas McIlroy
2021-11-16 17:54 ` [TUHS] Book Recommendation [ reallly inscrutable languages ] Jon Steinhart
2021-11-16 17:57   ` Ron Natalie
2021-11-16 18:00   ` Dan Cross
2021-11-16 18:04   ` Larry McVoy
2021-11-16 19:53     ` Richard Salz
2021-11-16 20:05       ` Warner Losh
2021-11-17 19:12   ` Norman Wilson
2021-11-17 20:46     ` Dan Stromberg
2021-11-17 20:52       ` Warner Losh
2021-11-17 21:17         ` Dan Cross
2021-11-17 22:21           ` Rob Pike
2021-11-18  0:35             ` Larry McVoy
2021-11-19 20:04               ` Alan Glasser
2021-11-19 20:14                 ` Larry McVoy
2021-11-19 21:48                   ` Alan Glasser
2021-11-19 22:28                     ` Larry McVoy [this message]
2021-11-19 23:17               ` Alan Glasser
2021-11-18 21:03             ` George Michaelson
2021-11-18 21:39               ` Rob Pike
2021-11-17 22:36     ` Bakul Shah
2021-11-18  0:56       ` Dan Stromberg
     [not found] ` <CAKH6PiXinxBQGRqoeGMcG9CwTA5BNeU-LY164f-ZLYA4obsyuA@mail.g mail.com>
2021-11-16 18:47   ` [TUHS] Book Recommendation John Foust via TUHS
2021-11-16 20:35 ` Bakul Shah
2021-12-02 21:35 ` Duncan Mak
2021-12-02 22:32   ` Bakul Shah
2021-12-02 22:34   ` Rob Pike
2021-11-16 19:29 [TUHS] Book Recommendation [ reallly inscrutable languages ] Douglas McIlroy
2021-11-16 19:54 ` Jon Steinhart
2021-11-18 18:47 Paul Ruizendaal via TUHS
2021-11-18 19:03 ` arnold
2021-11-18 19:16   ` Chet Ramey
2021-11-18 19:20     ` arnold
2021-11-18 21:03   ` John Cowan
2021-11-18 21:42 ` Rich Morin
2021-11-18 22:59 Nelson H. F. Beebe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211119222840.GH15051@mcvoy.com \
    --to=lm@mcvoy.com \
    --cc=alanglasser@gmail.com \
    --cc=tuhs@minnie.tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).