From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.devel Subject: Re: On the adoption of transient.el Date: Wed, 11 Aug 2021 09:56:18 +0300 Organization: LINKOV.NET Message-ID: <87eeb0il4d.fsf@mail.linkov.net> References: <877di4on3d.fsf@posteo.net> <87im1oy6mw.fsf@posteo.net> <87y29hihea.fsf@posteo.net> <87sfzonu6k.fsf@ucl.ac.uk> <878s1gqlop.fsf@gmail.com> <8735ronpo0.fsf@ucl.ac.uk> <83lf5gjgtp.fsf@gnu.org> <87eeb8gdbq.fsf@telefonica.net> <877dgzebux.fsf@mail.linkov.net> <87tujxappl.fsf@mail.linkov.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="22962"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) Cc: ofv@wanadoo.es, emacs-devel@gnu.org To: "Alfred M. Szmidt" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Aug 11 09:06:41 2021 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 1mDiK1-0005lD-03 for ged-emacs-devel@m.gmane-mx.org; Wed, 11 Aug 2021 09:06:41 +0200 Original-Received: from localhost ([::1]:53706 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mDiK0-0000Fz-0F for ged-emacs-devel@m.gmane-mx.org; Wed, 11 Aug 2021 03:06:40 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44540) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mDiJF-0007Yq-IO for emacs-devel@gnu.org; Wed, 11 Aug 2021 03:05:53 -0400 Original-Received: from relay3-d.mail.gandi.net ([217.70.183.195]:40491) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mDiJC-00021O-SM; Wed, 11 Aug 2021 03:05:53 -0400 Original-Received: (Authenticated sender: juri@linkov.net) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id EF7A16000E; Wed, 11 Aug 2021 07:05:45 +0000 (UTC) In-Reply-To: (Alfred M. Szmidt's message of "Tue, 10 Aug 2021 04:16:05 -0400") Received-SPF: pass client-ip=217.70.183.195; envelope-from=juri@linkov.net; helo=relay3-d.mail.gandi.net X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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" Xref: news.gmane.io gmane.emacs.devel:272314 Archived-At: > > (defun restore-source-file () > > (with-current-buffer (current-buffer) > > (erase-buffer) > > (insert-buffer "*diff-commit-hunk*") > > (write-file (current-buffer-file-name))) > > (remove-hook 'vc-checkin-hook 'restore-source-file)) > > IIUC, it copies the old file back without merging changes in the same file. > > I'm not sure what you mean. What scenario are you thinking of? The > "old file" is the one that contains any changes you are working with. This is what I meant: when a file already contains some changes that should not be committed, and some other changes need to be committed from a patch in the same file (let's name these changesets as "old" and "new"), then you save the old file contents temporarily, commit a patch with "new" changes, and restore the old file contents. As a result, when you do 'C-x v =' (vc-diff) on such file, it will show the diff that includes the already committed "new" changes, because these changes were never merged to the old file. > OTOH, `commit-patch` uses `interdiff` (for non-git VCSs) > to compute differences between two changesets. Then vc > could use something like your diff-commit-hunk.el > for non-git VCSs to implement generic support for stash. > > What are commit-patch and interdiff? Since diff-commit-hunk.el works > well for git (and really for any VCS), why have a different system > there? `interdiff` used by https://github.com/caldwell/commit-patch is a command that shows the differences between two diff files, that could help to merge changes from the patch to the working copy of the same file.