From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 15133 invoked from network); 19 Nov 2021 22:30:13 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 19 Nov 2021 22:30:13 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 14A8B93D66; Sat, 20 Nov 2021 08:30:10 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 85DBA93D61; Sat, 20 Nov 2021 08:28:45 +1000 (AEST) Received: by minnie.tuhs.org (Postfix, from userid 112) id E138393D61; Sat, 20 Nov 2021 08:28:42 +1000 (AEST) Received: from mcvoy.com (mcvoy.com [192.169.23.250]) by minnie.tuhs.org (Postfix) with ESMTPS id C1C9793D5E for ; Sat, 20 Nov 2021 08:28:40 +1000 (AEST) Received: by mcvoy.com (Postfix, from userid 3546) id 4615535E32F; Fri, 19 Nov 2021 14:28:40 -0800 (PST) Date: Fri, 19 Nov 2021 14:28:40 -0800 From: Larry McVoy To: Alan Glasser Message-ID: <20211119222840.GH15051@mcvoy.com> References: <202111161754.1AGHsGsN929905@darkstar.fourwinds.com> <50F3E958-F0A4-4895-B1BC-41A2644A074A@oclsc.org> <20211118003512.GN15051@mcvoy.com> <20211119201447.GF15051@mcvoy.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) Subject: Re: [TUHS] Book Recommendation [ reallly inscrutable languages ] X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: TUHS main list Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" 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 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