From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from minnie.tuhs.org (minnie.tuhs.org [45.79.103.53]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id b4f2aafb for ; Thu, 12 Sep 2019 13:45:21 +0000 (UTC) Received: by minnie.tuhs.org (Postfix, from userid 112) id C641D948C4; Thu, 12 Sep 2019 23:45:19 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id C19BF94797; Thu, 12 Sep 2019 23:44:52 +1000 (AEST) Received: by minnie.tuhs.org (Postfix, from userid 112) id 0697D94797; Thu, 12 Sep 2019 23:44:51 +1000 (AEST) Received: from ppsw-42.csi.cam.ac.uk (ppsw-42.csi.cam.ac.uk [131.111.8.142]) by minnie.tuhs.org (Postfix) with ESMTPS id 465AD93D35 for ; Thu, 12 Sep 2019 23:44:50 +1000 (AEST) X-Cam-AntiVirus: no malware found X-Cam-ScannerInfo: http://help.uis.cam.ac.uk/email-scanner-virus Received: from grey.csi.cam.ac.uk ([131.111.57.57]:56700) by ppsw-42.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.138]:25) with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) id 1i8POv-001mRu-8D (Exim 4.92.2) (return-path ); Thu, 12 Sep 2019 14:44:45 +0100 Date: Thu, 12 Sep 2019 14:44:45 +0100 From: Tony Finch To: Larry McVoy In-Reply-To: <20190912043145.GA12480@mcvoy.com> Message-ID: References: <20190911181101.GF3143@mcvoy.com> <20190912034346.GJ2046@mcvoy.com> <20190912043145.GA12480@mcvoy.com> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Subject: Re: [TUHS] [SPAM] Re: SCCS 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: The Eunuchs Hysterical Society Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" Larry McVoy wrote: > If you have actual data that shows RCS to be faster I would like to > see that. RCS read the whole file. It could have been faster, it could > have put the offset into the file where the most recent version begain. > But it didn't. It read the entire file. In RCS the most recent version of the file is near the start of the ,v file after a list of revisions, so it doesn't have to read the deltas for the common case of checking out the current version of a file. I think there must be a similar optimization to copy the deltas without processing them when committing a new revision. But yes, as soon as you get away from working on the latest revision of the main branch, RCS becomes quadratically slow. A few years ago I converted a decades-old SCCS working tree to git. Because there are very good tools for converting from CVS to git, I decided to convert SCCS to RCS (which is mostly a trivial file-at-a-time format conversion, in the absence of branches and tags) to CVS (which is just moving the RCS files to the right place) to git. The most annoying part of this was the accidentally quadratic process of dealing with all the old revisions in RCS files. I could mostly avoid slowness if I arranged never to check out old revisions, aiming to treat RCS as append-only until the final cvs-fast-export stage. This kept things acceptably fast (closer to linear in the size of the file rather than quadratic) even for that one very large frequently updated file. Detailed write-up at https://fanf.dreamwidth.org/105694.html (I subsequently re-used a lot of the machinery for converting another much smaller SCCS repository. It was a lot easier the second time!) [ PS. https://accidentallyquadratic.tumblr.com is great ] Tony. -- f.anthony.n.finch http://dotat.at/ Lough Foyle to Carlingford Lough: Southwesterly at first in southeast, otherwise westerly or northwesterly 4 or 5, occasionally 6 at first. Moderate or rough in north, otherwise slight or moderate, becoming smooth or slight in east. Rain at first. Moderate or poor, becoming good.