From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: John Yates Newsgroups: gmane.emacs.devel Subject: [#61071] New features: VC timemachine and BackupOnSave to RCS Date: Thu, 26 Jan 2023 07:06:41 -0500 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="14466"; mail-complaints-to="usenet@ciao.gmane.io" Cc: =?UTF-8?Q?Peter_Stiernstr=C3=B6m?= , Eric Raymond To: Emacs developers Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Jan 26 13:07:31 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pL12R-0003dn-Ak for ged-emacs-devel@m.gmane-mx.org; Thu, 26 Jan 2023 13:07:31 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pL11w-0001xU-Eq; Thu, 26 Jan 2023 07:07:01 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pL11u-0001xA-Mt for emacs-devel@gnu.org; Thu, 26 Jan 2023 07:06:58 -0500 Original-Received: from mail-ed1-f44.google.com ([209.85.208.44]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pL11s-0005TE-Ck for emacs-devel@gnu.org; Thu, 26 Jan 2023 07:06:57 -0500 Original-Received: by mail-ed1-f44.google.com with SMTP id s3so1673185edd.4 for ; Thu, 26 Jan 2023 04:06:55 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=rLFzU8CQH3BVxgM0DCKMTJxrCqxcdGOWebVScSGd8z8=; b=CGVUaY2DPBEEYj7XgSRVx3aA2kobpUbMG6djfbzqkTZL33i/hPp3RWb+ogmfdMRpka 43FIJOpijE5xlaj21mUN0UfUxfysq2KoZAfWDd27Ps7oJaTH2UrvQsr6pCUDn3V29oZA CbdU2GzVMr/44JJLV9QCivJG/STVXVjjoYKUfNE/77u0Zuv7yJfhtBuht+lVSWnENFRM WqTW86JTdRSiQU5IuawtA1PBgoDUQFXLu6hdNNjV3rUS1EWHw7pAVvJDGEHq+UpDm/2X JFvh41+p9/IIQwqhPpBMlMD4pfbNwC5ytfa6goawZizWEZlfz43MWuOY3/YSfEdc4Fzm tD4A== X-Gm-Message-State: AFqh2krqmx4HUKvRJ6+P9B1JJe+YJriPUY2AWBmkhw9KT2LT69tybYGC UfCiwMtqnqP0DomTpDD3TXigFMSCdnPup3dUD2uD2knaxJQ= X-Google-Smtp-Source: AMrXdXs6/YBKr8iF1a3EGG/EapPBOX5xCcoPt/qs4qgZdQYi7kN4gtnd0rJ9rsIh9cbbeQcAXWy4KQswoZwx9DCXVOU= X-Received: by 2002:a05:6402:4305:b0:47c:30aa:a7c0 with SMTP id m5-20020a056402430500b0047c30aaa7c0mr5275758edc.11.1674734813429; Thu, 26 Jan 2023 04:06:53 -0800 (PST) Received-SPF: pass client-ip=209.85.208.44; envelope-from=john.yates.sheets@gmail.com; helo=mail-ed1-f44.google.com X-Spam_score_int: -15 X-Spam_score: -1.6 X-Spam_bar: - X-Spam_report: (-1.6 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.091, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:302669 Archived-At: New bug tracker issue #61071. Here is [PATCH 0/3] cover letter: This is a series of three bisectable (I hope :-) patches that culminate in support of a new Emacs backup scheme: * [PATCH 1/3] Refactor and document vc-find-revision caching * [PATCH 2/3] Introduce VC timemachine capability * [PATCH 3/3] Introduce vc-bos: backup on save (to an RCS file) This Backup-On-Save scheme exploits a file system mirror scheme introduced in the first patch. By exploiting a little known aspect of RCS's algorithm for locating a master file, backups are stored completely removed from the work file (i.e. no local RCS directories) and under exactly the same filename (i.e. no ',v' suffix or similar). Accessing backed-ups exploits a new vc-timemachine capability, introduced in the second patch. Both the design and code owe much to Peter Stiernstr=C3=B6m's original git-timemachine.el. To sidestep any copyright issues, Peter has graciously assigned git-timemachine.el's copyright to the FSF. With the submission timemachine functionality is available in both vc-git and vc-rcs. This backup scheme works equally well with files already under some VCS as well as with files that are not currently version controlled. For me (primarily a C++ programmer) this is: * My first significant bit of elisp * My first exposure to the VC codebase * My first Emacs / FSF submission I welcome all nature of feedback: * Code criticism * Violations of pertinent standards * Bug reports * Suggested improvement * . . .