From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 06 11:45:34 2025 Received: (at submit) by debbugs.gnu.org; 6 Apr 2025 15:45:34 +0000 Received: from localhost ([127.0.0.1]:49220 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1SBh-00060R-Nz for submit@debbugs.gnu.org; Sun, 06 Apr 2025 11:45:34 -0400 Received: from lists.gnu.org ([2001:470:142::17]:34106) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u1SBe-000604-Ck for submit@debbugs.gnu.org; Sun, 06 Apr 2025 11:45:31 -0400 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 1u1SBY-0003re-IB for bug-gnu-emacs@gnu.org; Sun, 06 Apr 2025 11:45:24 -0400 Received: from mail-ej1-x62b.google.com ([2a00:1450:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u1SBW-0002xo-Me for bug-gnu-emacs@gnu.org; Sun, 06 Apr 2025 11:45:24 -0400 Received: by mail-ej1-x62b.google.com with SMTP id a640c23a62f3a-ac2ab99e16eso678673766b.0 for ; Sun, 06 Apr 2025 08:45:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743954319; x=1744559119; darn=gnu.org; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=N+vFdE3b/K+O5HMGavmGqkPe3Aca6/PHxhH11AbDE8E=; b=H3A4ANIo99HJW+MdVWzxX34rV7J38ker1ab0z0rCv1Clv/C2IewCl774rO5CKWYkS6 1kJQjLrJOs15o1zg+RTRBzQ51WGZfxPMgVllr2hnC7KjiKjhkkCMKVsNq7unuy88G6OO E4iKFq7quMtK7QgPbDGbZ8RSelW7sT49ou3Ass7xRQJFdEH/3XVd9m9wNbeidRc1QaND Uls7fNZMXjepvSVHfNQPQ8wYD6lD0J+ObVHHuX8nw3GsSpgr8IP1/KvZhlWAZkhK/uV0 +f2q3RH4KovYKLDKRnIemayJKYxtiL7vwbwKWllFiYDzWOvobE/gJ+uCj/tQ8Y3hZism 1khA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743954319; x=1744559119; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=N+vFdE3b/K+O5HMGavmGqkPe3Aca6/PHxhH11AbDE8E=; b=prRflDuQWJuNAAnX6+oPPg+xl/9cAcz7hIyKh6gRd/VS5bSb4JjbS/ZUkuU0umE1PR g5ob0gCWhODGt+qzpRLVamPMYdCBt6r77rwyJlUirk+gWOw6dqHN5usfREURldoORhZZ 3VDtUntGORX4spkjALhCPqVbkoIIG+v/904b8R8T0Y+FCOxAW9gQWeVYf3sKRqCOUzoD bR1XbUlafKTNL7YxVaAoxD1Ryf8YziQ7v8O/4oOeiTgyqZjawiqbGtVXZ81E6Rdkqxhr NyVZ0bIVcNiUuSH2OpDhMLj3tEnzGdT3HC4Jrqqpe4W9IdWDQXkGK7BR+1lP4hQoO0xe R1Pw== X-Gm-Message-State: AOJu0YwmjKhpHFqPQP+Z2iIqfOqFvQyCNkihY9jFqyiWV7IaTkrOF0wl 4Q3aFswT7fQe5CGbT2WpUoxH+WnQP5j6gHijQhOE6D4dybQyy7CDHoXokzpk X-Gm-Gg: ASbGncu0HVHDKraaW2sH+w3YlbnXjkqSD5TLU4+NwJR696acip+AEJJY/urPc/NPDpA LqwsMmxRIi1muABUSV4WfDqte5NPZlLWKaDWYvd+LycGt6uxhozq7c/32tIPnRRHPDkzzonCr9y HHtaaKi9Nhd2xkCfLVlJqdjk3cNBuPAuvILtgHyU94VDYzxVsfy6WQ5I+4NlBmbLNqqU424Qi1+ hB9dSAkkCnj84m+6rRPSQqlEmocc31SD4r3FvnW5NVA0jrJlGIjE7h1wBUWkGEQjtqYj7LMOi4T gCsyjyPnBKO52SMioXq8GyaMq1s7b6d5jAw66nUmb+gHnLUYiBuY3IVvaHI6lC8iu8swrcqCtXW wJgVlHcKChQ== X-Google-Smtp-Source: AGHT+IGkVZsJIyaPs2RGXNE7X2vDA6F+YlYTZYUGFA88d04ArgkHsxFSnRliVdFpeQ2fRdVW0swzDA== X-Received: by 2002:a17:906:37c6:b0:ac7:ee62:8d5 with SMTP id a640c23a62f3a-ac7ee6209b5mr383713966b.57.1743954318680; Sun, 06 Apr 2025 08:45:18 -0700 (PDT) Received: from localhost (0x573d6713.static.cust.fastspeed.dk. [87.61.103.19]) by smtp.gmail.com with UTF8SMTPSA id a640c23a62f3a-ac7bfe9aa4esm600776766b.54.2025.04.06.08.45.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Apr 2025 08:45:18 -0700 (PDT) From: "Paul D. Nelson" To: bug-gnu-emacs@gnu.org Subject: [PATCH] New command ediff-undo Date: Sun, 06 Apr 2025 17:45:16 +0200 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=2a00:1450:4864:20::62b; envelope-from=ultrono@gmail.com; helo=mail-ej1-x62b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --=-=-= Content-Type: text/plain I'd like to propose a command 'ediff-undo' that compares the current buffer with how it would look after undo. It supports a prefix arg (to specify multiple undo steps) and respects the active region (to restrict undo operations to that region). Some less obvious situations where I've found this helpful: - When a buffer has been modified by an external program or a complicated Emacs command. - After replacing part of a buffer with text obtained externally (e.g., copied from an external email client). - For a quick recap of recent edits to a buffer or region, via something like C-u C-u C-u M-x ediff-undo. The implementation is a straightforward combination of parts of 'ediff-current-file' and 'undo'. Any feedback would be welcome. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Add-ediff-undo-command.patch >From ede06d934751f49c958b280494cc171bd58e6f0e Mon Sep 17 00:00:00 2001 From: Paul Nelson Date: Sun, 6 Apr 2025 15:19:50 +0200 Subject: [PATCH] Add ediff-undo command * lisp/vc/ediff.el (ediff-undo): New command to compare current buffer and its undo state. * doc/misc/ediff.texi (Major Entry Points): Document it. --- doc/misc/ediff.texi | 4 ++++ etc/NEWS | 6 ++++++ lisp/vc/ediff.el | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+) diff --git a/doc/misc/ediff.texi b/doc/misc/ediff.texi index 73f751f3a4b..080d7e0c432 100644 --- a/doc/misc/ediff.texi +++ b/doc/misc/ediff.texi @@ -165,6 +165,10 @@ Major Entry Points Compare the buffer with its file on disk. This function can be used as a safe version of @code{revert-buffer}. +@item ediff-undo +@findex ediff-undo +Compare the buffer or region with its undo states. + @item ediff-buffers @findex ediff-buffers Compare two buffers. diff --git a/etc/NEWS b/etc/NEWS index 35e6edcd712..261ff68605c 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1288,6 +1288,12 @@ name of the directory now reverts the Dired buffer. With a new value of the prefix argument (1), this command copies file names relative to the root directory of the current project. +*** New command 'ediff-undo' to compare buffer with its undo states. +This command compares the current buffer and how it would look if undo +were performed. With a prefix argument, it considers that many undo +operations. With an active region, it restricts to changes in that +region. + ** Grep +++ diff --git a/lisp/vc/ediff.el b/lisp/vc/ediff.el index bc89b2025ff..2c389ca19af 100644 --- a/lisp/vc/ediff.el +++ b/lisp/vc/ediff.el @@ -400,6 +400,47 @@ ediff-current-file (funcall current-major)) (ediff-buffers revert-buf (current-buffer) startup-hooks))) +;;;###autoload +(defun ediff-undo (&optional arg startup-hooks) + "Run Ediff on current buffer and its undo states. +Compare buffer to how it would be if undo were performed. +With prefix ARG, consider that many undo operations. +With active region, restrict to operations in the region. +If there is nothing to undo, then this command fails. + +Non-interactively, STARTUP-HOOKS is a list of functions that Emacs calls +without arguments after setting up the Ediff buffers." + (interactive "p") + (unless (and buffer-undo-list (not (eq buffer-undo-list t))) + (error "Nothing to undo in the current buffer")) + (let* ((use-region (use-region-p)) + (beg (and use-region (region-beginning))) + (end (and use-region (region-end))) + (arg (if (numberp arg) arg 1)) + (orig-buf (current-buffer)) + (current-major major-mode) + (undo-buf-name (concat "UNDO=" (buffer-name orig-buf))) + (undo-buf (get-buffer undo-buf-name))) + (unless (>= arg 0) + (error "Negative argument %d" arg)) + (when undo-buf + (kill-buffer undo-buf) + (setq undo-buf nil)) + (setq undo-buf (get-buffer-create undo-buf-name)) + (with-current-buffer undo-buf + (insert-buffer-substring orig-buf) + (setq buffer-undo-list + (undo-copy-list (with-current-buffer orig-buf + buffer-undo-list))) + (funcall current-major) + (if use-region + (let* ((undo-in-region t) + (last-command nil) + (this-command 'undo)) + (undo-start beg end) + (undo-more (1+ arg))) + (undo arg))) + (ediff-buffers undo-buf orig-buf startup-hooks))) ;;;###autoload (defun ediff-backup (file) -- 2.39.3 (Apple Git-145) --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 06 21:23:11 2025 Received: (at 77580) by debbugs.gnu.org; 7 Apr 2025 01:23:11 +0000 Received: from localhost ([127.0.0.1]:50294 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1bCg-0005Pd-FT for submit@debbugs.gnu.org; Sun, 06 Apr 2025 21:23:10 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:49370) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u1bCc-0005OT-AK for 77580@debbugs.gnu.org; Sun, 06 Apr 2025 21:23:07 -0400 DKIM-Signature: a=rsa-sha256; b=I/vHS3x6CGvBxx7HEKYaACLDVzdMytMyIsOXN9PBw4Zmn9Aj2h/gHpnI2GKa94x+trMhYdNo2Zagd07oObPSGrIxNitx/OIagc5edlnMulAiUSQfddwUOOfJAk65KqY+uq0Fkqb/vBqr96gyWkCZ8vjCtmvqoULwSU7rE0n0XFp2OS1Urur53QDXAKUfMrTvK7szUkLZaKM50zqi1EfaWIkGythbfm/Fqq9pMdb3s8jxAO/WQ1m67SD0YmjBdwLL0l2SKRoYOMtwU4lZyMSwmpyBvZLuDiCqvM2osi/9+FZ4HSiGWjwyGfwQH2bgopCd5pzURFf0YjGh1JXVQKCTrQ==; s=purelymail1; d=spwhitton.name; v=1; bh=h4hTr67jjDi2QD+Jv3IrQY2atoXxxIbwZ/n6g8jMcR4=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=2MLT06CPW11L0v1hTFn7E2D33t8KspyiIniaW2ASCIs5JRfyG+ytCIIbDChaRp4ZUN6lXifMAXVSdmJ/4lc0ofSWKmMS/Yi4Zy8qi/ow8YlSlP/ZgAPcgl2lY59glZnm32n00vhmnYhbPl40rr4pDFr0SjyhZeNcYmMKn/ErHaMnD87EyLAOdFWccbz6i5v7Dka5qCJU22i/KaCOoh4MAyIYKOn7rfy9QP+dKqsjdd6qvzgS7wzNWXEe0yeosmqsWDHhKJNUGwGJzsPI9SxnEaOSt8ysCMG6HQu+r28jawhqU40r0uakWpEDxpqo9AF1LKAIHNiZA7fDSqi2nnX6qw==; s=purelymail1; d=purelymail.com; v=1; bh=h4hTr67jjDi2QD+Jv3IrQY2atoXxxIbwZ/n6g8jMcR4=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 77580@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1965792889; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 07 Apr 2025 01:22:59 +0000 (UTC) Received: by melete.silentflame.com (Postfix, from userid 1000) id 91C2A7E6FDC; Mon, 07 Apr 2025 09:22:55 +0800 (CST) From: Sean Whitton To: "Paul D. Nelson" Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: References: Date: Mon, 07 Apr 2025 09:22:55 +0800 Message-ID: <87h630lq8g.fsf@melete.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: 77580@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Sun 06 Apr 2025 at 05:45pm +02, Paul D. Nelson wrote: > I'd like to propose a command 'ediff-undo' that compares the current > buffer with how it would look after undo. It supports a prefix arg (to > specify multiple undo steps) and respects the active region (to restrict > undo operations to that region). > > Some less obvious situations where I've found this helpful: > > - When a buffer has been modified by an external program or a > complicated Emacs command. > > - After replacing part of a buffer with text obtained externally (e.g., > copied from an external email client). > > - For a quick recap of recent edits to a buffer or region, via something > like C-u C-u C-u M-x ediff-undo. > > The implementation is a straightforward combination of parts of > 'ediff-current-file' and 'undo'. Any feedback would be welcome. Thank you for an interesting idea! I'm especially interested in the external commands and complex Emacs commands case. I've made a couple of minor code comments below. Some higher level thoughts: - Why ediff? Why not plain diff? The latter is lighter weight, and is what diff-buffer-with-file uses, and your new command feels similar to diff-buffer-with-file, to me. - Have you thought about automatically detecting how far to go back, somehow? We already have a feature whereby autosaves are disabled if the buffer text has shrunk a lot; maybe that heuristic could help here. Probably this would want to be a separate command so the manual version was still available. > diff --git a/etc/NEWS b/etc/NEWS > index 35e6edcd712..261ff68605c 100644 > --- a/etc/NEWS > +++ b/etc/NEWS > @@ -1288,6 +1288,12 @@ name of the directory now reverts the Dired buffer. > With a new value of the prefix argument (1), this command copies file > names relative to the root directory of the current project. > > +*** New command 'ediff-undo' to compare buffer with its undo states. > +This command compares the current buffer and how it would look if undo > +were performed. With a prefix argument, it considers that many undo > +operations. With an active region, it restricts to changes in that > +region. ... it restricts itself to changes in that region ... > + (let* ((use-region (use-region-p)) > + (beg (and use-region (region-beginning))) > + (end (and use-region (region-end))) See use-region-beginning and use-region-end to make this shorter. > + (arg (if (numberp arg) arg 1)) It's more idiomatic to use an arguments list of (arg &optional ...) with (interactive "p"). > + (orig-buf (current-buffer)) > + (current-major major-mode) > + (undo-buf-name (concat "UNDO=" (buffer-name orig-buf))) A more usual name would be " *ediff-undo*", I think. The space means it is considered an internal buffer. (I know you're copying other ediff practice with this FOO= thing but let's not introduce more.) > + (undo-buf (get-buffer undo-buf-name))) > + (unless (>= arg 0) > + (error "Negative argument %d" arg)) (unless (plusp arg) > + (when undo-buf > + (kill-buffer undo-buf) > + (setq undo-buf nil)) > + (setq undo-buf (get-buffer-create undo-buf-name)) Usually in Elisp we call erase-buffer on the buffer rather than killing and recreating it. > + (with-current-buffer undo-buf > + (insert-buffer-substring orig-buf) > + (setq buffer-undo-list > + (undo-copy-list (with-current-buffer orig-buf > + buffer-undo-list))) You can use buffer-local-value instead here. > + (funcall current-major) Could you explain why the temporary buffer needs to be set to the major mode? Is it for font lock/syntax highlighting, essentially? -- Sean Whitton From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 07 02:20:28 2025 Received: (at 77580) by debbugs.gnu.org; 7 Apr 2025 06:20:29 +0000 Received: from localhost ([127.0.0.1]:51830 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1fqN-0003pU-RO for submit@debbugs.gnu.org; Mon, 07 Apr 2025 02:20:28 -0400 Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]:59720) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u1fqL-0003oZ-RP for 77580@debbugs.gnu.org; Mon, 07 Apr 2025 02:20:26 -0400 Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-aaf0f1adef8so629766266b.3 for <77580@debbugs.gnu.org>; Sun, 06 Apr 2025 23:20:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744006819; x=1744611619; darn=debbugs.gnu.org; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=l03C4comENYrAbHso56wfpr/W03jYTAQTz4E+1o0Dvs=; b=mrvnzdWAi7fTJfZmXtz04qu3RW++VeZrCeF5MdBDM8eenZJLRrki0n5cOKe9D+xnlQ Z/13L9tc+kL8HnqTSO6Dfl/XlMcpUhLKhWzGZpxjAN9MssSnfCqWNjjFFlRDFQr2uP4W dCc/dYGkXzNPS5Lrgwdgoxh6ulCtRFvdkQta92DSPZ8oIdKwmv693M8sMAehR32jfiZH IPEkCwCo9EIzAxdckSD69pn5AVTWBzYa+URX9oIOKlY2vUquWr6y6RDXUj7AY0Wh8U9n V3BDHxxksw+tVvSUEy2crF4KDxmIWKnxILJb+S8/sjgWJz9TF1NrkwrDwu7DIQvvH7OH /vmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744006819; x=1744611619; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=l03C4comENYrAbHso56wfpr/W03jYTAQTz4E+1o0Dvs=; b=eQXigveCpBImBGww2G1bqJv5t8ZwcuvkAxLQKM6+Joij0BPcC3IMKNjDBCLEvqw1kS 12HX+tF60dJJXH8czxV7nGUilQWe1fADTm5SgOMCy/4SMzX7Nvo6JtC/DMPjHO/fCs7N UQAArPk/5l0bbMl5IEX2jj3sG4IYn8hRyO+YKhkkkSnUHv13aG96ZuPS+rblWnxnNeHS mrZKaxLrnXVhjK4NBLPH/vBP8/+BRK14VVgS6OVX386FpVpBC7PyCdcpUw39ZSnm/UBR RGMH4+29FTqVqWdp2RR5MJwGS0QhxUkHsNPAEgsIjq6t9E2YwMeGGezN5cu4LA7vHquY X1ug== X-Gm-Message-State: AOJu0Yyq7XJzcfOahC+FrJFIaj3E7wDb5tMHlKBoVi/zt6RafoQxTgyM 59HNScJ2eLR6FjHh1T8oA9r8eWKAktjU/fbEgxo2UFXzYDUFHQXYJRZYFWEN X-Gm-Gg: ASbGnct2hL1924MsFFlV4y2s4uvGqztHnD8rBH9ItXSHdRNzuDOPIw7jKmnEJ37JdGZ br0Za6xFOmqaEEouJaztv5J96FHdNIQn7PS/wgaY9Z8gCVR/yK0il6KA8LFNH/9gQ5XcO/0QfR+ J8zATMHmfeSagEyiOW9nwzKEbUNkIWr5Gz2BotbhbG9kQDQHGJzZXe2+xz1PFbL1tZBhz/lZJVB fp8gfMz/vlxQwMWQWKWDYld86qmZtuHFwNUZPcvsk7A+mVukkdtCLmKX9GOjbRXr9G68JcMFQUA Z14rPb9eTpcJss/hhAslcU93EOaCe02j9M0TJTdRzF/oWNeXddDuUT6fHhJadQhnakpE6IncU3m pYRizXxoG9gdIikXbVHet X-Google-Smtp-Source: AGHT+IFa51vjo2ooOsVV+kywRWgxQwyoaV9uQfIh4jjyAVo6kaS/600qAEuEEH9N2Af83MR/5M4o0Q== X-Received: by 2002:a17:907:86a1:b0:ac7:d10c:1f39 with SMTP id a640c23a62f3a-ac7d6d04c9fmr849494066b.20.1744006818697; Sun, 06 Apr 2025 23:20:18 -0700 (PDT) Received: from localhost (0x573d6713.static.cust.fastspeed.dk. [87.61.103.19]) by smtp.gmail.com with UTF8SMTPSA id a640c23a62f3a-ac7db764fa6sm519629566b.100.2025.04.06.23.20.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Apr 2025 23:20:18 -0700 (PDT) From: "Paul D. Nelson" To: Sean Whitton Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: <87h630lq8g.fsf@melete.silentflame.com> (message from Sean Whitton on Mon, 07 Apr 2025 09:22:55 +0800) Date: Mon, 07 Apr 2025 08:20:16 +0200 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: 77580@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Hi Sean, thanks for your comments. > - Why ediff? Why not plain diff? The latter is lighter weight, and is > what diff-buffer-with-file uses, and your new command feels similar to > diff-buffer-with-file, to me. "ediff" because that's what I've typically used more, but I agree that it makes sense to have a "diff" analogue, so I've added one (attached). > - Have you thought about automatically detecting how far to go back, > somehow? We already have a feature whereby autosaves are disabled if > the buffer text has shrunk a lot; maybe that heuristic could help > here. Probably this would want to be a separate command so the manual > version was still available. > In practice, I've just spammed C-u enough times. I considered allowing a negative argument to signal "undo everything", which would be most useful with an active region; how does that sound? I hadn't thought about automatic detection along the lines that you suggest. I think I'm happy to leave that for now, either to a refinement of this command or a future one. >> + (orig-buf (current-buffer)) >> + (current-major major-mode) >> + (undo-buf-name (concat "UNDO=" (buffer-name orig-buf))) > > A more usual name would be " *ediff-undo*", I think. The space means > it is considered an internal buffer. (I know you're copying other ediff > practice with this FOO= thing but let's not introduce more.) I'm hesitant to mark it as internal since other Ediff functions don't automatically delete modified non-indirect buffers without user-defined cleanup hooks. In particular, I think it would be confusing if this function behaved differently from ediff-current-file, although I see your point about naming conventions. Perhaps "*ediff-undo*" would be more suitable? >> + (funcall current-major) > > Could you explain why the temporary buffer needs to be set to the major > mode? Is it for font lock/syntax highlighting, essentially? Another reason is that users might edit the "undo" buffer during the Ediff session, in which case standard keybindings are useful. Other suggestions would be welcome here. Paul --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Add-diff-with-undo-and-ediff-undo-commands.patch >From 9e3782e855909f6170faa5078b65c0d46e91e7a6 Mon Sep 17 00:00:00 2001 From: Paul Nelson Date: Sun, 6 Apr 2025 15:19:50 +0200 Subject: [PATCH] Add diff-with-undo and ediff-undo commands * lisp/vc/diff.el (diff-with-undo): * lisp/vc/ediff.el (ediff-undo): New commands to compare current buffer and its undo state. * doc/emacs/files.texi (Comparing Files): * doc/misc/ediff.texi (Major Entry Points): Document them. * lisp/simple.el (undo-to-buffer): New helper function, used to implement the above. --- doc/emacs/files.texi | 4 ++++ doc/misc/ediff.texi | 4 ++++ etc/NEWS | 10 ++++++++++ lisp/simple.el | 23 +++++++++++++++++++++++ lisp/vc/diff.el | 15 +++++++++++++++ lisp/vc/ediff.el | 16 ++++++++++++++++ 6 files changed, 72 insertions(+) diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi index 6128be8f128..8dee84ed1fa 100644 --- a/doc/emacs/files.texi +++ b/doc/emacs/files.texi @@ -1680,6 +1680,10 @@ Comparing Files The command @kbd{M-x diff-buffers} compares the contents of two specified buffers. +@findex diff-with-undo + The command @kbd{M-x diff-with-undo} compares the current buffer with +its undo states. + @findex compare-windows The command @kbd{M-x compare-windows} compares the text in the current window with that in the window that was the selected window diff --git a/doc/misc/ediff.texi b/doc/misc/ediff.texi index 73f751f3a4b..080d7e0c432 100644 --- a/doc/misc/ediff.texi +++ b/doc/misc/ediff.texi @@ -165,6 +165,10 @@ Major Entry Points Compare the buffer with its file on disk. This function can be used as a safe version of @code{revert-buffer}. +@item ediff-undo +@findex ediff-undo +Compare the buffer or region with its undo states. + @item ediff-buffers @findex ediff-buffers Compare two buffers. diff --git a/etc/NEWS b/etc/NEWS index 35e6edcd712..f7bed99af8f 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1207,6 +1207,12 @@ overlap. *** 'diff-apply-hunk' now supports creating and deleting files. +*** New command 'diff-with-undo' to compare buffer with its undo states. +This command compares the current buffer and how it would look if undo +were performed. With a prefix argument, it considers that many undo +operations. With an active region, it restricts itself to changes in +that region. + --- *** 'vc-version-diff' and 'vc-root-version-diff' changed default for REV1. They suggest the previous revision as the default for REV1, not the last @@ -1256,6 +1262,10 @@ and control windows can be left undisplayed and the corresponding variable set to nil. This change enables custom layouts without a control panel window. +*** New command 'ediff-undo' to compare buffer with its undo states. +This command compares the current buffer and how it would look if undo +were performed (see similar entry for 'diff-with-undo'). + ** Dired +++ diff --git a/lisp/simple.el b/lisp/simple.el index 7037158df8d..32accb473ac 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -4254,6 +4254,29 @@ undo-outer-limit-truncate :warning) (setq buffer-undo-list nil) t)) + +(defun undo-to-buffer (target-buffer source-buffer arg &optional beg end) + "Apply ARG undo operations from SOURCE-BUFFER to TARGET-BUFFER. +TARGET-BUFFER is set to the undone state of SOURCE-BUFFER. +If BEG and END are non-nil, restrict undo operations to that region. + +ARG is the number of undo operations to apply (must be non-negative). +The major mode of TARGET-BUFFER is set to match SOURCE-BUFFER." + (unless (>= arg 0) + (error "Negative argument %d" arg)) + (with-current-buffer target-buffer + (erase-buffer) + (insert-buffer-substring source-buffer) + (setq buffer-undo-list + (undo-copy-list (buffer-local-value 'buffer-undo-list source-buffer))) + (funcall (buffer-local-value 'major-mode source-buffer)) + (if (and beg end) + (let ((undo-in-region t) + (last-command nil) + (this-command 'undo)) + (undo-start beg end) + (undo-more (1+ arg))) + (undo arg)))) ;;;; Shell commands diff --git a/lisp/vc/diff.el b/lisp/vc/diff.el index c8a1b7c0efa..d7247959407 100644 --- a/lisp/vc/diff.el +++ b/lisp/vc/diff.el @@ -295,6 +295,21 @@ diff-buffers (list oldb newb (diff-switches)))) (diff (get-buffer old) (get-buffer new) switches no-async)) +;;;###autoload +(defun diff-with-undo (arg) + "View differences between current buffer and its undo state +With prefix ARG, consider that many undo operations. +With active region, restrict to operations in the region. + +This requires the external program `diff' to be in your `exec-path'." + (interactive "p") + (let* ((beg (use-region-beginning)) + (end (use-region-end)) + (orig-buf (current-buffer))) + (with-temp-buffer + (undo-to-buffer (current-buffer) orig-buf arg beg end) + (diff-buffers (current-buffer) orig-buf nil 'noasync)))) + (provide 'diff) ;;; diff.el ends here diff --git a/lisp/vc/ediff.el b/lisp/vc/ediff.el index bc89b2025ff..092f376ac98 100644 --- a/lisp/vc/ediff.el +++ b/lisp/vc/ediff.el @@ -400,6 +400,22 @@ ediff-current-file (funcall current-major)) (ediff-buffers revert-buf (current-buffer) startup-hooks))) +;;;###autoload +(defun ediff-undo (arg &optional startup-hooks) + "Run Ediff on current buffer and its undo states. +Compare buffer to how it would be if undo were performed. +With prefix ARG, consider that many undo operations. +With active region, restrict to operations in the region. + +Non-interactively, STARTUP-HOOKS is a list of functions that Emacs calls +without arguments after setting up the Ediff buffers." + (interactive "p") + (let* ((beg (use-region-beginning)) + (end (use-region-end)) + (undo-buf-name (concat "UNDO=" (buffer-name))) + (undo-buf (get-buffer-create undo-buf-name))) + (undo-to-buffer undo-buf (current-buffer) arg beg end) + (ediff-buffers undo-buf (current-buffer) startup-hooks))) ;;;###autoload (defun ediff-backup (file) -- 2.39.3 (Apple Git-145) --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 07 23:04:27 2025 Received: (at 77580) by debbugs.gnu.org; 8 Apr 2025 03:04:27 +0000 Received: from localhost ([127.0.0.1]:57946 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1zGE-000521-Ov for submit@debbugs.gnu.org; Mon, 07 Apr 2025 23:04:27 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:52494) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u1zGA-00051M-IU for 77580@debbugs.gnu.org; Mon, 07 Apr 2025 23:04:24 -0400 DKIM-Signature: a=rsa-sha256; b=m9U0YpHeoik+4pC8SgRE7DciFc1TvwoKNBs3FSdX5EoEmwN+o56r9hiFXADts2WuvQftQehX+Fe7zcvDUpTpC3uOVc4+dZQrPBiJ/2yYyBA7lltN/ksC2RanngIEvYuLWZUfiAYdvIK0mRX+Bwgsgshro4mJs7DG6REyl8hwHR4Tewam23ysvGlPI+y0aSNae2TfKv1LvKuqJrKl7CxH9IvJ9TVYf1+D/c1aH9/BrdUFta1I7lZNNOKWIlZ5Fh2xpJ849MdyBPi0fsL2oQN0W0Yd74ZKLfVeGbeiGT6iXdJfa9y6P9JVRs/5R1fWR5sMDBdM7eQZl/mlFPJyuWQwYQ==; s=purelymail1; d=spwhitton.name; v=1; bh=fwww6Idn4JlwJdk4OT4mdqWjDcfUo86YxZEvNnNJfMg=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=4aA43cMZtzQzdKIr3LlTm7i93x6y3/VQVbmN6CYabi/gy/rZpspfEsuFdrZTzP04ZxlZelWCYXsZZvVb695+0Xq585guaynw0XDAU+yRpoVurKtjmSbdamQFuOxZ7rTGYrg0ZMWzFHbvvcjnWcJOBPPhm9oSHP65D4V/EiSN71I0CKRECVXaHzcdVYJpD7fHcOrk3jzyTeqi2ex9YOFhns281IFr6QVR28ykXtcUeQ1thlcX0kXugFRvnTPNXw5VvTDuypsBiaji0JnVj/BmORrQYQ/CNxCgWvlv875yyT31w5YIlDWCxfRu6OLQn64u9WSm9590Tzy/jKrEPTb0wg==; s=purelymail1; d=purelymail.com; v=1; bh=fwww6Idn4JlwJdk4OT4mdqWjDcfUo86YxZEvNnNJfMg=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 77580@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1373249750; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Tue, 08 Apr 2025 03:04:15 +0000 (UTC) Received: by melete.silentflame.com (Postfix, from userid 1000) id B12197EF731; Tue, 08 Apr 2025 11:04:12 +0800 (CST) From: Sean Whitton To: "Paul D. Nelson" Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: References: Date: Tue, 08 Apr 2025 11:04:12 +0800 Message-ID: <87mscricb7.fsf@melete.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: 77580@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Mon 07 Apr 2025 at 08:20am +02, Paul D. Nelson wrote: > Hi Sean, thanks for your comments. > >> - Why ediff? Why not plain diff? The latter is lighter weight, and is >> what diff-buffer-with-file uses, and your new command feels similar to >> diff-buffer-with-file, to me. > > "ediff" because that's what I've typically used more, but I agree that > it makes sense to have a "diff" analogue, so I've added one (attached). Cool. There is ediff-with-current-buffer so probably it should be named ediff-with-undo, like you already have diff-with-undo. Btw I noticed that in undo-to-buffer it would be better to use '(when (minusp' instead of '(unless (>=' >> - Have you thought about automatically detecting how far to go back, >> somehow? We already have a feature whereby autosaves are disabled if >> the buffer text has shrunk a lot; maybe that heuristic could help >> here. Probably this would want to be a separate command so the manual >> version was still available. >> > > In practice, I've just spammed C-u enough times. I considered allowing > a negative argument to signal "undo everything", which would be most > useful with an active region; how does that sound? Wouldn't undoing everything just be the existing diff-buffer-with-file? That doesn't seem right. > I hadn't thought about automatic detection along the lines that you > suggest. I think I'm happy to leave that for now, either to a > refinement of this command or a future one. To be honest, I don't like adding a command where the normal way to use it is to spam C-u. The normal way to use it should be easy to access. So let's try to think of something better. >>> + (orig-buf (current-buffer)) >>> + (current-major major-mode) >>> + (undo-buf-name (concat "UNDO=" (buffer-name orig-buf))) >> >> A more usual name would be " *ediff-undo*", I think. The space means >> it is considered an internal buffer. (I know you're copying other ediff >> practice with this FOO= thing but let's not introduce more.) > > I'm hesitant to mark it as internal since other Ediff functions don't > automatically delete modified non-indirect buffers without user-defined > cleanup hooks. In particular, I think it would be confusing if this > function behaved differently from ediff-current-file, although I see > your point about naming conventions. Perhaps "*ediff-undo*" would be > more suitable? Yes, sure, sounds good. >>> + (funcall current-major) >> >> Could you explain why the temporary buffer needs to be set to the major >> mode? Is it for font lock/syntax highlighting, essentially? > > Another reason is that users might edit the "undo" buffer during the > Ediff session, in which case standard keybindings are useful. Other > suggestions would be welcome here. Cool. -- Sean Whitton From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 08 01:25:31 2025 Received: (at 77580) by debbugs.gnu.org; 8 Apr 2025 05:25:31 +0000 Received: from localhost ([127.0.0.1]:58266 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u21Sl-0007YQ-7I for submit@debbugs.gnu.org; Tue, 08 Apr 2025 01:25:31 -0400 Received: from mail-ed1-x52a.google.com ([2a00:1450:4864:20::52a]:60429) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u21Sj-0007Xv-6T for 77580@debbugs.gnu.org; Tue, 08 Apr 2025 01:25:29 -0400 Received: by mail-ed1-x52a.google.com with SMTP id 4fb4d7f45d1cf-5e5bc066283so8361104a12.0 for <77580@debbugs.gnu.org>; Mon, 07 Apr 2025 22:25:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744089923; x=1744694723; darn=debbugs.gnu.org; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=XE3EYcDvvnnLSMnFw0uto4hMxcIt05KXH94RvS9rXek=; b=GvS937xN9gS9uSmcAI2P8mCUpvRFFsH2sNK4sZAYAfxwKEzGJmUadBWGqjU3YKnbEG eiDDKYlLDvy3zcZ8qnf84h6taN4eFyW7hJMg6xJr4K+jKjxWYZRs6/4CI2+g4Fqv7Zs3 eCXE0HGChkUk2VhKsQfSWaNe7cmDzXvU8AlsqDJ667EpcDlrg/PiO1qSzzdZU19m3H9U ChXViCxf7JeuHi20QJzqsIufMs7ALDzhUiun8sMRrl2vNegzrDMtzg2OtXjRmLmQQS9Q ixlfsYI0L22sB5jY5tZpZxG/FvfqxhvgN1GIOUSyPUZ2I4vieIeR0CwzsUwP3SYwN+lh Trtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744089923; x=1744694723; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=XE3EYcDvvnnLSMnFw0uto4hMxcIt05KXH94RvS9rXek=; b=wiXgoumV7BxyOtrcg6r4JtKyj9BJaY3IfEu6GhTtTgrgCCWQHIQQ8Lhkskwdmn5A6Y uWXOXBES/beFUgbUkE2ia6yC7khG+1KVRhhZ/J7OFHRjwYTLcelbLxkoX2xOACYKKJ9X B2UyTvh33EgSL9BybfVe+F0lVzGkAKxyIyzQ6C5vOvqpGYKVtG/W9oB22d+V6gCSj4PP UICNbVO5KIXgldPNFSObA/zWglqZcQ19hjq2o00qZqPDzPOm7kSKShp2T/7OweRrb/do +tr8E6Yi2gyKN8nOuhxbnUVg5e8quKqlhWbXRnQb7/sGx/WVh/r8aUwEdyb46evivC75 1I7w== X-Gm-Message-State: AOJu0Ywg/6EBF374WMNFgDzRw7y0tyvVCUElaZTkRBCiF5K5S0zuP1MI HKdEOCaTi/Mc35RDeacterWr85JnswWFEog8H4LHOE2lk19CjWjh X-Gm-Gg: ASbGncsgKk7DH7z2MsMTYExzTwtSbs3+nCL5Hz4121WwRTBPzDckgXoB8ECoXLs4vwM pZToe5L7XDCi+t+tfYQzaH7QU6i0bxh7hboUvxv6+PNKuL0qgVy1vS0hvbErl/KgYoe6F+Nlb6L gEHy4CArAEogqR5NQiBK+gmFnjlMmtcEhw+FSpTQMDV4EsUNQKZiiyCOOr1HDqJc8InajCMxRt0 yg7FCopGixgE6ISN35fXd1OVWPQXfkjeOjKCzRT8DDX0H3TKAlxJNGb3CA94rRcUk6IIeBYMHrn yDTihzdPZhF18paZEPCpsw89RXWPBFzhxS/scBCr9kXqisJ1d15wl87jARuA86JJdF5iBe7OiZv 9+Jle9pSkFA== X-Google-Smtp-Source: AGHT+IEHmgQ1I/VS51T2PLTbt0O0CxFbqlFMZswlZLC28FjtI1y7k7VUi/TyHibUBbfa53abuyjvaQ== X-Received: by 2002:a05:6402:234c:b0:5dc:7643:4f3d with SMTP id 4fb4d7f45d1cf-5f0b5d82cb1mr11796214a12.1.1744089922458; Mon, 07 Apr 2025 22:25:22 -0700 (PDT) Received: from localhost (0x573d6713.static.cust.fastspeed.dk. [87.61.103.19]) by smtp.gmail.com with UTF8SMTPSA id 4fb4d7f45d1cf-5f087ed1c1csm7542073a12.22.2025.04.07.22.25.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 22:25:21 -0700 (PDT) From: "Paul D. Nelson" To: Sean Whitton Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: <87mscricb7.fsf@melete.silentflame.com> (message from Sean Whitton on Tue, 08 Apr 2025 11:04:12 +0800) Date: Tue, 08 Apr 2025 07:25:20 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: 77580@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > Cool. There is ediff-with-current-buffer so probably it should be named > ediff-with-undo, like you already have diff-with-undo. I appreciate this suggestion, but it's less clear to me for a few reasons: - ediff-with-current-buffer is an internal macro. - the user-facing Ediff commands omit words like "with". - I used "diff-with-undo" just because "diff-undo" was taken by a more-or-less internal helper function (undo inhibiting read-only). As I see it, the advantages of "ediff-undo" are internal consistency with user-facing ediff-* commands, and brevity (for the command name, and buffer names like "*ediff-undo*"). The disadvantage is that it is not quite parallel to "diff-with-undo". On the other hand, the two sets of commands are already not particularly consistent in their naming. I still lean towards "ediff-undo" given its brevity and internal consistency, but would be happy to discuss further. >> In practice, I've just spammed C-u enough times. I considered >> allowing a negative argument to signal "undo everything", which would >> be most useful with an active region; how does that sound? > > Wouldn't undoing everything just be the existing diff-buffer-with-file? > That doesn't seem right. The proposed operation of diff-with-undo with a negative argument C-- would differ from diff-buffer-with-file in some cases: - With an active region, it would preview undo restricted to that region. - If you've saved the file more than once in the current session, "undo everything" goes to the state at the beginning of the session rather than the last save. Let me know if you think this feature seems worth including. I lean towards "no" out of a desire to keep the new commands consistent with "undo" itself, which does not accept a negative argument. > >> I hadn't thought about automatic detection along the lines that you >> suggest. I think I'm happy to leave that for now, either to a >> refinement of this command or a future one. > > To be honest, I don't like adding a command where the normal way to use > it is to spam C-u. The normal way to use it should be easy to access. > So let's try to think of something better. Agreed. Thinking further, this scenario seems niche rather than normal. The original intent might be met more directly by some new command such as revert-buffer-in-region, diff-buffer-with-file-in-region, vc-diff-in-region, diff-backup-in-region, (...). The situation resembles that of the undo command itself. Typically, we should either undo small amounts, or resort to one of the structural undo-like commands tied to file or VC status. Only rarely should we need to do something like C-99 C-/ (possibly in a region), but that option remains a useful fallback. From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 08 01:28:27 2025 Received: (at 77580) by debbugs.gnu.org; 8 Apr 2025 05:28:27 +0000 Received: from localhost ([127.0.0.1]:58274 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u21Vb-0007iV-9w for submit@debbugs.gnu.org; Tue, 08 Apr 2025 01:28:27 -0400 Received: from mail-yw1-x112d.google.com ([2607:f8b0:4864:20::112d]:47522) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u21VX-0007hv-NO for 77580@debbugs.gnu.org; Tue, 08 Apr 2025 01:28:24 -0400 Received: by mail-yw1-x112d.google.com with SMTP id 00721157ae682-6f666c94285so56311117b3.3 for <77580@debbugs.gnu.org>; Mon, 07 Apr 2025 22:28:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744090097; x=1744694897; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=dyw8UrWMalVexYCwsPVo85Sqa5o0WniadOfISww68f8=; b=UgHZrOvXzlrlt4TvSCbYLI91kTbTdSJOMdAsiCN19ecJGgdSsD70jvzvnrdcj371Yj Qu6PhvRasGU2lDrRygSoZgPvjT4P1Yv96nisN1FviFVA/g7cvwKAUHwbO1f5WHYvvWx2 /hA3LNPNQGa+KMSANSWckT59M+Uav7klQgtZbm3oOXGryhInzN8Iekfye5zeNJCR4Ak8 S3xw6m0NAAHlyd0ljC7apAt0VQPlx5DLGGa5RfTZswBZZsr4rYgvceFsTIDGjUDRZ6d1 dNxixHAYmILjkA72IosJCIVvCY+MjENVdIaYV8uc98G74no/Ov59ZNfRMr3HDc58/eaI E72A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744090097; x=1744694897; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=dyw8UrWMalVexYCwsPVo85Sqa5o0WniadOfISww68f8=; b=V2m3La1NrAebvvKalcZEMDN3PZlW1bkru8rMFa9TJx/FbOXvlZr2yhXCckwQ77Cfb0 7x0JV7QtwlGop9sirykSiSO++VItYLzVPiNHMr1ns0tgi776BEZBEAELe1pZKe5kEiB4 r+u3I4iGu8verdU0dBXMFIZ90JGVSOLXFkgUcoltAxmovs6e0DZdbw/Hiq7ZvLnM/Fsl my5tmUN8yV18Y8Qf3/swLXO+h9AS7uuhdEbhma8CcYSnykGoqZI4y/ojPx2S4jl/8WJ4 /noJkB1Mfk90i6tEDfsIvwnG6dU7lbjVLtf9Vm7Z2YfV4iw5LlTTsiiN4U4pp7Am7Fux 9Azg== X-Gm-Message-State: AOJu0Yz9SFVhQ7E98SsOXwzQJErfMLctacM9n+wGrVAF7ZWyiehKEVlh OJgaQud44J6659+9ldIRqTou1GzmYlKdNHBI44zh4U9az8hyb7iWvdjKZvU5uUHNMbdl+N5QHSf /GQouPUJIXd1xyPoUPRLLEhyjvec= X-Gm-Gg: ASbGncsocqqjXXeVsDSWmsjUY5dmBnatZPOWuSe27YrePpE7xqLpHscofCUaWK3VIhL ddrLdoOomnMQ5NH+EMO6IfTgepcqoBrSjDQ8diclVFRpO6TFWG8rA1NvTti1QddyvWRKZP7Mw6E UYHfY7bvClTs5h/wIZb/28DBCJ X-Google-Smtp-Source: AGHT+IGdOU8Is3Ur5K+nd2KhoOic0Elscv9EocBJX64jm1ps0VZC1KiouT2htsPrEqP92RDyuUTBILqA0yv5saA18vs= X-Received: by 2002:a05:690c:6483:b0:6fd:25dc:effe with SMTP id 00721157ae682-703f4291fe0mr199794457b3.25.1744090097367; Mon, 07 Apr 2025 22:28:17 -0700 (PDT) MIME-Version: 1.0 References: <87mscricb7.fsf@melete.silentflame.com> In-Reply-To: From: Paul Nelson Date: Tue, 8 Apr 2025 07:28:05 +0200 X-Gm-Features: ATxdqUGNimGUhRSKTWt0y7sro-11Grt_ZG7O6N2n5U3id7UOGlDcj_lTcmRb_6M Message-ID: Subject: Re: bug#77580: [PATCH] New command ediff-undo To: Sean Whitton Content-Type: multipart/mixed; boundary="000000000000b68c6706323d9ee7" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: 77580@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000b68c6706323d9ee7 Content-Type: multipart/alternative; boundary="000000000000b68c6706323d9ee5" --000000000000b68c6706323d9ee5 Content-Type: text/plain; charset="UTF-8" Attaching the updated patch. --000000000000b68c6706323d9ee5 Content-Type: text/html; charset="UTF-8"
Attaching the updated patch.

--000000000000b68c6706323d9ee5-- --000000000000b68c6706323d9ee7 Content-Type: application/octet-stream; name="0001-Add-diff-with-undo-and-ediff-undo-commands.patch" Content-Disposition: attachment; filename="0001-Add-diff-with-undo-and-ediff-undo-commands.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m9826eh90 RnJvbSA3MmY4ODQxMGM2YjYyYTYzYzU2NjcwYmNjMzA1OTY3MzhiMTlmY2ViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIE5lbHNvbiA8dWx0cm9ub0BnbWFpbC5jb20+CkRhdGU6 IFN1biwgNiBBcHIgMjAyNSAxNToxOTo1MCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIEFkZCBkaWZm LXdpdGgtdW5kbyBhbmQgZWRpZmYtdW5kbyBjb21tYW5kcwoKKiBsaXNwL3ZjL2RpZmYuZWwgKGRp ZmYtd2l0aC11bmRvKToKKiBsaXNwL3ZjL2VkaWZmLmVsIChlZGlmZi11bmRvKTogTmV3IGNvbW1h bmRzIHRvIGNvbXBhcmUgY3VycmVudApidWZmZXIgYW5kIGl0cyB1bmRvIHN0YXRlLgoqIGRvYy9l bWFjcy9maWxlcy50ZXhpIChDb21wYXJpbmcgRmlsZXMpOgoqIGRvYy9taXNjL2VkaWZmLnRleGkg KE1ham9yIEVudHJ5IFBvaW50cyk6IERvY3VtZW50IHRoZW0uCiogbGlzcC9zaW1wbGUuZWwgKHVu ZG8tdG8tYnVmZmVyKTogTmV3IGhlbHBlciBmdW5jdGlvbiwgdXNlZCB0bwppbXBsZW1lbnQgdGhl IGFib3ZlLiAoYnVnIzc3NTgwKQotLS0KIGRvYy9lbWFjcy9maWxlcy50ZXhpIHwgIDQgKysrKwog ZG9jL21pc2MvZWRpZmYudGV4aSAgfCAgNCArKysrCiBldGMvTkVXUyAgICAgICAgICAgICB8IDEw ICsrKysrKysrKysKIGxpc3Avc2ltcGxlLmVsICAgICAgIHwgMjMgKysrKysrKysrKysrKysrKysr KysrKysKIGxpc3AvdmMvZGlmZi5lbCAgICAgIHwgMTUgKysrKysrKysrKysrKysrCiBsaXNwL3Zj L2VkaWZmLmVsICAgICB8IDE2ICsrKysrKysrKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgNzIg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RvYy9lbWFjcy9maWxlcy50ZXhpIGIvZG9jL2Vt YWNzL2ZpbGVzLnRleGkKaW5kZXggNjEyOGJlOGYxMjguLjhkZWU4NGVkMWZhIDEwMDY0NAotLS0g YS9kb2MvZW1hY3MvZmlsZXMudGV4aQorKysgYi9kb2MvZW1hY3MvZmlsZXMudGV4aQpAQCAtMTY4 MCw2ICsxNjgwLDEwIEBAIENvbXBhcmluZyBGaWxlcwogICBUaGUgY29tbWFuZCBAa2Jke00teCBk aWZmLWJ1ZmZlcnN9IGNvbXBhcmVzIHRoZSBjb250ZW50cyBvZiB0d28KIHNwZWNpZmllZCBidWZm ZXJzLgogCitAZmluZGV4IGRpZmYtd2l0aC11bmRvCisgIFRoZSBjb21tYW5kIEBrYmR7TS14IGRp ZmYtd2l0aC11bmRvfSBjb21wYXJlcyB0aGUgY3VycmVudCBidWZmZXIgd2l0aAoraXRzIHVuZG8g c3RhdGVzLgorCiBAZmluZGV4IGNvbXBhcmUtd2luZG93cwogICBUaGUgY29tbWFuZCBAa2Jke00t eCBjb21wYXJlLXdpbmRvd3N9IGNvbXBhcmVzIHRoZSB0ZXh0IGluIHRoZQogY3VycmVudCB3aW5k b3cgd2l0aCB0aGF0IGluIHRoZSB3aW5kb3cgdGhhdCB3YXMgdGhlIHNlbGVjdGVkIHdpbmRvdwpk aWZmIC0tZ2l0IGEvZG9jL21pc2MvZWRpZmYudGV4aSBiL2RvYy9taXNjL2VkaWZmLnRleGkKaW5k ZXggNzNmNzUxZjNhNGIuLjA4MGQ3ZTBjNDMyIDEwMDY0NAotLS0gYS9kb2MvbWlzYy9lZGlmZi50 ZXhpCisrKyBiL2RvYy9taXNjL2VkaWZmLnRleGkKQEAgLTE2NSw2ICsxNjUsMTAgQEAgTWFqb3Ig RW50cnkgUG9pbnRzCiBDb21wYXJlIHRoZSBidWZmZXIgd2l0aCBpdHMgZmlsZSBvbiBkaXNrLiAg VGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCBhcyBhCiBzYWZlIHZlcnNpb24gb2YgQGNvZGV7cmV2 ZXJ0LWJ1ZmZlcn0uCiAKK0BpdGVtIGVkaWZmLXVuZG8KK0BmaW5kZXggZWRpZmYtdW5kbworQ29t cGFyZSB0aGUgYnVmZmVyIG9yIHJlZ2lvbiB3aXRoIGl0cyB1bmRvIHN0YXRlcy4KKwogQGl0ZW0g ZWRpZmYtYnVmZmVycwogQGZpbmRleCBlZGlmZi1idWZmZXJzCiBDb21wYXJlIHR3byBidWZmZXJz LgpkaWZmIC0tZ2l0IGEvZXRjL05FV1MgYi9ldGMvTkVXUwppbmRleCAzNWU2ZWRjZDcxMi4uZjdi ZWQ5OWFmOGYgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBAIC0xMjA3LDYg KzEyMDcsMTIgQEAgb3ZlcmxhcC4KIAogKioqICdkaWZmLWFwcGx5LWh1bmsnIG5vdyBzdXBwb3J0 cyBjcmVhdGluZyBhbmQgZGVsZXRpbmcgZmlsZXMuCiAKKyoqKiBOZXcgY29tbWFuZCAnZGlmZi13 aXRoLXVuZG8nIHRvIGNvbXBhcmUgYnVmZmVyIHdpdGggaXRzIHVuZG8gc3RhdGVzLgorVGhpcyBj b21tYW5kIGNvbXBhcmVzIHRoZSBjdXJyZW50IGJ1ZmZlciBhbmQgaG93IGl0IHdvdWxkIGxvb2sg aWYgdW5kbword2VyZSBwZXJmb3JtZWQuICBXaXRoIGEgcHJlZml4IGFyZ3VtZW50LCBpdCBjb25z aWRlcnMgdGhhdCBtYW55IHVuZG8KK29wZXJhdGlvbnMuICBXaXRoIGFuIGFjdGl2ZSByZWdpb24s IGl0IHJlc3RyaWN0cyBpdHNlbGYgdG8gY2hhbmdlcyBpbgordGhhdCByZWdpb24uCisKIC0tLQog KioqICd2Yy12ZXJzaW9uLWRpZmYnIGFuZCAndmMtcm9vdC12ZXJzaW9uLWRpZmYnIGNoYW5nZWQg ZGVmYXVsdCBmb3IgUkVWMS4KIFRoZXkgc3VnZ2VzdCB0aGUgcHJldmlvdXMgcmV2aXNpb24gYXMg dGhlIGRlZmF1bHQgZm9yIFJFVjEsIG5vdCB0aGUgbGFzdApAQCAtMTI1Niw2ICsxMjYyLDEwIEBA IGFuZCBjb250cm9sIHdpbmRvd3MgY2FuIGJlIGxlZnQgdW5kaXNwbGF5ZWQgYW5kIHRoZSBjb3Jy ZXNwb25kaW5nCiB2YXJpYWJsZSBzZXQgdG8gbmlsLiAgVGhpcyBjaGFuZ2UgZW5hYmxlcyBjdXN0 b20gbGF5b3V0cyB3aXRob3V0CiBhIGNvbnRyb2wgcGFuZWwgd2luZG93LgogCisqKiogTmV3IGNv bW1hbmQgJ2VkaWZmLXVuZG8nIHRvIGNvbXBhcmUgYnVmZmVyIHdpdGggaXRzIHVuZG8gc3RhdGVz LgorVGhpcyBjb21tYW5kIGNvbXBhcmVzIHRoZSBjdXJyZW50IGJ1ZmZlciBhbmQgaG93IGl0IHdv dWxkIGxvb2sgaWYgdW5kbword2VyZSBwZXJmb3JtZWQgKHNlZSBzaW1pbGFyIGVudHJ5IGZvciAn ZGlmZi13aXRoLXVuZG8nKS4KKwogKiogRGlyZWQKIAogKysrCmRpZmYgLS1naXQgYS9saXNwL3Np bXBsZS5lbCBiL2xpc3Avc2ltcGxlLmVsCmluZGV4IDcwMzcxNThkZjhkLi4yYzVkYWY3NDE0NiAx MDA2NDQKLS0tIGEvbGlzcC9zaW1wbGUuZWwKKysrIGIvbGlzcC9zaW1wbGUuZWwKQEAgLTQyNTQs NiArNDI1NCwyOSBAQCB1bmRvLW91dGVyLWxpbWl0LXRydW5jYXRlCiAJCSAgICAgOndhcm5pbmcp CiAgICAgKHNldHEgYnVmZmVyLXVuZG8tbGlzdCBuaWwpCiAgICAgdCkpCisKKyhkZWZ1biB1bmRv LXRvLWJ1ZmZlciAodGFyZ2V0LWJ1ZmZlciBzb3VyY2UtYnVmZmVyIGFyZyAmb3B0aW9uYWwgYmVn IGVuZCkKKyAgIkFwcGx5IEFSRyB1bmRvIG9wZXJhdGlvbnMgZnJvbSBTT1VSQ0UtQlVGRkVSIHRv IFRBUkdFVC1CVUZGRVIuCitUQVJHRVQtQlVGRkVSIGlzIHNldCB0byB0aGUgdW5kb25lIHN0YXRl IG9mIFNPVVJDRS1CVUZGRVIuCitJZiBCRUcgYW5kIEVORCBhcmUgbm9uLW5pbCwgcmVzdHJpY3Qg dW5kbyBvcGVyYXRpb25zIHRvIHRoYXQgcmVnaW9uLgorCitBUkcgaXMgdGhlIG51bWJlciBvZiB1 bmRvIG9wZXJhdGlvbnMgdG8gYXBwbHkgKG11c3QgYmUgbm9uLW5lZ2F0aXZlKS4KK1RoZSBtYWpv ciBtb2RlIG9mIFRBUkdFVC1CVUZGRVIgaXMgc2V0IHRvIG1hdGNoIFNPVVJDRS1CVUZGRVIuIgor ICAod2hlbiAobWludXNwIGFyZykKKyAgICAoZXJyb3IgIk5lZ2F0aXZlIGFyZ3VtZW50ICVkIiBh cmcpKQorICAod2l0aC1jdXJyZW50LWJ1ZmZlciB0YXJnZXQtYnVmZmVyCisgICAgKGVyYXNlLWJ1 ZmZlcikKKyAgICAoaW5zZXJ0LWJ1ZmZlci1zdWJzdHJpbmcgc291cmNlLWJ1ZmZlcikKKyAgICAo c2V0cSBidWZmZXItdW5kby1saXN0CisgICAgICAgICAgKHVuZG8tY29weS1saXN0IChidWZmZXIt bG9jYWwtdmFsdWUgJ2J1ZmZlci11bmRvLWxpc3Qgc291cmNlLWJ1ZmZlcikpKQorICAgIChmdW5j YWxsIChidWZmZXItbG9jYWwtdmFsdWUgJ21ham9yLW1vZGUgc291cmNlLWJ1ZmZlcikpCisgICAg KGlmIChhbmQgYmVnIGVuZCkKKyAgICAgICAgKGxldCAoKHVuZG8taW4tcmVnaW9uIHQpCisgICAg ICAgICAgICAgIChsYXN0LWNvbW1hbmQgbmlsKQorICAgICAgICAgICAgICAodGhpcy1jb21tYW5k ICd1bmRvKSkKKyAgICAgICAgICAodW5kby1zdGFydCBiZWcgZW5kKQorICAgICAgICAgICh1bmRv LW1vcmUgKDErIGFyZykpKQorICAgICAgKHVuZG8gYXJnKSkpKQogDAogOzs7OyBTaGVsbCBjb21t YW5kcwogCmRpZmYgLS1naXQgYS9saXNwL3ZjL2RpZmYuZWwgYi9saXNwL3ZjL2RpZmYuZWwKaW5k ZXggYzhhMWI3YzBlZmEuLmQ3MjQ3OTU5NDA3IDEwMDY0NAotLS0gYS9saXNwL3ZjL2RpZmYuZWwK KysrIGIvbGlzcC92Yy9kaWZmLmVsCkBAIC0yOTUsNiArMjk1LDIxIEBAIGRpZmYtYnVmZmVycwog ICAgICAobGlzdCBvbGRiIG5ld2IgKGRpZmYtc3dpdGNoZXMpKSkpCiAgIChkaWZmIChnZXQtYnVm ZmVyIG9sZCkgKGdldC1idWZmZXIgbmV3KSBzd2l0Y2hlcyBuby1hc3luYykpCiAKKzs7OyMjI2F1 dG9sb2FkCisoZGVmdW4gZGlmZi13aXRoLXVuZG8gKGFyZykKKyAgIlZpZXcgZGlmZmVyZW5jZXMg YmV0d2VlbiBjdXJyZW50IGJ1ZmZlciBhbmQgaXRzIHVuZG8gc3RhdGUKK1dpdGggcHJlZml4IEFS RywgY29uc2lkZXIgdGhhdCBtYW55IHVuZG8gb3BlcmF0aW9ucy4KK1dpdGggYWN0aXZlIHJlZ2lv biwgcmVzdHJpY3QgdG8gb3BlcmF0aW9ucyBpbiB0aGUgcmVnaW9uLgorCitUaGlzIHJlcXVpcmVz IHRoZSBleHRlcm5hbCBwcm9ncmFtIGBkaWZmJyB0byBiZSBpbiB5b3VyIGBleGVjLXBhdGgnLiIK KyAgKGludGVyYWN0aXZlICJwIikKKyAgKGxldCogKChiZWcgKHVzZS1yZWdpb24tYmVnaW5uaW5n KSkKKyAgICAgICAgIChlbmQgKHVzZS1yZWdpb24tZW5kKSkKKyAgICAgICAgIChvcmlnLWJ1ZiAo Y3VycmVudC1idWZmZXIpKSkKKyAgICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgICAgKHVuZG8tdG8t YnVmZmVyIChjdXJyZW50LWJ1ZmZlcikgb3JpZy1idWYgYXJnIGJlZyBlbmQpCisgICAgICAoZGlm Zi1idWZmZXJzIChjdXJyZW50LWJ1ZmZlcikgb3JpZy1idWYgbmlsICdub2FzeW5jKSkpKQorCiAo cHJvdmlkZSAnZGlmZikKIAogOzs7IGRpZmYuZWwgZW5kcyBoZXJlCmRpZmYgLS1naXQgYS9saXNw L3ZjL2VkaWZmLmVsIGIvbGlzcC92Yy9lZGlmZi5lbAppbmRleCBiYzg5YjIwMjVmZi4uNDM2YjQx ODAxZDggMTAwNjQ0Ci0tLSBhL2xpc3AvdmMvZWRpZmYuZWwKKysrIGIvbGlzcC92Yy9lZGlmZi5l bApAQCAtNDAwLDYgKzQwMCwyMiBAQCBlZGlmZi1jdXJyZW50LWZpbGUKICAgICAgIChmdW5jYWxs IGN1cnJlbnQtbWFqb3IpKQogICAgIChlZGlmZi1idWZmZXJzIHJldmVydC1idWYgKGN1cnJlbnQt YnVmZmVyKSBzdGFydHVwLWhvb2tzKSkpCiAKKzs7OyMjI2F1dG9sb2FkCisoZGVmdW4gZWRpZmYt dW5kbyAoYXJnICZvcHRpb25hbCBzdGFydHVwLWhvb2tzKQorICAiUnVuIEVkaWZmIG9uIGN1cnJl bnQgYnVmZmVyIGFuZCBpdHMgdW5kbyBzdGF0ZXMuCitDb21wYXJlIGJ1ZmZlciB0byBob3cgaXQg d291bGQgYmUgaWYgdW5kbyB3ZXJlIHBlcmZvcm1lZC4KK1dpdGggcHJlZml4IEFSRywgY29uc2lk ZXIgdGhhdCBtYW55IHVuZG8gb3BlcmF0aW9ucy4KK1dpdGggYWN0aXZlIHJlZ2lvbiwgcmVzdHJp Y3QgdG8gb3BlcmF0aW9ucyBpbiB0aGUgcmVnaW9uLgorCitOb24taW50ZXJhY3RpdmVseSwgU1RB UlRVUC1IT09LUyBpcyBhIGxpc3Qgb2YgZnVuY3Rpb25zIHRoYXQgRW1hY3MgY2FsbHMKK3dpdGhv dXQgYXJndW1lbnRzIGFmdGVyIHNldHRpbmcgdXAgdGhlIEVkaWZmIGJ1ZmZlcnMuIgorICAoaW50 ZXJhY3RpdmUgInAiKQorICAobGV0KiAoKGJlZyAodXNlLXJlZ2lvbi1iZWdpbm5pbmcpKQorICAg ICAgICAgKGVuZCAodXNlLXJlZ2lvbi1lbmQpKQorICAgICAgICAgKHVuZG8tYnVmLW5hbWUgKGdl bmVyYXRlLW5ldy1idWZmZXItbmFtZSAiKmVkaWZmLXVuZG8qIikpCisgICAgICAgICAodW5kby1i dWYgKGdldC1idWZmZXItY3JlYXRlIHVuZG8tYnVmLW5hbWUpKSkKKyAgICAodW5kby10by1idWZm ZXIgdW5kby1idWYgKGN1cnJlbnQtYnVmZmVyKSBhcmcgYmVnIGVuZCkKKyAgICAoZWRpZmYtYnVm ZmVycyB1bmRvLWJ1ZiAoY3VycmVudC1idWZmZXIpIHN0YXJ0dXAtaG9va3MpKSkKIAogOzs7IyMj YXV0b2xvYWQKIChkZWZ1biBlZGlmZi1iYWNrdXAgKGZpbGUpCi0tIAoyLjM5LjMgKEFwcGxlIEdp dC0xNDUpCgo= --000000000000b68c6706323d9ee7-- From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 08 03:01:13 2025 Received: (at 77580) by debbugs.gnu.org; 8 Apr 2025 07:01:13 +0000 Received: from localhost ([127.0.0.1]:58576 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u22xN-0006SR-3k for submit@debbugs.gnu.org; Tue, 08 Apr 2025 03:01:13 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:57062) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u22xJ-0006Rq-OQ for 77580@debbugs.gnu.org; Tue, 08 Apr 2025 03:01:11 -0400 DKIM-Signature: a=rsa-sha256; b=5odjWjfqSB71HPkn5zKkYXYpvq8sRsTD+LilLh4fkWt160gigObxnfJtQbMJ9pHz1tFf2z2tdc3PC+WU8HbBYIFI/LcE6yidwU4Ljy2PYvXPecxJ7hQCE3u75tg3+2gQ5vnsPiICiTMZE+wnn2zMzBUP9m7WTP/C09uOqOeQW3qL887AyjaVkghP3lWirovOVreG4WDBQOI3VAkeHfqXsUFOnVY6muAYLQqrAicgyBGZJrurlL6Lj6+kS5l3cMjBEwHH9j8dcLAoyJm0XjGzxsCP88mXHQmC/bjEG1i241k1dFQk+gU6Fdm7/qM8tKyC3iHOBmRTadZhb9eY9wskjA==; s=purelymail1; d=spwhitton.name; v=1; bh=k1P28M4b8GZ2WvkUkPqRdllsjn+DWof0gXIxtDAlbUk=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=bPSjv+R+Pcs3XT9tVOsFaQ7u0wVP0OMaWSvZfkv0Qdt65efdWbouR2I3Ri3IYO2MkCQcKJNrS6G99iYtskBXWpV4FEsndU60DRUHvZh9gSTCS2+SpLbIIMmP32fFC2jbXOwiUjCc6hBEKwOisctB9jmi/efiXD4X6Fk4AU4QIlkOMWhG3HpKbghdXJlh9ZV0rJwhMNA6+LjG1BGgbK9n0RDb3sqCMFGvR+tiiZ4d5B0gSIvxOaNwsApr9xjUrSNoxRToB3hMaY+gUXKRkBsJLOzWGrgOr7UX4yNayG2WU0iP2kpMmKwLuL4i0gyRXbH2flSXRpqWJLQMwaoEPNVLgw==; s=purelymail1; d=purelymail.com; v=1; bh=k1P28M4b8GZ2WvkUkPqRdllsjn+DWof0gXIxtDAlbUk=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 77580@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 386298680; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Tue, 08 Apr 2025 07:01:00 +0000 (UTC) Received: by melete.silentflame.com (Postfix, from userid 1000) id 5407F7E7E92; Tue, 08 Apr 2025 15:00:57 +0800 (CST) From: Sean Whitton To: "Paul D. Nelson" Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: References: Date: Tue, 08 Apr 2025 15:00:57 +0800 Message-ID: <87tt6zgms6.fsf@melete.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: 77580@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Tue 08 Apr 2025 at 07:25am +02, Paul D. Nelson wrote: > As I see it, the advantages of "ediff-undo" are internal consistency > with user-facing ediff-* commands, and brevity (for the command name, > and buffer names like "*ediff-undo*"). The disadvantage is that it is > not quite parallel to "diff-with-undo". On the other hand, the two sets > of commands are already not particularly consistent in their naming. Yes, fine, ediff-undo and diff-with-undo it is. > Let me know if you think this feature seems worth including. I lean > towards "no" out of a desire to keep the new commands consistent with > "undo" itself, which does not accept a negative argument. Yes, I think that we should leave this out. >>> I hadn't thought about automatic detection along the lines that you >>> suggest. I think I'm happy to leave that for now, either to a >>> refinement of this command or a future one. >> >> To be honest, I don't like adding a command where the normal way to use >> it is to spam C-u. The normal way to use it should be easy to access. >> So let's try to think of something better. > > Agreed. > > Thinking further, this scenario seems niche rather than normal. The > original intent might be met more directly by some new command such as > revert-buffer-in-region, diff-buffer-with-file-in-region, > vc-diff-in-region, diff-backup-in-region, (...). > > The situation resembles that of the undo command itself. Typically, we > should either undo small amounts, or resort to one of the structural > undo-like commands tied to file or VC status. Only rarely should we > need to do something like C-99 C-/ (possibly in a region), but that > option remains a useful fallback. So just to confirm, we both think that it would be good to come up with a different command to satisfy the original use cases, because doing it with ediff-undo and diff-with-undo requires spamming C-u, and that's unergonomic? (I ask because you posted an updated patch after writing the above). Of your suggestions here, my first thought is that maybe C-x x g could start operating only on an active region, if there is one. That seems like a great new feature. -- Sean Whitton From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 08 03:25:31 2025 Received: (at 77580) by debbugs.gnu.org; 8 Apr 2025 07:25:31 +0000 Received: from localhost ([127.0.0.1]:58644 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u23Ks-0008Ns-JE for submit@debbugs.gnu.org; Tue, 08 Apr 2025 03:25:31 -0400 Received: from mail-ed1-x52a.google.com ([2a00:1450:4864:20::52a]:52690) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u23Kp-0008NG-6J for 77580@debbugs.gnu.org; Tue, 08 Apr 2025 03:25:27 -0400 Received: by mail-ed1-x52a.google.com with SMTP id 4fb4d7f45d1cf-5e5e8274a74so8452999a12.1 for <77580@debbugs.gnu.org>; Tue, 08 Apr 2025 00:25:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744097120; x=1744701920; darn=debbugs.gnu.org; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=sn7tToqUUM8gPCKR6xe7X7R8Xq3ZDYGERyfzRmXeRVE=; b=US5MaFqE3Z0QsEnnKTV5gXLjvh5V7VkPhx76UV/6/CSwCBpzODvRzxioG/stuLYQO1 bIB73pYBYCBnbUrLEBNCqdt7nmwbfPUJO1pBjl6CBP3W52eYzYgLepCdYTbcmfB0Cyxs n0KjWCRo/Xs7XDE+02489B1Y9SxynwJDx3l7pV2Kp1aPWxeByBEqDWHtBQvcjs/r9vMp 4I+v/13xLU3QXgs9INsmAgDt09/8YdXsKVy4onhdWU2DHc+uQ4Zp/M0BJfycNLar/+T5 AWulgxta+pgBPIPsVvmYMDncJeSMkOc1L+tRnvSGMT57CD81+pAC9Wxvw29qUfENzTJM iPIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744097120; x=1744701920; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=sn7tToqUUM8gPCKR6xe7X7R8Xq3ZDYGERyfzRmXeRVE=; b=KiQOvgSal/Pq5Pata9V4EfofV+4FyWWuLdof6VcHqrGQlKdxxi4kjFK6Z4Ix96aXOi OwP0zxh3KVaCEHSDyp96AUynv8+vn9kxlI1cIE87kIOLkH1GXcuSQC27KMkIXWbIHsqk BnhGc4GE2EFCkSSdvWQ19G0dV4Qjplq/y81/wh9t1+X5oItgINVe4/YM0kKsTE5TayQZ QSGQYKDjL4zohh7ufjrKmy4PdYij5+6C+VmhlfBunQZ/FvhYbzVHH+RchKZD+DjVsn5w ewcLgpL2taYPq0KwYNi0qF1KdnP0C5ln0/Ap2b2mutlQWC2LewcAgNsq1Yxpi7dA71h0 rRkA== X-Gm-Message-State: AOJu0YxIskzDxgw/rRre5jhZ0bUYZJHrPdcSGCVN5+74pslv9wBR7m5i VgP2JZeVgKH1qG8hDstwsUoCgyZRGl4HQ8nXjeYuXnA+3ZbULzGjQfI2dk3L X-Gm-Gg: ASbGncsf7fA+OKf1uzeDlIBHqCtJxatvUnXg9OevKKDWFRkEUjZE/usP0Yq2kYa2VSX hVmNkR7xZw4R/230Qcec5MD76ZiEbS5UHTGa9+PT+IYYAUVXw88kYijDf/OZqCqB8pnUONQZDzc 3qQblNduGPQX2Drzt6JGv5jSctFDjIXhrLBKLr6UVjfBURvKL+2OMiLh7IqWOc8OrNKnleLmdrA c2/3uw9/Ar6Viuvm/Dw2iqPnew9ApfIQzlgV1WH0q4A+UMxS4u1d1Ef1AS3exxsgriQsEm4oFKt /7SM33csG30bVUMTZZ/jkGfZ/Q5TM0F5/DnuLYTOG0uS28u0YV1eLnN2Q1UY/wvKsc4d+bqsAZZ MrF8KhXfsbA== X-Google-Smtp-Source: AGHT+IEHGCWCQdAf5NFvcWhq1AZ5tCq+9+Vx21NXjRJ2OQbs1biviwQ4vylxcgsX2FmZ6B89JjVdhQ== X-Received: by 2002:a17:907:3f8d:b0:ac6:fc40:c996 with SMTP id a640c23a62f3a-ac7d17b6e01mr1452637266b.23.1744097119883; Tue, 08 Apr 2025 00:25:19 -0700 (PDT) Received: from localhost (0x573d6713.static.cust.fastspeed.dk. [87.61.103.19]) by smtp.gmail.com with UTF8SMTPSA id a640c23a62f3a-ac7c013f646sm854731366b.120.2025.04.08.00.25.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Apr 2025 00:25:19 -0700 (PDT) From: "Paul D. Nelson" To: Sean Whitton Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: <87tt6zgms6.fsf@melete.silentflame.com> (message from Sean Whitton on Tue, 08 Apr 2025 15:00:57 +0800) Date: Tue, 08 Apr 2025 09:25:17 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: 77580@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Sean, >>>> I hadn't thought about automatic detection along the lines that you >>>> suggest. I think I'm happy to leave that for now, either to a >>>> refinement of this command or a future one. >>> >>> To be honest, I don't like adding a command where the normal way to use >>> it is to spam C-u. The normal way to use it should be easy to access. >>> So let's try to think of something better. >> >> Agreed. >> >> Thinking further, this scenario seems niche rather than normal. The >> original intent might be met more directly by some new command such as >> revert-buffer-in-region, diff-buffer-with-file-in-region, >> vc-diff-in-region, diff-backup-in-region, (...). >> >> The situation resembles that of the undo command itself. Typically, we >> should either undo small amounts, or resort to one of the structural >> undo-like commands tied to file or VC status. Only rarely should we >> need to do something like C-99 C-/ (possibly in a region), but that >> option remains a useful fallback. > > So just to confirm, we both think that it would be good to come up with > a different command to satisfy the original use cases, because doing it > with ediff-undo and diff-with-undo requires spamming C-u, and that's > unergonomic? (I ask because you posted an updated patch after writing > the above). To clarify, by "original intent", I was referring to your suggestion of detecting automatically how far back to undo. The C-u spamming is relevant in an edge case, not the typical use case for ediff-undo and diff-with-undo. It's analogous to how for regular undo, it's occasionally useful to do C-999 C-/. In my view, the current patch meets its primary goals well, but I'd welcome a broader discussion of related enhancements or other commands. > Of your suggestions here, my first thought is that maybe C-x x g could > start operating only on an active region, if there is one. That seems > like a great new feature. Yes, that sounds excellent. Paul From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 08 10:50:58 2025 Received: (at 77580) by debbugs.gnu.org; 8 Apr 2025 14:50:58 +0000 Received: from localhost ([127.0.0.1]:34514 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u2AHx-0003vN-Sw for submit@debbugs.gnu.org; Tue, 08 Apr 2025 10:50:58 -0400 Received: from mail-yw1-x112a.google.com ([2607:f8b0:4864:20::112a]:54413) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u2AHq-0003tx-0z for 77580@debbugs.gnu.org; Tue, 08 Apr 2025 10:50:54 -0400 Received: by mail-yw1-x112a.google.com with SMTP id 00721157ae682-6fedefb1c9cso47262007b3.0 for <77580@debbugs.gnu.org>; Tue, 08 Apr 2025 07:50:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744123844; x=1744728644; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=E3woNKJNCursM80bNZjCozsaGcYHV/95VDAYKXyYIBs=; b=V3yl5UiiwgC9eMP39vbSF6d2n/Ys7AXPagwRjo1HsG928kURxlIXauYqwUEskOvCYi FgxK+f6OfweA4q0V/w+jRMGJYeBNl+wjqZ+vo7nZ+rQF/AEUBnD+ydqmOEtjniomAWZC Cl+UqcOsrRuct/N7tDmnNUvCQz32Itm/Wz5wPDqSX40yulSPWrh/zgBL8+DfjAOxyZyR ZNrBa4NS2dzf+boe72zMGrEwIdN7DgN2eHKztCw5z8Uws2FFk+a7dx6Z5xUe9ayUQgVY h2T3hk23V4P4hEy/GGp2j0QN5CyU+llRqqSJrzkdQhuC4qx6LGH6jvalMd+mmBcvBUac JYTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744123844; x=1744728644; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=E3woNKJNCursM80bNZjCozsaGcYHV/95VDAYKXyYIBs=; b=h/aB924UrPFkihE0LECNbIxXpVvPu1sciewiItYYPw+pTv3a5aMZBo7JbDhKXd1Xwb aar6vyf75MDf8iyNaFEkr74IZvm9q/5l2gSalWG099Nm/8gCV8KUX+IQqh6tQPSH1cTw FX3j2wzfhXMucpN9xtw5xCBUBVHYwPfqnDDMMUtO9CeNv+LYUg11KDsB2oQdHFuZvatn odOmOIoWANObEtdPwIY33+FyOLMvS+zTI8D+v2WeHetsxUyZ6JOXjLBNPeCPmQisUgbk cmkEhfMg3wpB0UJr65F/dwcsuXPToAz1OCjao1+NRiQTjrZl8Eq2YjMCmfJAzTisbZh8 MNiw== X-Gm-Message-State: AOJu0Ywesw/R4N5Z3VeC/lXd/lafrpapWT/hEpgb6CoDsc4VRrMxs4f7 Owzb0MFAPqhbAizwBrLz1LfRy2rPp6KRDBnJfxPYlxTGwCLwoulrn+i91bXONlklTjoHEz4HG1t 5kM/kTxa0W0zm3m3qGD9EkBtFKWZEbKQu X-Gm-Gg: ASbGnctHpDuZMzgOhU3yLOEQGdomPx28Q6K5lYqNSpCaLVwh9c9vQWKctQFeTZeRHRV O/0Yo6jEqcitV3l4rdp2C9Mzs34h8rfdsCW6IPVobjeC/kSTX6UMzhGQ6w2sgWhEooXJreFgKYF MFegAD0p4mRyh6Xrcg4g7drsRZ8Q== X-Google-Smtp-Source: AGHT+IEKZaKWCfd5bYk9AHXaiSmcttpyqDQ8eZ0ytQWxQpX8ehwdiiNvDgxgZYslokon3ykebfBe6r1YwNYKb6xjt3Q= X-Received: by 2002:a05:690c:3508:b0:6ef:9e74:c09b with SMTP id 00721157ae682-703e1646ca9mr300336137b3.33.1744123843954; Tue, 08 Apr 2025 07:50:43 -0700 (PDT) MIME-Version: 1.0 References: <87mscricb7.fsf@melete.silentflame.com> In-Reply-To: From: Paul Nelson Date: Tue, 8 Apr 2025 16:50:31 +0200 X-Gm-Features: ATxdqUEPQQR53VtrkNBbZzABQJf92xKmXSnkXRhBfpvjmBKJrILwljl6JPO1gf0 Message-ID: Subject: Re: bug#77580: [PATCH] New command ediff-undo To: Sean Whitton Content-Type: multipart/mixed; boundary="0000000000002a04d20632457adf" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: 77580@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --0000000000002a04d20632457adf Content-Type: multipart/alternative; boundary="0000000000002a04d00632457add" --0000000000002a04d00632457add Content-Type: text/plain; charset="UTF-8" And (with apologies for the spam) a further, hopefully final update, that works in narrowed buffers. --0000000000002a04d00632457add Content-Type: text/html; charset="UTF-8"
And (with apologies for the spam) a further, hopefully final update, that works in narrowed buffers.

--0000000000002a04d00632457add-- --0000000000002a04d20632457adf Content-Type: application/octet-stream; name="0001-Add-diff-with-undo-and-ediff-undo-commands.patch" Content-Disposition: attachment; filename="0001-Add-diff-with-undo-and-ediff-undo-commands.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m98m7xrt0 RnJvbSA1YjUwZGMwMjliZmJlYTUwOGZlODUxNTQ2OTk4NzlkZDBkYjk5YzUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIE5lbHNvbiA8dWx0cm9ub0BnbWFpbC5jb20+CkRhdGU6 IFN1biwgNiBBcHIgMjAyNSAxNToxOTo1MCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIEFkZCBkaWZm LXdpdGgtdW5kbyBhbmQgZWRpZmYtdW5kbyBjb21tYW5kcwoKKiBsaXNwL3ZjL2RpZmYuZWwgKGRp ZmYtd2l0aC11bmRvKToKKiBsaXNwL3ZjL2VkaWZmLmVsIChlZGlmZi11bmRvKTogTmV3IGNvbW1h bmRzIHRvIGNvbXBhcmUgY3VycmVudApidWZmZXIgYW5kIGl0cyB1bmRvIHN0YXRlLgoqIGRvYy9l bWFjcy9maWxlcy50ZXhpIChDb21wYXJpbmcgRmlsZXMpOgoqIGRvYy9taXNjL2VkaWZmLnRleGkg KE1ham9yIEVudHJ5IFBvaW50cyk6IERvY3VtZW50IHRoZW0uCiogbGlzcC9zaW1wbGUuZWwgKHVu ZG8tdG8tYnVmZmVyKTogTmV3IGhlbHBlciBmdW5jdGlvbiwgdXNlZCB0bwppbXBsZW1lbnQgdGhl IGFib3ZlLiAoYnVnIzc3NTgwKQotLS0KIGRvYy9lbWFjcy9maWxlcy50ZXhpIHwgIDQgKysrKwog ZG9jL21pc2MvZWRpZmYudGV4aSAgfCAgNCArKysrCiBldGMvTkVXUyAgICAgICAgICAgICB8IDEw ICsrKysrKysrKysKIGxpc3Avc2ltcGxlLmVsICAgICAgIHwgMzMgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiBsaXNwL3ZjL2RpZmYuZWwgICAgICB8IDE1ICsrKysrKysrKysrKysr KwogbGlzcC92Yy9lZGlmZi5lbCAgICAgfCAxNiArKysrKysrKysrKysrKysrCiA2IGZpbGVzIGNo YW5nZWQsIDgyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kb2MvZW1hY3MvZmlsZXMudGV4 aSBiL2RvYy9lbWFjcy9maWxlcy50ZXhpCmluZGV4IDYxMjhiZThmMTI4Li44ZGVlODRlZDFmYSAx MDA2NDQKLS0tIGEvZG9jL2VtYWNzL2ZpbGVzLnRleGkKKysrIGIvZG9jL2VtYWNzL2ZpbGVzLnRl eGkKQEAgLTE2ODAsNiArMTY4MCwxMCBAQCBDb21wYXJpbmcgRmlsZXMKICAgVGhlIGNvbW1hbmQg QGtiZHtNLXggZGlmZi1idWZmZXJzfSBjb21wYXJlcyB0aGUgY29udGVudHMgb2YgdHdvCiBzcGVj aWZpZWQgYnVmZmVycy4KIAorQGZpbmRleCBkaWZmLXdpdGgtdW5kbworICBUaGUgY29tbWFuZCBA a2Jke00teCBkaWZmLXdpdGgtdW5kb30gY29tcGFyZXMgdGhlIGN1cnJlbnQgYnVmZmVyIHdpdGgK K2l0cyB1bmRvIHN0YXRlcy4KKwogQGZpbmRleCBjb21wYXJlLXdpbmRvd3MKICAgVGhlIGNvbW1h bmQgQGtiZHtNLXggY29tcGFyZS13aW5kb3dzfSBjb21wYXJlcyB0aGUgdGV4dCBpbiB0aGUKIGN1 cnJlbnQgd2luZG93IHdpdGggdGhhdCBpbiB0aGUgd2luZG93IHRoYXQgd2FzIHRoZSBzZWxlY3Rl ZCB3aW5kb3cKZGlmZiAtLWdpdCBhL2RvYy9taXNjL2VkaWZmLnRleGkgYi9kb2MvbWlzYy9lZGlm Zi50ZXhpCmluZGV4IDczZjc1MWYzYTRiLi4wODBkN2UwYzQzMiAxMDA2NDQKLS0tIGEvZG9jL21p c2MvZWRpZmYudGV4aQorKysgYi9kb2MvbWlzYy9lZGlmZi50ZXhpCkBAIC0xNjUsNiArMTY1LDEw IEBAIE1ham9yIEVudHJ5IFBvaW50cwogQ29tcGFyZSB0aGUgYnVmZmVyIHdpdGggaXRzIGZpbGUg b24gZGlzay4gIFRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgYXMgYQogc2FmZSB2ZXJzaW9uIG9m IEBjb2Rle3JldmVydC1idWZmZXJ9LgogCitAaXRlbSBlZGlmZi11bmRvCitAZmluZGV4IGVkaWZm LXVuZG8KK0NvbXBhcmUgdGhlIGJ1ZmZlciBvciByZWdpb24gd2l0aCBpdHMgdW5kbyBzdGF0ZXMu CisKIEBpdGVtIGVkaWZmLWJ1ZmZlcnMKIEBmaW5kZXggZWRpZmYtYnVmZmVycwogQ29tcGFyZSB0 d28gYnVmZmVycy4KZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXggMzVlNmVk Y2Q3MTIuLmY3YmVkOTlhZjhmIDEwMDY0NAotLS0gYS9ldGMvTkVXUworKysgYi9ldGMvTkVXUwpA QCAtMTIwNyw2ICsxMjA3LDEyIEBAIG92ZXJsYXAuCiAKICoqKiAnZGlmZi1hcHBseS1odW5rJyBu b3cgc3VwcG9ydHMgY3JlYXRpbmcgYW5kIGRlbGV0aW5nIGZpbGVzLgogCisqKiogTmV3IGNvbW1h bmQgJ2RpZmYtd2l0aC11bmRvJyB0byBjb21wYXJlIGJ1ZmZlciB3aXRoIGl0cyB1bmRvIHN0YXRl cy4KK1RoaXMgY29tbWFuZCBjb21wYXJlcyB0aGUgY3VycmVudCBidWZmZXIgYW5kIGhvdyBpdCB3 b3VsZCBsb29rIGlmIHVuZG8KK3dlcmUgcGVyZm9ybWVkLiAgV2l0aCBhIHByZWZpeCBhcmd1bWVu dCwgaXQgY29uc2lkZXJzIHRoYXQgbWFueSB1bmRvCitvcGVyYXRpb25zLiAgV2l0aCBhbiBhY3Rp dmUgcmVnaW9uLCBpdCByZXN0cmljdHMgaXRzZWxmIHRvIGNoYW5nZXMgaW4KK3RoYXQgcmVnaW9u LgorCiAtLS0KICoqKiAndmMtdmVyc2lvbi1kaWZmJyBhbmQgJ3ZjLXJvb3QtdmVyc2lvbi1kaWZm JyBjaGFuZ2VkIGRlZmF1bHQgZm9yIFJFVjEuCiBUaGV5IHN1Z2dlc3QgdGhlIHByZXZpb3VzIHJl dmlzaW9uIGFzIHRoZSBkZWZhdWx0IGZvciBSRVYxLCBub3QgdGhlIGxhc3QKQEAgLTEyNTYsNiAr MTI2MiwxMCBAQCBhbmQgY29udHJvbCB3aW5kb3dzIGNhbiBiZSBsZWZ0IHVuZGlzcGxheWVkIGFu ZCB0aGUgY29ycmVzcG9uZGluZwogdmFyaWFibGUgc2V0IHRvIG5pbC4gIFRoaXMgY2hhbmdlIGVu YWJsZXMgY3VzdG9tIGxheW91dHMgd2l0aG91dAogYSBjb250cm9sIHBhbmVsIHdpbmRvdy4KIAor KioqIE5ldyBjb21tYW5kICdlZGlmZi11bmRvJyB0byBjb21wYXJlIGJ1ZmZlciB3aXRoIGl0cyB1 bmRvIHN0YXRlcy4KK1RoaXMgY29tbWFuZCBjb21wYXJlcyB0aGUgY3VycmVudCBidWZmZXIgYW5k IGhvdyBpdCB3b3VsZCBsb29rIGlmIHVuZG8KK3dlcmUgcGVyZm9ybWVkIChzZWUgc2ltaWxhciBl bnRyeSBmb3IgJ2RpZmYtd2l0aC11bmRvJykuCisKICoqIERpcmVkCiAKICsrKwpkaWZmIC0tZ2l0 IGEvbGlzcC9zaW1wbGUuZWwgYi9saXNwL3NpbXBsZS5lbAppbmRleCA3MDM3MTU4ZGY4ZC4uNjg0 ZTRiODgzY2YgMTAwNjQ0Ci0tLSBhL2xpc3Avc2ltcGxlLmVsCisrKyBiL2xpc3Avc2ltcGxlLmVs CkBAIC00MjU0LDYgKzQyNTQsMzkgQEAgdW5kby1vdXRlci1saW1pdC10cnVuY2F0ZQogCQkgICAg IDp3YXJuaW5nKQogICAgIChzZXRxIGJ1ZmZlci11bmRvLWxpc3QgbmlsKQogICAgIHQpKQorCiso ZGVmdW4gdW5kby10by1idWZmZXIgKHRhcmdldC1idWZmZXIgc291cmNlLWJ1ZmZlciBhcmcgJm9w dGlvbmFsIGJlZyBlbmQpCisgICJBcHBseSBBUkcgdW5kbyBvcGVyYXRpb25zIGZyb20gU09VUkNF LUJVRkZFUiB0byBUQVJHRVQtQlVGRkVSLgorVEFSR0VULUJVRkZFUiBpcyBzZXQgdG8gdGhlIHVu ZG9uZSBzdGF0ZSBvZiBTT1VSQ0UtQlVGRkVSLgorSWYgQkVHIGFuZCBFTkQgYXJlIG5vbi1uaWws IHJlc3RyaWN0IHVuZG8gb3BlcmF0aW9ucyB0byB0aGF0IHJlZ2lvbi4KKworQVJHIGlzIHRoZSBu dW1iZXIgb2YgdW5kbyBvcGVyYXRpb25zIHRvIGFwcGx5IChtdXN0IGJlIG5vbi1uZWdhdGl2ZSku CitUaGUgbWFqb3IgbW9kZSBvZiBUQVJHRVQtQlVGRkVSIGlzIHNldCB0byBtYXRjaCBTT1VSQ0Ut QlVGRkVSLiIKKyAgKHdoZW4gKG1pbnVzcCBhcmcpCisgICAgKGVycm9yICJOZWdhdGl2ZSBhcmd1 bWVudCAlZCIgYXJnKSkKKyAgKHdpdGgtY3VycmVudC1idWZmZXIgdGFyZ2V0LWJ1ZmZlcgorICAg IChlcmFzZS1idWZmZXIpCisgICAgKGxldCAoc3JjLW1pbiBzcmMtbWF4KQorICAgICAgKHdpdGgt Y3VycmVudC1idWZmZXIgc291cmNlLWJ1ZmZlcgorICAgICAgICAod2hlbiAoYnVmZmVyLW5hcnJv d2VkLXApCisgICAgICAgICAgKHNldHEgc3JjLW1pbiAocG9pbnQtbWluKQorICAgICAgICAgICAg ICAgIHNyYy1tYXggKHBvaW50LW1heCkpKQorICAgICAgICAoc2F2ZS1yZXN0cmljdGlvbgorICAg ICAgICAgICh3aWRlbikKKyAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciB0YXJnZXQtYnVm ZmVyCisgICAgICAgICAgICAoaW5zZXJ0LWJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBz b3VyY2UtYnVmZmVyKSkpKQorICAgICAgKHdoZW4gc3JjLW1pbgorICAgICAgICAobmFycm93LXRv LXJlZ2lvbiBzcmMtbWluIHNyYy1tYXgpKSkKKyAgICAoc2V0cSBidWZmZXItdW5kby1saXN0Cisg ICAgICAgICAgKHVuZG8tY29weS1saXN0IChidWZmZXItbG9jYWwtdmFsdWUgJ2J1ZmZlci11bmRv LWxpc3Qgc291cmNlLWJ1ZmZlcikpKQorICAgIChmdW5jYWxsIChidWZmZXItbG9jYWwtdmFsdWUg J21ham9yLW1vZGUgc291cmNlLWJ1ZmZlcikpCisgICAgKGlmIChhbmQgYmVnIGVuZCkKKyAgICAg ICAgKGxldCAoKHVuZG8taW4tcmVnaW9uIHQpCisgICAgICAgICAgICAgIChsYXN0LWNvbW1hbmQg bmlsKQorICAgICAgICAgICAgICAodGhpcy1jb21tYW5kICd1bmRvKSkKKyAgICAgICAgICAodW5k by1zdGFydCBiZWcgZW5kKQorICAgICAgICAgICh1bmRvLW1vcmUgKDErIGFyZykpKQorICAgICAg KHVuZG8gYXJnKSkpKQogDAogOzs7OyBTaGVsbCBjb21tYW5kcwogCmRpZmYgLS1naXQgYS9saXNw L3ZjL2RpZmYuZWwgYi9saXNwL3ZjL2RpZmYuZWwKaW5kZXggYzhhMWI3YzBlZmEuLmQ3MjQ3OTU5 NDA3IDEwMDY0NAotLS0gYS9saXNwL3ZjL2RpZmYuZWwKKysrIGIvbGlzcC92Yy9kaWZmLmVsCkBA IC0yOTUsNiArMjk1LDIxIEBAIGRpZmYtYnVmZmVycwogICAgICAobGlzdCBvbGRiIG5ld2IgKGRp ZmYtc3dpdGNoZXMpKSkpCiAgIChkaWZmIChnZXQtYnVmZmVyIG9sZCkgKGdldC1idWZmZXIgbmV3 KSBzd2l0Y2hlcyBuby1hc3luYykpCiAKKzs7OyMjI2F1dG9sb2FkCisoZGVmdW4gZGlmZi13aXRo LXVuZG8gKGFyZykKKyAgIlZpZXcgZGlmZmVyZW5jZXMgYmV0d2VlbiBjdXJyZW50IGJ1ZmZlciBh bmQgaXRzIHVuZG8gc3RhdGUKK1dpdGggcHJlZml4IEFSRywgY29uc2lkZXIgdGhhdCBtYW55IHVu ZG8gb3BlcmF0aW9ucy4KK1dpdGggYWN0aXZlIHJlZ2lvbiwgcmVzdHJpY3QgdG8gb3BlcmF0aW9u cyBpbiB0aGUgcmVnaW9uLgorCitUaGlzIHJlcXVpcmVzIHRoZSBleHRlcm5hbCBwcm9ncmFtIGBk aWZmJyB0byBiZSBpbiB5b3VyIGBleGVjLXBhdGgnLiIKKyAgKGludGVyYWN0aXZlICJwIikKKyAg KGxldCogKChiZWcgKHVzZS1yZWdpb24tYmVnaW5uaW5nKSkKKyAgICAgICAgIChlbmQgKHVzZS1y ZWdpb24tZW5kKSkKKyAgICAgICAgIChvcmlnLWJ1ZiAoY3VycmVudC1idWZmZXIpKSkKKyAgICAo d2l0aC10ZW1wLWJ1ZmZlcgorICAgICAgKHVuZG8tdG8tYnVmZmVyIChjdXJyZW50LWJ1ZmZlcikg b3JpZy1idWYgYXJnIGJlZyBlbmQpCisgICAgICAoZGlmZi1idWZmZXJzIChjdXJyZW50LWJ1ZmZl cikgb3JpZy1idWYgbmlsICdub2FzeW5jKSkpKQorCiAocHJvdmlkZSAnZGlmZikKIAogOzs7IGRp ZmYuZWwgZW5kcyBoZXJlCmRpZmYgLS1naXQgYS9saXNwL3ZjL2VkaWZmLmVsIGIvbGlzcC92Yy9l ZGlmZi5lbAppbmRleCBiYzg5YjIwMjVmZi4uNDM2YjQxODAxZDggMTAwNjQ0Ci0tLSBhL2xpc3Av dmMvZWRpZmYuZWwKKysrIGIvbGlzcC92Yy9lZGlmZi5lbApAQCAtNDAwLDYgKzQwMCwyMiBAQCBl ZGlmZi1jdXJyZW50LWZpbGUKICAgICAgIChmdW5jYWxsIGN1cnJlbnQtbWFqb3IpKQogICAgIChl ZGlmZi1idWZmZXJzIHJldmVydC1idWYgKGN1cnJlbnQtYnVmZmVyKSBzdGFydHVwLWhvb2tzKSkp CiAKKzs7OyMjI2F1dG9sb2FkCisoZGVmdW4gZWRpZmYtdW5kbyAoYXJnICZvcHRpb25hbCBzdGFy dHVwLWhvb2tzKQorICAiUnVuIEVkaWZmIG9uIGN1cnJlbnQgYnVmZmVyIGFuZCBpdHMgdW5kbyBz dGF0ZXMuCitDb21wYXJlIGJ1ZmZlciB0byBob3cgaXQgd291bGQgYmUgaWYgdW5kbyB3ZXJlIHBl cmZvcm1lZC4KK1dpdGggcHJlZml4IEFSRywgY29uc2lkZXIgdGhhdCBtYW55IHVuZG8gb3BlcmF0 aW9ucy4KK1dpdGggYWN0aXZlIHJlZ2lvbiwgcmVzdHJpY3QgdG8gb3BlcmF0aW9ucyBpbiB0aGUg cmVnaW9uLgorCitOb24taW50ZXJhY3RpdmVseSwgU1RBUlRVUC1IT09LUyBpcyBhIGxpc3Qgb2Yg ZnVuY3Rpb25zIHRoYXQgRW1hY3MgY2FsbHMKK3dpdGhvdXQgYXJndW1lbnRzIGFmdGVyIHNldHRp bmcgdXAgdGhlIEVkaWZmIGJ1ZmZlcnMuIgorICAoaW50ZXJhY3RpdmUgInAiKQorICAobGV0KiAo KGJlZyAodXNlLXJlZ2lvbi1iZWdpbm5pbmcpKQorICAgICAgICAgKGVuZCAodXNlLXJlZ2lvbi1l bmQpKQorICAgICAgICAgKHVuZG8tYnVmLW5hbWUgKGdlbmVyYXRlLW5ldy1idWZmZXItbmFtZSAi KmVkaWZmLXVuZG8qIikpCisgICAgICAgICAodW5kby1idWYgKGdldC1idWZmZXItY3JlYXRlIHVu ZG8tYnVmLW5hbWUpKSkKKyAgICAodW5kby10by1idWZmZXIgdW5kby1idWYgKGN1cnJlbnQtYnVm ZmVyKSBhcmcgYmVnIGVuZCkKKyAgICAoZWRpZmYtYnVmZmVycyB1bmRvLWJ1ZiAoY3VycmVudC1i dWZmZXIpIHN0YXJ0dXAtaG9va3MpKSkKIAogOzs7IyMjYXV0b2xvYWQKIChkZWZ1biBlZGlmZi1i YWNrdXAgKGZpbGUpCi0tIAoyLjM5LjMgKEFwcGxlIEdpdC0xNDUpCgo= --0000000000002a04d20632457adf-- From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 08 22:32:37 2025 Received: (at 77580) by debbugs.gnu.org; 9 Apr 2025 02:32:37 +0000 Received: from localhost ([127.0.0.1]:36413 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u2LEy-000151-Nf for submit@debbugs.gnu.org; Tue, 08 Apr 2025 22:32:37 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:45392) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u2LEv-00014h-U6 for 77580@debbugs.gnu.org; Tue, 08 Apr 2025 22:32:35 -0400 DKIM-Signature: a=rsa-sha256; b=Pvz+9ko+D+a5PisU51Eeb7Uv9BK8F5nbbsnm+iFCmf3y0noSdEnx2rklsDXF9RrwqRMOh1CvG4416YzEIyptGrvYjJr643yH7YBbIJ26bmiqXG61ySYJZTbVRzi3K4gdyDYr5wJNBfnxrflvSCzun/7T8U3ALecRqBXmh/dI7aaBxr48NfmfeHpBdBipMN+7dAnQ9eyCJnbYo8ZKAPBwlcVMTTb48ej4tXbJfF9Md0JG42TwVcGTpfsjAstlOgx7LK8yNSw11H7SALxTRmpuEL9Z+Zb/OP+T5p9BBDFn97mP9bqTQ68heUZ5N9UCz7Ei0xntguYMrzHGbRExeb2YwQ==; s=purelymail2; d=spwhitton.name; v=1; bh=fkEZ8JZwIumnpVdICh81ipZck6YjI5ngFbMG1Pf8lZ4=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=CtW4aSWYrHiiEeXb0UX+DF40r514sXmm5RHfZ9gaLu+0N50VfOvxM6Uq9bOGORxy3W4DjApEBINMH/LeFxJ3v/P23Ag/VRHtUMMouaPhuz8js+rZ8JDkZUQ34g+FspAglxeuYPf3RIv68Pb2uFrGG0YQmQ1C8dHNGF+v0D3KeMlkr/IpNd1QajVyt4b0R7DnW2m0c71BiQ2gE4lFNLQ6v/3IEu/s8Ll1rXlwuicAmWaTHoU4VuzbrHMV5MwVUU+5r0kgh5JpOnVNjZgMxVOHhJe09UXVmnuHZU/aRnleyi1y7eZWWQShT3b7If8f8pzd3LYK3WtCN40G8bzDSBa0Ew==; s=purelymail2; d=purelymail.com; v=1; bh=fkEZ8JZwIumnpVdICh81ipZck6YjI5ngFbMG1Pf8lZ4=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 77580@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1489518196; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Wed, 09 Apr 2025 02:32:27 +0000 (UTC) Received: by melete.silentflame.com (Postfix, from userid 1000) id 7FA807EFB23; Wed, 09 Apr 2025 10:32:24 +0800 (CST) From: Sean Whitton To: "Paul D. Nelson" Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: References: Date: Wed, 09 Apr 2025 10:32:24 +0800 Message-ID: <87o6x6f4jr.fsf@melete.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: 77580@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Tue 08 Apr 2025 at 09:25am +02, Paul D. Nelson wrote: > To clarify, by "original intent", I was referring to your suggestion of > detecting automatically how far back to undo. The C-u spamming is > relevant in an edge case, not the typical use case for ediff-undo and > diff-with-undo. It's analogous to how for regular undo, it's > occasionally useful to do C-999 C-/. In my view, the current patch > meets its primary goals well, but I'd welcome a broader discussion of > related enhancements or other commands. Thanks for clarifying. So your thought is that the first two bullet points in your original mail are covered by the command as-is? >> Of your suggestions here, my first thought is that maybe C-x x g could >> start operating only on an active region, if there is one. That seems >> like a great new feature. > > Yes, that sounds excellent. If you would be interested in working on that, I'd be very happy to review and shepherd the change. -- Sean Whitton From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 09 01:43:51 2025 Received: (at 77580) by debbugs.gnu.org; 9 Apr 2025 05:43:52 +0000 Received: from localhost ([127.0.0.1]:36814 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u2OE3-0004HM-Ko for submit@debbugs.gnu.org; Wed, 09 Apr 2025 01:43:51 -0400 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]:42467) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u2OE1-0004Gq-2m for 77580@debbugs.gnu.org; Wed, 09 Apr 2025 01:43:49 -0400 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-5e614da8615so740757a12.1 for <77580@debbugs.gnu.org>; Tue, 08 Apr 2025 22:43:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744177423; x=1744782223; darn=debbugs.gnu.org; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=nrLl/tWP8wlr16bGMVIcRYOIBAR7M+HgpiknUuccsLU=; b=K5V+mHjxWg1Zocsola4lnE3wLy2OeNg3Y/OnOiFUYsvwUDmE1QDSw4prbenZn1/ZqQ +JeP4KrldSN6LtmR6qL13zbef6oEOOvldiwVtbcxn1pol9AV764pUmz46IlHBm61VVw3 W8lV4VvUfgvRh0flnPYA5WMr6g1vU/GEzdEerXY1ghKKKr4k8NBMTOwd/JRQJWs25dAo 9n8fbyuHoB24hgoig8oFgbn6n/0lwRUO3YYnircYXcNy57xCkOgXSR0aaxlhv8k/M0i6 Df9pAib6gktxNLC11JdodwlKxHcwm9L3ELRhtnbOknBzfjHXqbWg9xCqaWDUqbvHpLcH HKQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744177423; x=1744782223; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=nrLl/tWP8wlr16bGMVIcRYOIBAR7M+HgpiknUuccsLU=; b=sfQYDQEfjvHqF9aWfwcOgaKmLuuCxxaPyfk/x/niZVkFXs7pLj/7gR3vMJX+CpTHUn kBvESLfb5deCUDS9rXNHrCXa5k04XJoBvvKFQIAlj/LTJ0FXOWvEHyXl2yrOpr3KTx0R 6HAJS8WV4EDx1HMX2bMHBew1N6k7OoXw7zZNMBIAeGXX9RQyrWKZGz0nvoKVzewcGwrz PYsgCts+vahOpJCdwrrayayFdlHALU9Sq4DTSjDcYzkqnTjxn5ckvHRfFi40Ci+1lz7N 11+vJKHmGN+b6+AWJalbnAjQW/Ub308yE1fs7NkOBsUYYBOTgfDs8lbu9gUfJ3iBhz9c zH0w== X-Gm-Message-State: AOJu0YzDWvoCj5ZRu7FM4ToEP7lszeGMWDvMlp15lhYj+mMiglvmhcXu otm6ElWy5LCB4bcIMLaT6UOQ3TVtNjGXE4CDl2VU+NobNnMRdpLL X-Gm-Gg: ASbGnctseLPg4DlF9mARv2m+OFj69vZFKfDPxXuRVdMga36x6pKEfNbfR4whnE9nzQM oQcZ9xix+Gip3byhG+Q5+JsAfiYw7cwX92fCFh5eBEYvtC8J1wqaTEiRmaXCXNuIhlTgAYi5CJB 6xztjG9umES99cxASkEoywMa81HLKtRNZaklGUKQ/Z2tWvU+tEqa3DD5A6GkGpz9QCJrTesBSmq sVAFBpKB2FZ9D00VWz+KFj5jrY716QCWImVa5wrZCeg4e4IOlA9w9miU6IWgIxSUC3LOTH93veZ CmicwT6lt7LfaR5T1zwij8bYOweDgsSUCsdVbsDPRo462WInJ8ye2uB66n8icCnxwsIS4ju4pLs h/krxw4nsXeZncBiAA6K8 X-Google-Smtp-Source: AGHT+IEXRb4uLZcoZFutB7se6YnXIuCyApIbYSLH7WRNJlea14z1wvw9BQHxTo2lvyXs+IblycdmlQ== X-Received: by 2002:a05:6402:5c8:b0:5ec:6feb:5742 with SMTP id 4fb4d7f45d1cf-5f2f76fbcb1mr1379628a12.16.1744177422207; Tue, 08 Apr 2025 22:43:42 -0700 (PDT) Received: from localhost (0x573d6713.static.cust.fastspeed.dk. [87.61.103.19]) by smtp.gmail.com with UTF8SMTPSA id 4fb4d7f45d1cf-5f2fbbabf86sm256287a12.1.2025.04.08.22.43.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Apr 2025 22:43:41 -0700 (PDT) From: "Paul D. Nelson" To: Sean Whitton Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: <87o6x6f4jr.fsf@melete.silentflame.com> (message from Sean Whitton on Wed, 09 Apr 2025 10:32:24 +0800) Date: Wed, 09 Apr 2025 07:43:40 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: 77580@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > Thanks for clarifying. So your thought is that the first two bullet > points in your original mail are covered by the command as-is? Yes. A key justification in my view is that these uses compound with all commands (in Emacs or external) that substantially modify a buffer. >>> Of your suggestions here, my first thought is that maybe C-x x g could >>> start operating only on an active region, if there is one. That seems >>> like a great new feature. >> >> Yes, that sounds excellent. > > If you would be interested in working on that, I'd be very happy to > review and shepherd the change. Thanks, sounds good (although happy if others want to try, too). A related idea is to make vc-diff restrict to hunks in the active region (in the "without arg" case). Does that sound to you like a good change? From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 09 04:47:21 2025 Received: (at 77580) by debbugs.gnu.org; 9 Apr 2025 08:47:22 +0000 Received: from localhost ([127.0.0.1]:37419 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u2R5d-0008Ei-KL for submit@debbugs.gnu.org; Wed, 09 Apr 2025 04:47:21 -0400 Received: from mout.web.de ([212.227.15.14]:60385) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u2R5a-0008E4-Rh for 77580@debbugs.gnu.org; Wed, 09 Apr 2025 04:47:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1744188429; x=1744793229; i=michael_heerdegen@web.de; bh=eZEBi8IcHpwdQZAI53LeBDAmPMYsJhg8X6IH1oVdMYs=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date: Message-ID:MIME-Version:Content-Type:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=FPd4RnqNrscptmjjLI6GdKWP+q0WYGENwkU/RMI0MSs2gXiQT5/bvbjAbttic/rh +eDLiH0ryTUHNtLWWOUEO301h9r7wfgdrGJsSEHAX8tUNXUf7njVwR7cuolcE7MED NFByNyVbta4AWzWYwNGJ8Tz6hbODXoQv8jH1WgEk33yHueSU9cBiy2si0t8yUUHB2 gjtBAm9DTkjVInz3nZ0tUTgDpTc85aRcCKBzsiJQOTslm2cVeYAVdxsWVcpvIdc0Z jLQ6LmANdfhzfLJkXf2DL7BC0KLfvJ0tVrxiFIr96IAx+wSU/TLYWVVkEQPqHDdQu T8Gn7dYF+vzQq/rkRg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 Received: from drachen.dragon ([88.66.201.230]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MI3t5-1tnoF80XuZ-0013Ol; Wed, 09 Apr 2025 10:47:09 +0200 From: Michael Heerdegen To: "Paul D. Nelson" Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: References: Date: Wed, 09 Apr 2025 10:48:43 +0200 Message-ID: <87h62xk9ec.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:KRsl+hchkUjKr9F10F4slW9B/MfAERgAK5+qaD/bSnpLspNY/yF 8zZpvkD9bbSc4lhwgA68HIvQ57lY0/ntKEmig98DoUBGvHGne58cU64ojWnOO8XWftv+wn0 QtgMeTBk28958RA8r83LjVd/NH4Ijya/H4KvNj77Z4UxMbX9auyYHNWH9CHL38kbPVauKJ8 oPz37wkL9tnpRWlt2otHg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:xij360SZutk=;DH2dJbZhpp6ESUUcJLLPGcVv3wu KJyqcus2o/0rME1SVmb7XQ8TXTfkiT9UEUB0jmYBSZiRB6YXhketpoHz+KsamoNJEUgFl28Wa Uzm6NFCbyneiEh4YhLCDiGEH3d++arPqvurIiKCCJW2AKiNr9xUMf6lS89tS6J79x0hbrEhOW RXdOUxKU8ei8hNip1BccSWLeclCvo21qxLrN+Co0UNLOZDRki0rmIMVT9UHCxeVYlNDO5w4u3 //+yjhNvNpdfO/Ezokey8zTVAY2097e/NTxu0kgt4T/ALHCTIvv/4riW3CTD2bmbOB8hmRAWc XM1Q6v7Uns+oiOBUP2+VvnBaAYAc2Kx9uYFZXXhicJaHzLJBQkNejsf09hcDm7FdGlG+JErO7 U96JBrB4vYdZljAGuzt4TbbEF6Z5iKRTe6BNvjEj+byceMawqf4XDF3ZsShWCY6Nv/Xp5jne/ fPKE9OgquiN7IUH5TGAZvVuqrWT3yxm9Am2kXbpCQpIfaeMKY9aA0iw2k5lKJCojZon3YfdvE CvsASchpEKRSH6Kd5jPZ4RqG0T7cLA0uNAuyiH8C03iJ2/8WFjSZ3kJQna0UTAmiD6+UjHeS8 sKaU8/LxDF6uyyYYitlWkG2jKrWlzkNxxMa6dUxNvPZcXs5rzPspgn8A77pM7tIBTUXCVSFAu uUwifOJ7+HEkSzRMopBnZYb5dcIxQd/gBAWMYt3CusH7e1FDROrUk6QBp8bKprVQEnLILQITk 6utC6WqWLOhwSVBjoqE2GI1kArxTvYGwQcPYJ+V28QJcPD5fQJPifJ0/6hxHWOhrlP+D2WP6C 79+De6eybN8hmiL0I6+Z1ozMKKdfbxjkcfj2NjREnGxVwwjUVMKQUloMylqNy/kis8K/jTrdS ih5sm3ooA8b2i52o2rgNdMk0HTtbXDw7mqdVBRHY07KyzOKCsvn5W2px36oQSF+SinVisOqsZ 4RJ8TaxBONGVkzZn1/HhqGySk7nxHSXPnSU4zJXp3vpu/O4Zq+NvQlB4y8ahura5IAiGidG+X /JJ3NQkjztYUz2+U9FLFzWRAa/MEFmS/WCrX63yc6v1JhzGSvECbvwXbS4VxzNaOWPglmDy28 VlBCG/G4p6qKAlkw20Le2hvP5wSEaRTvg/oTPhl829W4KmIzVRVRj1MXQRRnz5PQZgihP8y48 qKaNzyniKc7QHaAIrJ2Om5IB2h6QktVKUk53sVcVfb4Mr9xNb2YxpqMK0XZJXhD3Z4V7J74wP RvSQJnApuEszpOcWZtZxh3oOVM2h++FB01voo+RontyvzuhYmmFgWuHI3dCqXJ5z29pMllSeL ioHO6npK8viE6jIFW1KM+4bka+GUmlOjml9+247u7kYUq245DQRLcNmv9MTuhMoiiCTvhs7uE Bu2hVBG40Zr3vSSEjEI5S7my0raojeRPx/MrjoPZ/gnpdQ5hc2Pwyb2HQUdywS1vD0uavdBLs 6AMNgHdIqfWxHP74sdQM/H1hejoc= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 77580 Cc: 77580@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hello Paul and Sean, I want to hint at the Gnu Elpa package "vundo" that is able to Ediff undo states. It's ok if you aim at a different interface - but I want to avoid that at the end you are more or less end developing the same thing again. Michael. From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 09 06:38:24 2025 Received: (at 77580) by debbugs.gnu.org; 9 Apr 2025 10:38:24 +0000 Received: from localhost ([127.0.0.1]:37853 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u2Sp5-00011o-QI for submit@debbugs.gnu.org; Wed, 09 Apr 2025 06:38:24 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:53454) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u2Sp1-000112-Gc for 77580@debbugs.gnu.org; Wed, 09 Apr 2025 06:38:21 -0400 DKIM-Signature: a=rsa-sha256; b=luXX8UKajEnrqDgONrdXUrnDeDLxCSchp89TSHmGYl9+NOp+0BsoZB4z1tCfX+NXCsqh8RNdGoyTCKQ2x4O+x6LG5HxucJaThVj9qsO/LTRRha3+EYtXcXLmN6DmHfnj6AgAdy8giJ8nDq9/te2WZSMNzbXHOQdJ7MHbjzDGohvKQaA/+dnvKk5HTHZt8KbXa4o/CaayXfdsWtLYDKjoVRlveAg0cee9j+z8ALErIDD4YNPmORynEFIWEqumz2A70eWpuqSshl4HifN4o/WMOok96BbF25W7OEsOaaCHdcz+3ry8C9LsHIujyNLtrwpci/9S/KUnb5JlM9gwt1bJUQ==; s=purelymail2; d=spwhitton.name; v=1; bh=mXUxFLgLUGONqEHuZzD7jANJR0PEwV6lVZIxR9we6ng=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=ewwJi+GGruciVIkcTgib6T4BscXlV+83CVPBvi/x7XwJUhsPNeAf6kG9yHLO/s45kHUl0MM/23VfGHNdVlWyGFvYDYo96yBPNrNHgFB4SBLXHesk3GYK1xODf/RwrKk8MTK/eeEgsQr7G4eYjRH7r/7i+2ryUzvPy7xcQM5ltwKoFSJ2fNrJWWc0yoJ6DUo8ZHohfBeYh81pykScx70WvhZUqNcZ/rXqNryowUe19YshCCbyf5wgxImAn2edu9UDlHdJsyMm9M6sPLjOxBLGrTHRp+uk9Kg2VZQxgEgu+Tgab/amNcliJjYS+WGjisOttM9nlD0XFNTFsnQs8KUmNg==; s=purelymail2; d=purelymail.com; v=1; bh=mXUxFLgLUGONqEHuZzD7jANJR0PEwV6lVZIxR9we6ng=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 77580@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 284143074; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Wed, 09 Apr 2025 10:38:12 +0000 (UTC) Received: by melete.silentflame.com (Postfix, from userid 1000) id CF4DB7EFB23; Wed, 09 Apr 2025 18:38:08 +0800 (CST) From: Sean Whitton To: "Paul D. Nelson" Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: <87h62xk9ec.fsf@web.de> References: <87h62xk9ec.fsf@web.de> Date: Wed, 09 Apr 2025 18:38:08 +0800 Message-ID: <877c3tei27.fsf@melete.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: Michael Heerdegen , 77580@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Wed 09 Apr 2025 at 10:48am +02, Michael Heerdegen via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: > Hello Paul and Sean, > > I want to hint at the Gnu Elpa package "vundo" that is able to > Ediff undo states. > > It's ok if you aim at a different interface - but I want to avoid that > at the end you are more or less end developing the same thing again. Huh. Thanks! Paul, could you take a look? -- Sean Whitton From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 09 09:16:50 2025 Received: (at submit) by debbugs.gnu.org; 9 Apr 2025 13:16:50 +0000 Received: from localhost ([127.0.0.1]:38337 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u2VIP-0008Nl-LD for submit@debbugs.gnu.org; Wed, 09 Apr 2025 09:16:49 -0400 Received: from lists.gnu.org ([2001:470:142::17]:48608) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u2VID-0008N2-34 for submit@debbugs.gnu.org; Wed, 09 Apr 2025 09:16:37 -0400 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 1u2VI2-0002lY-G3 for bug-gnu-emacs@gnu.org; Wed, 09 Apr 2025 09:16:26 -0400 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u2VHz-000121-4q for bug-gnu-emacs@gnu.org; Wed, 09 Apr 2025 09:16:25 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1744204580; x=1744809380; i=michael_heerdegen@web.de; bh=hXqmXcNH2ABvKtMCC4b9s8Bg05delGMEEgntsjVzicA=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date: Message-ID:MIME-Version:Content-Type:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=Sbys5Cr1mIlxWpVnfBZikhh3tZoBCT/36TdfmNvu58zhg0/fnrA7pAV5aQPfoRk0 XAo8QTuJ/h0BCq2ErT4YtmjJPMDtfuqK7I/Ga0bLnZr5Z2aRWKt/DttCQ9g7fERd1 q9Tb8qIWWrbazaloPiv1tc+v8o8cnifCcIcENQh8/SMsByABQH7OMd7Uh3unpaIhC BJ0G11ev5ukEkc+i+vWX5DqbG5pQU+UxHJo6TyMhFTLbO32YmhwC3/QtnsC6hoeCT ZfPq45iKX2oA3wAKI//qmzpNzLdTgdssJ8SVc75wb2kz2A6GlVsNWWQD6bIfjg8PR UcX0FlWKUDgkYHEdBA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 Received: from drachen.dragon ([88.66.201.230]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1Mkmvj-1tLRd535Rf-00aehj; Wed, 09 Apr 2025 15:16:20 +0200 From: Michael Heerdegen To: Michael Heerdegen via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: <87h62xk9ec.fsf@web.de> References: <87h62xk9ec.fsf@web.de> Date: Wed, 09 Apr 2025 15:17:55 +0200 Message-ID: <871pu1jwxo.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:NAH+nDkrh0FKYlBR6PXe8AEzw4ll6B0Y0K0E6bRjgTdR2KCAi43 S+7xyeu501u25HdmEBTmNyLgbo+ykQoTOZAXh4aX3Reho4YoNJrW3RXCE3T57XcBW9L/ANx +OlqOSJjUHRMSsUDLF13wMZgimJDvnt0Ruw5UOCepMoyZGkrKhn7ZrM0Et+ZVaoEc9dmNV9 ljVNVMvQmkLx264nrlDkg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:TF8L7jtmT+c=;g9gMeVwvFSbX1LZ2DJk9bibOtxk oNjhjhUj9stIKof7hc8cgie/yZB76eTeMuCvsSkkS/xe8fqxhok9YoeqM2JUPN4d4EMOKt7cL F0v5Q4pq/L+PJRVyHSKqUCwzzSmaXzoWTcTpv1Lno9vaa7DsdPzTPYLytNQ3rvHAbrywI4lVv Az/4nV1xIbBsIT0PqFs48cuucyaXM0l5GYsy1a3itG1vRwRkODf5pioMXy5387iUXonD1Vl/o oISAzyPHnFF01y+MZQ6kM04/+M9uK/NjO8bDUxXHPRz/gP4Cd+cfruCAKJn9PpL3aiTbzHzTw 0TcU2pLv8e3QnXbKKXbplW6lQfV0H2n6EOA9RchuEpRPjFEy5YYsojnsvMoYgtEOkKJhZvJ/H kDCtOV3NnWBAd4VkRN5uOoVCDScWKqZMGkuYdLL6k2sQGgxZgt5K7wq/D74dPNhurmd1LNXuN pJ73aqqWxbE36UHGTASTbFW90de9zLcpcmT03iVs5iR3jg1f5QYoX/mJfOdbAVCNeINj3+1Xc NWlwXN4GeU+wqWE2qTKWYdzlMu8oAPfRZ+kLXf022aLMCfYEDZiu4im7nDMnb/AVWWY39DYFS zwAf13ft6LDhFSebMHt9tcPFmDtu5P58QS2DbsmIstXwBcXePW+27a9C4kHRX7BzcbGmtXy9l 4pn1EV0J6XNoHLmRyH7JM/GmNXHapL9IMzEhNV1MW0rON1p8p10kn1wRl264rHjkYRZ8/f7ia xoznNsBMrJinXHDvmDiFWMvg1JXd+pFZrJUd1K0owlRv6LtGGdLEHvvdtgUGkfQgUUtyvG3EC Y9TVsPZKdUWmzu9g9W8Wwj37MQziGD25UYODKkpa2JIw9FFyIthl8flT8N1msxyYHcufXHdKq MGoW/Xn1JJkuiYaWAp0DycE1kRPNQ48+IC7zBGj5Xt7l3I9GIMTeIN46i/aDSjJgJxWXtbyRa /xp8dUTXtP3QLJWtU9JL08VuN2Wzjs6u8vG0juEi5EgmIfQyxpQO478dDvytvkEDDKJSDdFxY GInIf30wSAZhVvKDbd1bdyWc5ymMC8pOEXMtQEf4coj5BeyOFihyQJlJ0tBlFbAs/JcoF03nL B22gVs9EWwT74laBOKx6iEmTFVznMCNCPU1/BO6fu1ZCfUgLrmrmdQWLo6dM5+tWslQEJn32a SKGuzerK3/PZGjkW0EZg1GKAA8BcYZymVoe5GBw8sOnXJXwl2UxZCcULbFw1wIyC2DSBB0oz1 lDNbADuJ0SKfqGAoGU0ozeN7kGBEGrrBw5bh9kUPnNOIFD9E4nzQru2wKSgYCPkscICn6oiVd txCIK6tibl2QUh+5TZgwrHXsWjNBGEKn3P92A44U1/vdIW0Ta1ouNjJFK0QEnr6J62RhhgrxM isIsJdKcq4NabY6scz/VWC3x76CJ2SE0Pj+B3fj9GdfQ3MSPB+rP0envilGzxmA7gHG0W1V+S 8/Mx7mA== Received-SPF: pass client-ip=212.227.15.4; envelope-from=michael_heerdegen@web.de; helo=mout.web.de X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: submit Cc: 77580@debbugs.gnu.org, "Paul D. Nelson" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Michael Heerdegen via "Bug reports for GNU Emacs, the Swiss army knife of text editors" writes: > I want to hint at the Gnu Elpa package "vundo" that is able to > Ediff undo states. Small correction: currently it uses diff. It's possible to get Ediff too, though. The author of vundo is open to good ideas, so it's at least an option to improve this (quite nice) package to make it even better. Michael. From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 09 16:27:35 2025 Received: (at 77580) by debbugs.gnu.org; 9 Apr 2025 20:27:35 +0000 Received: from localhost ([127.0.0.1]:42307 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u2c1G-0006Yd-V7 for submit@debbugs.gnu.org; Wed, 09 Apr 2025 16:27:35 -0400 Received: from mail-ed1-x535.google.com ([2a00:1450:4864:20::535]:44064) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u2c1E-0006Xn-Gn for 77580@debbugs.gnu.org; Wed, 09 Apr 2025 16:27:33 -0400 Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-5e6ff035e9aso211094a12.0 for <77580@debbugs.gnu.org>; Wed, 09 Apr 2025 13:27:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744230446; x=1744835246; darn=debbugs.gnu.org; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=IAAHeC63ZK1pVlvkO+CHDm1Ky6s5yHZx75Vn7GYjR0g=; b=ncGIaY82SPTdGIb0lTdL3/Gy61GusGWUn30CKin+85ybEw0BscIC4VlPmZqBXEDxcJ t0o0YBQqB+nKqfT9PQs7jeY68UD6rNQLJAGeSa+wVGRjFnGQEt4E3TlddLPNm6N0X41u C78kloEPgX630nXRFbp/WDIOjLptqDIKsfMxd9WcAdKzfAaCMaM7S8mnHtfxUTpIVqT6 pXkJiBeS3aQvL67UJHxqeItZiXG5AQS9mJXYxigSXLwOT2/Ev6tU+WxZqVY4kv//gGT/ UFr00CRLuKSYZmc2Lpby3bhX1NdKNbd5a+3KzpyL2O8ETGsuHEeXe6+n9/Q2BpKqlLvU Y2Cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744230446; x=1744835246; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=IAAHeC63ZK1pVlvkO+CHDm1Ky6s5yHZx75Vn7GYjR0g=; b=DsdMdQ286X8gC/5+fjzAFv25MYoYGgAkpy4QMhO9QV7TqknVVdHHOZaQ4t6B+GdnIu tNnX0cWZHln4wXhZGHixS3PnLYwUH+qGTnvU1YLbCv3VB/BlDkpoDP2jDgTk9V/DxAjc qyl7S6hXOUJ6ruip0PoTtYZNGpj9IquPw7FVS9pZ1UZ+zd+KphwZRV2M6ZHMAtR/2XdL mJx7+s6X7/XJ5FpcPrPE0YDU6YAyevKR4ZDtvhEALgsIzApq3458GiGsgGrf7YGsCEGV +bCk+AEHXvBYI+WIW2mBXNEe2ZkXO4loEDXRwjkf8V4eY66v278KNDPIkAmzoU7XjRD0 rRaw== X-Forwarded-Encrypted: i=1; AJvYcCVjHtx1A7ncukh6bKGwIALnbhExxNSempvhWZIgEUtj3FT0Zm5+axygYE7Z4P6nnIHsJSTlXA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxI5lGaXG6C/cLGBkB6FQzP5mPegAo9NkbXZoHJdgoCbOk+by5v b8K8Lb9znyvXeESKbj90fe+ccI1o70QeSiUtukvxjV7EQhy+6Kvb X-Gm-Gg: ASbGnctOFGuAtNrPkkrjhROKPppkL8n56Rpt2TyWKPe00Wt/FioiG8M0ILoePobjCVY RJBKR5eKG5/ovTlNIr8n2QPkSQqjDW6AQZQc9YVzvKpj0nFBfCjJ4xcDrm4bbdfhzpvdUOjCcPj d2kYjKHaZY5VQs23oyN01NFy5q3ArtNUm2NZp6Z+Xw+095H47TSbkeGZyK2qpoIcAwxVx6RrAuc hnSglQKIQ9Q7SyvlVKE7qqMBCGrSSc2wPpWin8t6Y/cv3iH2lkCoWQZ8nGmGMaUetp/oiF53NSj sKTOehNEo2m14shhHuGkDNcQEy7pc8zEleV5ABs3rWQiyXZRlTXhCd3A8WffNdQoLaBMzrFj7yL mSAYIiA== X-Google-Smtp-Source: AGHT+IHEK70Uplcn3xZY4OnNRni5xKtqHN6Cjc+8GPd/aU9TbskfIXBT/fzHhbHVVdV02aR3Yrs3Hw== X-Received: by 2002:a05:6402:1ece:b0:5ec:9352:7b20 with SMTP id 4fb4d7f45d1cf-5f3290e7313mr190706a12.0.1744230445909; Wed, 09 Apr 2025 13:27:25 -0700 (PDT) Received: from localhost (0x573d6713.static.cust.fastspeed.dk. [87.61.103.19]) by smtp.gmail.com with UTF8SMTPSA id 4fb4d7f45d1cf-5f2fbbac8a5sm1280105a12.14.2025.04.09.13.27.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 13:27:25 -0700 (PDT) From: "Paul D. Nelson" To: Sean Whitton Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: <877c3tei27.fsf@melete.silentflame.com> (message from Sean Whitton on Wed, 09 Apr 2025 18:38:08 +0800) Date: Wed, 09 Apr 2025 22:27:24 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: michael_heerdegen@web.de, 77580@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Michael and Sean, Many thanks for the pointer to vundo. It's a great tool for navigating undo histories visually. The commands I've proposed (ediff-undo and diff-with-undo) serve a somewhat different niche, primarily addressing a simpler use case: quick, one-off comparisons with recent undo states, typically one or two steps back. Their implementation is straightforward and minimal. vundo is more innovative, but also more complex. For the common scenarios where I've found the proposed commands useful, vundo would generally be overkill. Regarding the "how far back to undo?" problem that Sean raised earlier in this thread, vundo indeed seems like a natural interface. It might fully address that problem after a couple enhancements: Ediff support (as you mentioned, likely straightforward) and region-sensitivity (potentially more involved). Paul From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 09 21:21:53 2025 Received: (at 77580) by debbugs.gnu.org; 10 Apr 2025 01:21:53 +0000 Received: from localhost ([127.0.0.1]:42872 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u2gc5-0008FR-1E for submit@debbugs.gnu.org; Wed, 09 Apr 2025 21:21:53 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:45934) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u2gc1-0008FA-QX for 77580@debbugs.gnu.org; Wed, 09 Apr 2025 21:21:50 -0400 DKIM-Signature: a=rsa-sha256; b=Fo2Et8MWR/dGDRj72ZiNyO+MWf0g4mo8uxchRjyR7Uaalx8K7ElItbQfZQGqAdeOdmNb5PP84OctwUmzpxKFXWIDTidgXXu01PIvM4Bgj2mJilo2x4lYL9sOeORv9KQBAtQEWoj9hfZm50pFyI5ygh4fuOuCXxNYKln0uNWUK1KOaothWX3C7Lyl1ZZPbeHD6mktZfKltgckI7z5djvEJBDsI0aiUY0nMSTPW8VlCNMsYdsjK5Ip1zGYa/xaU36ep9wPyFp2RRMjXEY9xaGrgtrSK3fqfWste/wC0d4B+7d9barSZi8ltiDiuaaxz+jXmTP11TcFg+BCwjSPxrSlEw==; s=purelymail2; d=spwhitton.name; v=1; bh=iLJbcFGntOqhajq7w5xc1KW+uO98awvByPHeGJwmGpQ=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=kBruX2LIJQ2paqzHPziggYZVRZQnmUnESdvFRnTt1xO+t/36ji+v4Oo++gajKdeT7DE5xvjJJItUM/z3U9Pw1pYixV4ELd544zQMP2om/G/Wab5D/YyJlzT9wu7ouc0VdpbajgRFpCwDpNs1IRoer7xtV2VTXvlnePEf/G9moIwGLm7Qmd+zOFwlgetcLThtLDfcqGyLBbgtqADdotxSQQyewdiJWK+k/27siEkcaW3Lyykox5D7orD2x0/8WCxyREVyYo7ewaYtYdcj9SKy1tgOzgqp5eMU3RcjaC7Sv+3rSYTFYHEw52JtkfAW7uT6pR2Aeetpk9l+plh/LpHPpQ==; s=purelymail2; d=purelymail.com; v=1; bh=iLJbcFGntOqhajq7w5xc1KW+uO98awvByPHeGJwmGpQ=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 77580@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1430435875; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Thu, 10 Apr 2025 01:21:41 +0000 (UTC) Received: by melete.silentflame.com (Postfix, from userid 1000) id 75BB57EF94C; Thu, 10 Apr 2025 09:21:35 +0800 (CST) From: Sean Whitton To: "Paul D. Nelson" Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: References: Date: Thu, 10 Apr 2025 09:21:35 +0800 Message-ID: <8734egdd5s.fsf@melete.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: michael_heerdegen@web.de, 77580@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Wed 09 Apr 2025 at 10:27pm +02, Paul D. Nelson wrote: > Many thanks for the pointer to vundo. It's a great tool for navigating > undo histories visually. > > The commands I've proposed (ediff-undo and diff-with-undo) serve a > somewhat different niche, primarily addressing a simpler use case: > quick, one-off comparisons with recent undo states, typically one or two > steps back. Their implementation is straightforward and minimal. vundo > is more innovative, but also more complex. For the common scenarios > where I've found the proposed commands useful, vundo would generally be > overkill. It might be more complex, but in general we really don't want to add functionality to Emacs core that is already available on ELPA, because we are working towards shipping the whole of GNU ELPA with our release tarballs. Then we would be shipping the same functionality twice. So if vundo can already do what ediff-undo and diff-with-undo are for, then I'm afraid we probably shouldn't continue working on the latter two. I hope this is not too disappointing. -- Sean Whitton From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 10 01:24:09 2025 Received: (at 77580) by debbugs.gnu.org; 10 Apr 2025 05:24:09 +0000 Received: from localhost ([127.0.0.1]:43284 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u2kOW-0004Zb-VE for submit@debbugs.gnu.org; Thu, 10 Apr 2025 01:24:09 -0400 Received: from mail-ej1-x633.google.com ([2a00:1450:4864:20::633]:45305) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u2kOU-0004Z1-Fh for 77580@debbugs.gnu.org; Thu, 10 Apr 2025 01:24:07 -0400 Received: by mail-ej1-x633.google.com with SMTP id a640c23a62f3a-ac6e8cf9132so79764966b.2 for <77580@debbugs.gnu.org>; Wed, 09 Apr 2025 22:24:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744262640; x=1744867440; darn=debbugs.gnu.org; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=5iE2f4kEhzi6NZNwc5Xw50Q5UzZODU/moxLqloCVrRo=; b=fsF1BQUUlqpyswy0baQ7SGrBxr7jVipI2T+6SgiceQEpAQZfrazpR/atDjuYYqTa0B xF7xKufK3mvb+1Dblp/532x97BIVgvjDfzealaZMEJrZloQxDGY+yuEZgh910ZYVVJL3 n7dNLQu7vw3wbA+fo+p5V9x71ksQjbd/kgT5DslWzF36iiucrIZzAiQ9PMXYCYZKdODJ H0AK/cVdhoAjLsSK5196mJcQv2EFfu/4uoCI2QectlLAtJau+RgoiZynWzLIJCcWkxkp qPZdoWhi61ahF3Nx3DLE5gb63VNEsOJ6R1r+Tqxb9kSU0wF9EfexqwSFHBB6DbA6j7OA zRsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744262640; x=1744867440; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=5iE2f4kEhzi6NZNwc5Xw50Q5UzZODU/moxLqloCVrRo=; b=dIvUJQks0tZJZvc0gQeOeXIXe5frVzBFPtFMPIIp/60EMTrnir1IBWqTjZdeJg1qX4 HQ1hv6l4uffvgfIB23ic2p+27RZIor+11DtFfT2UUGbf2EPgy5MHyNH8E8tJULsSmG53 U3ILqCW7MsIP4C63r5H8gYOkG3EMmxIyk+V+V+T16oIUnHaLxFSva18UQZMxKbt83z9Z hgVN/y9lQ5wOe2vMKdz8C+LcAnHBO0H+5nAdUOzKjvhsyc6v3X00VD552+mJ0z04BcWH yt77adtmC1du1LTsjkS2UpXvoeJoS4EiWKmOtOsDy3m0CG3B2cI78iweF5dnbGaKrXgt ngIw== X-Forwarded-Encrypted: i=1; AJvYcCXZJgrWSzQ9QDOmGFLy8iHOHR9Q4S0eTToN5Wb39nXmST92itE2maTDGpk2o85RajrVop2eCw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwJW5DZtz5AX6Ke4sXfQ8OVnKqWA/Wv5nXCMYfNTRHtoxifnGGR EDEQYH8R36R4z3diyhraiodsMDqoB0xBPBzahgKNnS11AF2n993T X-Gm-Gg: ASbGncv9jKRwIRPgVy9va6aSzWbHbBfK9mpxEoQUUqxi7aWFKX3eo66u49mEVETputJ EC87xtpWMzpAUL3y4uBBlz+z+rnajvAV52fYNnjUCinCf9f3kPEioRxZis/vVivg2m0+lvJvSq7 LkpfPUsRrV4XAw4L63pnwbDNHYhh5Fo+qCxVYp0v11YfWOLC942EZApfu0D+aO3BMDwtju7Jzhi W6LfFNr73jwqRtr4LVuVQfR5/yB+XfSD1qAxNjGlJiY7yB65ZQR8mQAPlpVK7Q8tPIITnwD1nWx wZgBJkxOk8OWBDjpbz+qVB4eX7AcL8iydYqqKaRbh1loUCP7Ic51bW35tChme++KDn2/9/QPh8k 3s2sUGg== X-Google-Smtp-Source: AGHT+IGSL/DSnR0laYraPmx1E6gpGCh2DLZMbb0m6RiUAHOtuQgbypVh37rOIiwNlUHwID02smTzpg== X-Received: by 2002:a17:906:f5a1:b0:ac2:9ac:a062 with SMTP id a640c23a62f3a-acabd195923mr114682966b.23.1744262639722; Wed, 09 Apr 2025 22:23:59 -0700 (PDT) Received: from localhost (0x573d6713.static.cust.fastspeed.dk. [87.61.103.19]) by smtp.gmail.com with UTF8SMTPSA id a640c23a62f3a-acaa1be9c1csm203410666b.58.2025.04.09.22.23.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 22:23:59 -0700 (PDT) From: "Paul D. Nelson" To: Sean Whitton Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: <8734egdd5s.fsf@melete.silentflame.com> (message from Sean Whitton on Thu, 10 Apr 2025 09:21:35 +0800) Date: Thu, 10 Apr 2025 07:23:57 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: michael_heerdegen@web.de, 77580@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Sean, > It might be more complex, but in general we really don't want to add > functionality to Emacs core that is already available on ELPA, because > we are working towards shipping the whole of GNU ELPA with our release > tarballs. Then we would be shipping the same functionality twice. I understand the goal of avoiding duplicated functionality with ELPA - thanks for clarifying. > So if vundo can already do what ediff-undo and diff-with-undo are for, I don't think "can already do" applies here (and not just because vundo currently lacks Ediff and region support). To clarify, here's the equivalent of M-x diff-with-undo with vundo: M-x vundo, m, b, d, q, C-x b *vundo-diff. These ergonomics scale nicely when exploring undo histories, but for quick comparisons, they're hardly better than "fully manual" (copying to a temp buffer and doing diff-buffers). It's like asking "vc-annotate can show diffs, so why do we need vc-diff?" Should diff-with-undo be a "shortcut" command built into vundo rather than Emacs? I don't think so: this would bifurcate vundo's interface, add some complexity, and wouldn't meaningfully reuse any existing vundo code. I think the proposed implementation is at the appropriate level, alongside commands like diff-buffer-with-file. Thanks, best, Paul From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 10 03:17:00 2025 Received: (at 77580) by debbugs.gnu.org; 10 Apr 2025 07:17:00 +0000 Received: from localhost ([127.0.0.1]:43479 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u2m9k-0004xm-7N for submit@debbugs.gnu.org; Thu, 10 Apr 2025 03:17:00 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:33500) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u2m9h-0004xW-Lp for 77580@debbugs.gnu.org; Thu, 10 Apr 2025 03:16:58 -0400 DKIM-Signature: a=rsa-sha256; b=X7wEOfhJ6m5o0xsxFYz6xEmjj2iwz2M8z9A/X53im3n5MDueR6kxcR3BkhuBwyAo+BVIRR9BIpNdKtoEAYbX5lfQ7QQ06jNGgDXFgtK2QhNZFG6sjP2NtuKvSFDIJX/3EAzuTPS+kWNT4szmuUW9hhe0jOaBxd1C07ziNBdQlMAC5YQBskRbDooGvXPCIOHZNyY9fp9rtcJu6bKTNfODZYX57Kj3WTyKq0zbsxOnd4xPN85H65hCKdPrUc+DMhrJe2F2aLg8BkVxPibisiIanj5c0yk1YKKjxDOqEZ9yiuQ5zXuoxX12KreyRxF1FaEfWnwpER8i62dHS+v2DyQdkQ==; s=purelymail2; d=spwhitton.name; v=1; bh=80Twt/FIE3i0OKCEdKI44sX6vhPY71a/t3wZ2rYXO7k=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=leH06V0LcJe+t+/+W3+6cvE78+bRvjFrlebcb/nnJBxyWKtqGiOTG/kmOv82qHkWsYGy9SJZUOe9zxoJ+K73IUxu8cS6RBWNBHoQKEEV+x8CFUNOZ16FvHghviSw6mF93lfjt0WHGy+gD+xahlP5VDa2wEN3yZgFNPj4Woot/WQKoQL0Ak+1Yuj8o9CmWnKPZq1M0bbZFVHA0Eyziyz18RlN1gXZlomAE/FJjnCDSYlpIUiPRbAeOJAXXO9iXtvehHFSc3tjpUMuzhMJefQALilD3cydgoH6Yle4V60mIXYh3Q7RcAkRxPqbQS8aIZSiHDDMvZODMvFN8QbgFZcT1Q==; s=purelymail2; d=purelymail.com; v=1; bh=80Twt/FIE3i0OKCEdKI44sX6vhPY71a/t3wZ2rYXO7k=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 77580@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -809552282; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Thu, 10 Apr 2025 07:16:51 +0000 (UTC) Received: by melete.silentflame.com (Postfix, from userid 1000) id D87307ECD25; Thu, 10 Apr 2025 15:16:47 +0800 (CST) From: Sean Whitton To: "Paul D. Nelson" Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: References: Date: Thu, 10 Apr 2025 15:16:47 +0800 Message-ID: <87v7rc8p0g.fsf@melete.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: michael_heerdegen@web.de, 77580@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, Okay. Let me take some time to read this bug again and think about it. -- Sean Whitton From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 10 03:36:08 2025 Received: (at 77580) by debbugs.gnu.org; 10 Apr 2025 07:36:08 +0000 Received: from localhost ([127.0.0.1]:43525 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u2mSG-0005xF-DB for submit@debbugs.gnu.org; Thu, 10 Apr 2025 03:36:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50620) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u2mSD-0005wg-HJ for 77580@debbugs.gnu.org; Thu, 10 Apr 2025 03:36:06 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u2mS7-0003xq-TU; Thu, 10 Apr 2025 03:36:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=QZE6p3QHIRGs1TqCiqiCuRXG2t5cK+KTFXFutjjl4sE=; b=PLpP+Jv4jBfW wKzEybQgfFCTaLhliwa8wsuls114pOjCudA5+ur+OwtPbRMSXV0a1sRYplfpi9K2ZMTVQ/Ic6r6oE YDTedqZuzY5IFb6RzIGj3w0Mh6Cs1nMkHl9PAUWdwv5qM7BR91oXSRQbZe+5OfbQO5memAoqbkmpO jsgb4V4PZj7fTsVF2bBeXvUMJLvtGOFcHPbbGRaN4gFZYm79aiGoymUpB3VGLs4K7H/MJmvsgG4Np JWbTWRZskFCd1K/gDI/5DvOOr0rVz+2qDbVLtXpb+XN1nqqpnhvslikEzNZt5wjtxDqzlp0AGyspw x0h/IuSPkDb0SA5MrQv7bA==; Date: Thu, 10 Apr 2025 10:35:19 +0300 Message-Id: <86ecy0qxjc.fsf@gnu.org> From: Eli Zaretskii To: Sean Whitton In-Reply-To: <8734egdd5s.fsf@melete.silentflame.com> (message from Sean Whitton on Thu, 10 Apr 2025 09:21:35 +0800) Subject: Re: bug#77580: [PATCH] New command ediff-undo References: <8734egdd5s.fsf@melete.silentflame.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77580 Cc: michael_heerdegen@web.de, 77580@debbugs.gnu.org, ultrono@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: michael_heerdegen@web.de, 77580@debbugs.gnu.org > From: Sean Whitton > Date: Thu, 10 Apr 2025 09:21:35 +0800 > > On Wed 09 Apr 2025 at 10:27pm +02, Paul D. Nelson wrote: > > > Many thanks for the pointer to vundo. It's a great tool for navigating > > undo histories visually. > > > > The commands I've proposed (ediff-undo and diff-with-undo) serve a > > somewhat different niche, primarily addressing a simpler use case: > > quick, one-off comparisons with recent undo states, typically one or two > > steps back. Their implementation is straightforward and minimal. vundo > > is more innovative, but also more complex. For the common scenarios > > where I've found the proposed commands useful, vundo would generally be > > overkill. > > It might be more complex, but in general we really don't want to add > functionality to Emacs core that is already available on ELPA, because > we are working towards shipping the whole of GNU ELPA with our release > tarballs. Then we would be shipping the same functionality twice. There are exceptions, though. VC vs Magit comes to mind, and there are others. Basically, there's nothing wrong with having in Emacs a feature which is simple and supports a subset of what an ELPA package offers. From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 10 10:41:43 2025 Received: (at 77580) by debbugs.gnu.org; 10 Apr 2025 14:41:43 +0000 Received: from localhost ([127.0.0.1]:46225 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u2t66-0001WL-Bi for submit@debbugs.gnu.org; Thu, 10 Apr 2025 10:41:42 -0400 Received: from mout.web.de ([212.227.15.3]:51433) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u2t5x-0001Vt-7m for 77580@debbugs.gnu.org; Thu, 10 Apr 2025 10:41:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1744296084; x=1744900884; i=michael_heerdegen@web.de; bh=5ptQwoscXMXwgA4f3Wrmt1R//R44Kw8EYOgB8hWetnE=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date: Message-ID:MIME-Version:Content-Type:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=I7mdBy7r8yg+BWQyfpGK4qAegT4J6pYLZYi8gMSezmmrChm8BcaYJSBEPQfcDC/7 pN5+bpqVnvjxZ+csF17UtJhS1Fq6AEyziemJcZzwTXjygpKvtskwbsblWtEetbc44 FvIgq7nE53bp1pkoB2GhqLEqp6JwFmvWShV7MU+Im/2SeesYz1Y+A6smA9X9IT6NF XYML1hzhgAvNe7ZDEzgUeOvjYfIKUJUVgWQH4jz7c7GzG7hyVwzYC9cvIZ3wWQ1H3 DwF4mcdJWHFON7Mz/82yuHFDzd/MKL8c+5Ea+qboLplj+369M1dnfDHjIxH3AE/TG KDyQcEgRRj+X2qzm6g== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 Received: from drachen.dragon ([88.66.201.230]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MMY1D-1tjIqB1Hnj-00Vnl2; Thu, 10 Apr 2025 16:41:24 +0200 From: Michael Heerdegen To: "Paul D. Nelson" Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: References: Date: Thu, 10 Apr 2025 16:42:58 +0200 Message-ID: <87tt6wdqml.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:pEmic9QVTM02xRYA48w/cu5dMyFy6XUcFDK2OyQSLD4tdaF3uWt O5vEhImVf1129k81+534BXvzzNDsjONGrSmIRzBH9wq6xkrbeGUOKOuARJnSGvHYVHkFeS7 OJh1N4mi5Oeg+FqchEl+wY2Oqg9Z8NfpK0sXuw1P1kzzjP6Uur0fnRE8gJ6EQqHoifchXsj wq8fEIfod9gS90oNZCDQg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:5ss190679RQ=;T8eYLW+Ep1f38pfnOXivWMlwWpF nN1p6CNcp7+XG0+sgw2J8s78d505+b6BEnoBuCEaIxHGjnYJR07D1tt2NyetIHIEXNeSr1tFv flC9CZs3DkDOMeX3+NrdhFx48neAMiW5hw+WmodYXesKAMLNsGdW74M+HNohfcwh66VpS1xCO UWxqMkHFLqzwlSdJfdfbnsOs5pPF33vPLpT7N23/Sg+xguV6wkxBhQ13gPVaQGIL8wEKq88H9 TYxpiSERIyDMh9M7Rr33Z2bGQlRxTIhB59EnRaen+w6h3q/YDdOvU4y90B7mPx6UXdvpPhDLU cApEPo+Tl/4Q0NfqzIhUUSYGKUsuRGvVbAmlLmQcLx0TNaZO0LkzRXgFz/o1sJf9BAEYQKEVC taOMLULL3lES1DfKeDT7vZ5Rit+6E0ohC5R450/eUz/7AfVK3pvWVzjYa3POf/rhTW1plDLbr ET7ZloI/yGVxZHcrDhucI06RGFYUh2Q3+XjW60ADF45j1FaqYMit7bxMaiaHfOG+DoE68/v9R SjbQZuJo4Fc8hcmjv/jST83kwCrJYdY1HyXk+ABVf2YkE0kSXBt4nuQwdyZfDhIwWBwwJ/IF3 Ghx47wwQ3ZN9ztO1Q0xcsuGn/4hod3Ah9eRkwO+uP300wIVN0Fe1MJKYPqqR/Y3wjPV0NFFwC FI4NeYWz6H8KA9bxgXMiSHQZNV24GorF4hWHOGSWmG3C6LMvDwrtWTjYUd54DrnBLjYxP/jvq VlgRPI9GcZkH7gVIR/Nox8ItjQ6B3EKCS17+KMLkstIAVzFaD1OPlaT+EgIkPTobOcxgsDbsQ W3KEjuu1nSQr3hDke93lwJHcdttbR9ZuGJpLD8EbreruD8hhSaDeg5Qjl0byM4THlb2Bq60aJ Hxhut+UMQ8WOthKMIyi4cqdYUM9PINQLGO6B42Ph7QDzTd9bALhIbW5fvuB6W6j2wOoh+8EIG lrttW36jtb5Tn3h/ambr6lNDuI+SMlFm0/lwRmQgxb/PpI9UYcb7PmmTtBYz1QET0zRtCGEyQ a8MDU/qY9xKcg4zMfnrhAyjMJXsntEfP1YwWDUswEwJTpevgmGn90duY5oO3XHo0mGdybwxHn jVIh+ErNMqUyHBfE8tYbkQcbBVhN6pNzBEUVEghwTYj50G3/kWBMXoKzSIETAGPAW94Yneq1K ZzWvbacq6oIp0ffzUGv54Ye8HUjIEGCUfdv6forx1lHAvIWTYxYId37U4bsUwP/imPL5gNQyC 8bPp1KwCDqBKbO6sBPLz6jwtnLVKPN+sSGQ7alz2Qy+JBL4pEKHm7eMLI8GKuZ2P5hHlSPQBr wm7Lw37QkhUKyTsfkFvv0nnkH0946+aCmB2KN5KJq8v8u8+EA3Dvr1okiR5uN6DWc1jZsYptC KGGtlrAYamfmm9E/ZIFBgCWUaKJoeiuQrJq68Kiqz3ANYaAar5Hw2WNcVb3MMxZxxjNc1YvRa JxbyE+jvjzY5U+LS6k42fVRxr6raqAVzFXTmdHO+B/nBpLuSKGc/TUWrtPDHMHDufjMFq39fu tP+Ro6y7N9lzbV3exwm4eHl0OhiOsjUw7qROyZR5fe3JHZlATlugoCs3YXtfe48l4LJGRKm7q WuiWAxHjpC17FGOpmo5hz0cHlAvQp7pOjt3IAv4/kcgrv6MzlcQXp89yvlfSbPeupu9PhIAcS vCSD2jJachFRBiYWmiaMWGF5j2CwUq5GvAEQyeVtw/A2tMRmGZvwdVb97wxk46sV3Mib+S7Sl qWi3K8ymFLtHXPUxXfSo9Bxzx4iC5wkSVrTmDSPOXCe5R0yrrF5to+VZV9qQtt1veGO6q9LrC FXbvY1O0ZFpYp4wCDpGkbSvo3Vapgcwb39VdpUr/V+ty2UlQ47KnN5Ge/3sDZUX8fBL6wRSyx uPBoSV6cIXaB9NfAYqqAFqLCUWRF12DL4ls71oQO/9Yq5SNqYIMvg68Y++0G3bVYV00UPpPcd THRknMpg6mINH8ird3bYh/b9vgKr0rbWsGNVip8y8hBdmQ45sGGlOhioJi7GrL9nUwwppOoB+ DQltrNqW2csHmKCPXkHdfQuDlMWF2GlUxHDEfqOkFSRg6MIeV0ZUatDnVi5ybAt/O6VZdBwoA WL1O+M9lpz3c92kTgaha4tkAeCDpusqFWEkyAlWZDb6Y9X5dXuD9U/IF/92Ljx8kO0hQ9Swtt pbHMTXfuGE7EXVpmvKiZ0fskLtPALmnWrcJid2W7r3jFXbhY9BNecSbj10iDKrrl/wzKdptQV YF6Hvm5RIfgrxg1G79YbEKh1lzPyui9WkrblNLv648J+95ZLpWb7NW1Rzkwr+teE8o3+cvBcu 5JIdgwNg7ikXwmt6q21+XD88zLy3+ajPXB+gG3p0k2kM1uUiIwpuTHVKgFVHfV5UYIjU399j7 y6kZbj0Dj8FYyxQ7GmT55/XyZKOGuD2qrI6xppKO0hu97WrFnBDrzrg9FAJSn4BN1YDqzg2vm qJmKfwB1EbguWhJFi+FcQpj1rVTwjSJVRpnKNU/CRbil3huUJGrw4b5s3a+OGJiUnhIVuPjGP PeY2zM9R4D/xdH4BRr91KhF9I/SuRaPbhfOE1eR3dKpFykSq4IDIhnK0gwSUvZ1txoR6po3Bq Hzxltt4m1NhMBgcvabjhL9+sRUiSFULQ2+o04juPa28iSDSAPiZmy1Ru2qezv08PMTKto+H7W SKnL+icnzrRJAY8fmDijwO97pnN6r1icp14SBz8e1uEUdp+2nYE9La3iHEFQteZ4v1NQ+8+vi d2LmYJYYPDfDnIVHXEe1SfWSqP6oHW+IyDFrWMxOf/el1YeEEl7jR++Kc3owU9CNW8mPQoGI1 C+0KRs/Af5jBB2XCN59FRGY6J9DhduZI1MQq3EVk0MFLSz4zQlvmgIL3wfyIcexVno9fiFimp RXptBn6Jmbh1HaFWdn3awqtcTPmd7o26KDvMXNbBn9il78K5AUYJ1t7pGDSiE X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 77580 Cc: 77580@debbugs.gnu.org, Sean Whitton X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hello, > M-x vundo, m, b, d, q, C-x b *vundo-diff. > > These ergonomics scale nicely when exploring undo histories, but for > quick comparisons, they're hardly better than "fully manual" (copying > to a temp buffer and doing diff-buffers). My main concern is whether your proposed interface is really convenient. Sure, vundo is for exploring, and requires hitting more keys. But in my experience, most of the time some exploration _is_ required: undo steps are small or tiny, and later even may be amalgamated in a partly random way. So the problem is that often that the last undo step is not what you think would be, and you don't know how far you must look back. Then you end up guessing or bisecting the prefix arg range. Only to see that it would have been easier to use a different method. I don't say vundo is the optimal approach, but I would suggest to experiment a bit to find out what is really helpful, before installing anything. As a start I find the idea of a separate "slave" buffer where one can undo and redo without messing up the original buffer appealing. I would play back until the state I need stuff from or want to compare with, and then invoke Ediff manually to copy the changes I want to restore. Apart from that, something to visualize the latest undo history is definitely useful, too. But personally I would rather like to see something like a popup displaying a chain (history) of poststamp like diffs, or ediff like side-by-side views, and then clicking on them would give me a diff or an Ediff session. Wouldn't that be nice? Michael. From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 10 12:02:58 2025 Received: (at 77580) by debbugs.gnu.org; 10 Apr 2025 16:02:58 +0000 Received: from localhost ([127.0.0.1]:46383 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u2uMj-0005co-TS for submit@debbugs.gnu.org; Thu, 10 Apr 2025 12:02:58 -0400 Received: from relay6-d.mail.gandi.net ([2001:4b98:dc4:8::226]:54793) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u2uMg-0005cM-Sl for 77580@debbugs.gnu.org; Thu, 10 Apr 2025 12:02:56 -0400 Received: by mail.gandi.net (Postfix) with ESMTPSA id A1FFB42E79; Thu, 10 Apr 2025 16:02:45 +0000 (UTC) From: Juri Linkov To: "Paul D. Nelson" Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: Organization: LINKOV.NET References: Date: Thu, 10 Apr 2025 19:01:31 +0300 Message-ID: <8734egb03s.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdelfeegucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhvfevufgjohhffffkfgggtgesthdtredttdertdenucfhrhhomheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqeenucggtffrrghtthgvrhhnpeffgeetfeevlefhleejfeeuheeiudeitdffhfdutdekfeffgffhveehteegueekheenucfkphepledurdduvdelrddutdehrdduudejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepledurdduvdelrddutdehrdduudejpdhhvghlohepmhgrihhlrdhgrghnughirdhnvghtpdhmrghilhhfrhhomhepjhhurhhisehlihhnkhhovhdrnhgvthdpnhgspghrtghpthhtohepfedprhgtphhtthhopeejjeehkedtseguvggssghughhsrdhgnhhurdhorhhgpdhrtghpthhtohepshhpfihhihhtthhonhesshhpfihhihhtthhonhdrnhgrmhgvpdhrtghpthhtohepuhhlthhrohhnohesghhmrghilhdrtghomh X-GND-Sasl: juri@linkov.net X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 77580 Cc: 77580@debbugs.gnu.org, Sean Whitton X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) > In practice, I've just spammed C-u enough times. I considered allowing > a negative argument to signal "undo everything", which would be most > useful with an active region; how does that sound? To me a negative argument would be the most important feature of the new command 'diff-with-undo'. Let me explain my workflow: sometimes I open a file with uncommitted changes and make more changes before committing it, but then later discover that some changes were wrong, so need to revert to the previous state. There is no other command to do this: 'vc-diff' includes other uncommitted changes from other editing sessions, there is no backup for 'diff-backup', 'diff-buffer-with-file' can't compare the saved buffer. So a negative argument for 'diff-with-undo' would be perfect to show a diff with all recent changes. Then could reverse the diff and remove some hunks by applying them from the reverse diff, etc. From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 11 06:40:49 2025 Received: (at 77580) by debbugs.gnu.org; 11 Apr 2025 10:40:49 +0000 Received: from localhost ([127.0.0.1]:48955 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u3BoW-0000kM-R2 for submit@debbugs.gnu.org; Fri, 11 Apr 2025 06:40:49 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:55450) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u3BoT-0000k7-S6 for 77580@debbugs.gnu.org; Fri, 11 Apr 2025 06:40:46 -0400 DKIM-Signature: a=rsa-sha256; b=awnJNas9p2BOA+S6H1TKUI0SwsqMCs5x2lyKhdxtsqxgRq+cf6yQSn/qnzBLOzukdKnV5naQrrhYiO/qipHJdKg/GeMlLfNxhkkkad0Khr6ZIsGAcKCj+3vakrq8J1aY3tsYfInqZffcmwgX/Pzog6TCieuWKm9Kz08FT4MqcRo5oC67/lnCINvdb2zdw+GRXzSwAJFSLNlxDpQtvehRO287+nTZWc9L/SJvVuGKPbSRnW+7r+BncTxf6+BiGAKDvHoM+wQvQXiJYZCkdpCB4HM15GNA4duvyOcj15HyS+/25l7b/G0Jxvlg+rruQfUDkwzwNisZYlNJ37MbZ7+l1Q==; s=purelymail2; d=spwhitton.name; v=1; bh=ldsdcJv2UiIZ6N35Sf3C0HjPaEMVt/EOpmEHafkAYc0=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=M6T2OmAY0YslaK5fS+faJaME681flzOP7NbtRC2Z3TAmpyT4Ij8H01fLJgWFuutybaYFGaXXnOvH21W9Ya+Al9f6NHQEXFJ+nlgP0VQgDQUKcMISjD/olnr0QjsDEN/Yb1KHOM/MbBwHboImAK6yjFcz9KlxxO1FsY/fU7HrWYn/nnC5AfItqr+zU3F6OnICGX8K8NKvmNkR9+LWNGYu5Qd2fVEm0Qol6/JhEqe+ul9XsNtGKwxXRN6cGsGTshWemZKNJ9q6U8MU0gmmrY57rC9YnBGQtCqmpogkGXPCU0LTikBgrZhDPvotrlq8ZR6e3qO/3Xe09JuFXCT89C5DXw==; s=purelymail2; d=purelymail.com; v=1; bh=ldsdcJv2UiIZ6N35Sf3C0HjPaEMVt/EOpmEHafkAYc0=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 77580@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1286269302; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Fri, 11 Apr 2025 10:40:38 +0000 (UTC) Received: by melete.silentflame.com (Postfix, from userid 1000) id 624D87EF94C; Fri, 11 Apr 2025 18:40:35 +0800 (CST) From: Sean Whitton To: "Paul D. Nelson" Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: <87tt6wdqml.fsf@web.de> References: <87tt6wdqml.fsf@web.de> Date: Fri, 11 Apr 2025 18:40:35 +0800 Message-ID: <87tt6v56cc.fsf@melete.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: Michael Heerdegen , 77580@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Thu 10 Apr 2025 at 04:42pm +02, Michael Heerdegen wrote: > Hello, > >> M-x vundo, m, b, d, q, C-x b *vundo-diff. >> >> These ergonomics scale nicely when exploring undo histories, but for >> quick comparisons, they're hardly better than "fully manual" (copying >> to a temp buffer and doing diff-buffers). > > My main concern is whether your proposed interface is really convenient. I was about to write pretty much the same thing: I think that these commands are not yet fully baked. I think that they are too difficult to use. The problem is, it seems too difficult for the user to know what prefix argument to supply. We don't keep a count of buffer changes in our heads so that we could know how many changes back we need to go to get a diff that will contain the information we want. In fact, showing a diff for a given number of undo operations backwards seems more like a function to be called from Lisp than an interactive command, because Lisp could calculate the number of operations to go back, somehow. If there is a more minimal version of vundo that is accessible and generally useful, we haven't found it yet. It's fine if this takes some time, we can keep the bug open and let the ideas simmer and come up with something really good. -- Sean Whitton From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 12 17:15:39 2025 Received: (at 77580) by debbugs.gnu.org; 12 Apr 2025 21:15:39 +0000 Received: from localhost ([127.0.0.1]:32926 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u3iCP-0005tJ-Qy for submit@debbugs.gnu.org; Sat, 12 Apr 2025 17:15:39 -0400 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]:56696) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u3iCN-0005sv-5i for 77580@debbugs.gnu.org; Sat, 12 Apr 2025 17:15:35 -0400 Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-5e5dce099f4so3974013a12.1 for <77580@debbugs.gnu.org>; Sat, 12 Apr 2025 14:15:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744492529; x=1745097329; darn=debbugs.gnu.org; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=XeEgJKJHXnApBouK6bDRwsdM0wd4GU7JZq4Q9Qq3Onk=; b=CJkLoQVcYx/8rHfIRS6weT3aHe4iv6cu9eMA1Dj94X+7JaCCmp3HnJEqVMnIRGkOZd HLIXvcKiBVs63AG/eJR+wCVxqnx4aIyM3smX83oFCRol9FsErc81rZ9Y/p0RLXzhqyBD iNds/Kgm5HFOZRxAb+6nwSGJ+nPPPECF/qG/JDHrWkAHaUlZOrKdkbrJRW14gCreMouu RZNreC3NYrbyuxp8IKQYjhIr2ONB2ybL9Cpx4L+4AbDrI+oj4wjig84oCwlZVBPp6Qxl t2tj7w8jru/oZxi+NDJlg22T+yatquNrOrb+JI+maaEeC00l8QLMpS/HWZDeNu94FIVL kJTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744492529; x=1745097329; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=XeEgJKJHXnApBouK6bDRwsdM0wd4GU7JZq4Q9Qq3Onk=; b=mk8V/e/EuEcuokneGQGu66fgd1Dd2sNHTqtpyRVTBcqSQi2yhOWet2RO8geu9FG4pU KQ+x5gDrZp/3sET/c59Hs1/SNsQA/3v5136EYQPoa5o0340Bl7V1BMsI1noZ9mEhiXOV phX9I0yZV1uEjBKhynXJo2b8VJANazyqiq64pzQlPhLZUcg65C5a4QNoo49qhr7nmqsY zldDBqOrnkY31QGpNdcfZDkf7DGwXXrufWxa0gkjPEDAk0lLNuBIGuwBl6YL9DyVWLAf jebzKrhad3Wu0LrzVTw2HP4Zo0wFxwzqpbfKq21o8noZkUPgGd7QYPvxjteQNSxD9VwR tR7w== X-Forwarded-Encrypted: i=1; AJvYcCX9Zu13d6C0LILRdDaigmSA8AyHABTk/IcMm/gfdpKCFycqkAjlnAO//miaZQGrW+f06iYe2g==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yxpa39qRThfiNSP3jbptd3p6e3SrYlU79AP/nSk1zQbMWqIQiCO GUrQJvA19k1x8QjhK5W62DONhmZAcHxrteseyyDofezU9CzAn1Bv X-Gm-Gg: ASbGncsH0gHVz9/FHm2pvJYtl4bakIiHNZ9b8RMg+ljJrvg7O+Je3FtcglbXmY0jL9u anoe7OXBZtoGZmAwiXa8JE1ku59PExVhJEWblogoR5oOEcFX63wZQ65IIdCEz+9ZolLjBKpMxEG hXIRcYDF0NPp+JEHRjMyz9SSsE08KJwzFuQp54dEPfSSHLZEA3L6UL7Tw2U27I2sRBw/Fgbotmx 4q7ARyKeO4cwOpJS6lguBAEdfnd9QNR0wgTaYZAIqLDcB2OWZQlDTx5VnTes0L20IU/nyRKcojd iorqL7uaqcSXEOB4YvrTUUuj+IYGI8XI1VzEY24hnQb/iQ== X-Google-Smtp-Source: AGHT+IHFjXmBmPzjmyVo9voVPgI5IvXWHUrfnRSHxxohFb/Pfnygy1Dxd6c772xtOITqbXg7DBPF8w== X-Received: by 2002:a17:907:84a:b0:ac7:ceb5:d07d with SMTP id a640c23a62f3a-acad34d8a43mr671407366b.32.1744492528296; Sat, 12 Apr 2025 14:15:28 -0700 (PDT) Received: from localhost ([185.229.155.55]) by smtp.gmail.com with UTF8SMTPSA id a640c23a62f3a-acaa1beb11csm652795266b.64.2025.04.12.14.15.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 12 Apr 2025 14:15:27 -0700 (PDT) From: "Paul D. Nelson" To: Sean Whitton Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: <87tt6v56cc.fsf@melete.silentflame.com> (message from Sean Whitton on Fri, 11 Apr 2025 18:40:35 +0800) Date: Sat, 12 Apr 2025 23:15:26 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: michael_heerdegen@web.de, 77580@debbugs.gnu.org, juri@linkov.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Thanks so much for taking the time to think and offer feedback. >> often that the last undo step is not what you think would be, and you >> don't know how far you must look back > We don't keep a count of buffer changes in our heads so that we could > know how many changes back we need to go to get a diff that will > contain the information we want. The proposed commands can be useful when the number of undo steps is 1, 2 or infinity. Examples: 1. After a buffer reverts because a file changes. 2. When you need to revert, perhaps just in a region, across file-save boundaries without suitable VC or backup endpoints available, or (Juri's example) across file and VC boundaries within a session. (Good reason to add the "minus prefix" option -- thanks Juri.) 3. After any complicated Emacs command. Suppose you've just done a query-replace-regexp with "!" that had unexpected effects. As an alternative to undoing and redoing the query-replace-regexp more carefully, you can ediff-undo. This is really a family of examples, one for each complicated Emacs command. In these cases, the ergonomics seem good to me. For cases (1) and (2), I'm not aware of an available alternative. It's been pointed out that the proposed commands are unergonomic when the prefix arg is large but not infinite. In my view, there's nothing intrinsically wrong with that. By comparison, undo itself is not a catch-all -- it's often better to use revert-buffer, backup files, VC, or vundo. We could steer the user away from such unergonomic cases by prepending the new commands with (when (>= arg 3) (user-error "Find a better way")) Jokes aside, can we improve the ergonomics in the "large but finite argument" case without effectively reinventing vundo? My first thought (following Michael's "slave buffer" suggestion) is to consolidate the two proposed commands into a single command, undo-preview, that displays a read-only buffer *undo-preview* containing a clone of the current buffer after ARG undo steps, with a transient keymap binding b, f, d, e, q, and RET to undo, redo, diff, ediff, quit and apply. Michael's more ambitious suggestion (pop-up views showing a visual history) sounds excellent, but I don't have immediate thoughts on how to achieve it, and wonder if it'd fit more naturally as a vundo enhancement. I've tried to keep the current proposal minimalist. From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 12 23:14:15 2025 Received: (at 77580) by debbugs.gnu.org; 13 Apr 2025 03:14:15 +0000 Received: from localhost ([127.0.0.1]:35596 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u3nnS-0004TS-Ft for submit@debbugs.gnu.org; Sat, 12 Apr 2025 23:14:15 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:33694) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u3nnO-0004Rn-GL for 77580@debbugs.gnu.org; Sat, 12 Apr 2025 23:14:12 -0400 DKIM-Signature: a=rsa-sha256; b=j+Nd7rbGrxM7Ufch0woArn4ih9DIm2WMGeOOjhKB9cYEv6h1rwHieLTJWfpA4qCxNJonChSj5TFLY945SVDKl5CmIkeJ+itoivcVCm63pR9kaIwpIpvQ1didWIPR1nZOQMsZyq26K4NwD5SBg+CHcQqmBIWjbghhBrBCO2gqG8yigyv1xMu+kBWOgbN1eoCkgLlrWVF9pmDCzDD1mfpZ6UmVPlEKHzF4wtqXH7xInpiTW80BmAanhf5AV86vyY0MEOYuT5JMRGKatV5fMz1P+lBlsQXYGXbGAv0LryFXcCamYesG393Yt3Ds7Le0vF8LfnjxlEMnL3U15Sw4lWKayg==; s=purelymail2; d=spwhitton.name; v=1; bh=v4RUJv92iv2sN5p/sqAYvB8dYqLvA18EpJvybQVhbDA=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=aw50+aN/VIZUTscter6I4ZTTkWWdFkfsHVDTVXXSDxP5ApVTcsAwhu6kCRdIs9BJL6Y17hK2pL1D4DVLnGb6y6D2Za7aZ1bKhmjEZOYNytUBswAdYiGZqqKAm+SNWr0ve/Sx65SRdNmk+U2FDDwR6NyTdOPZAf2gF877guDDSjosqfdZylA0UFXbJvTVqMLEix6I4a+u4AxnweHx0X0j52Qvrr2r1ViF2sz6pmudxkgyUkwKlX+veb0QyFNVVeU8vROQjNdFPkU4MlAPii3/6HjSZN47iXrKyTXJh1YPEwnvr5uzCEFzPnJZuJv3I14b9pxEAnVx5nLQs2y3qRwvKw==; s=purelymail2; d=purelymail.com; v=1; bh=v4RUJv92iv2sN5p/sqAYvB8dYqLvA18EpJvybQVhbDA=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 77580@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1129656418; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Sun, 13 Apr 2025 03:14:02 +0000 (UTC) Received: by melete.silentflame.com (Postfix, from userid 1000) id 89D6F7F196E; Sun, 13 Apr 2025 11:13:57 +0800 (CST) From: Sean Whitton To: "Paul D. Nelson" Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: References: Date: Sun, 13 Apr 2025 11:13:57 +0800 Message-ID: <87msckycqy.fsf@melete.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: michael_heerdegen@web.de, 77580@debbugs.gnu.org, juri@linkov.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Sat 12 Apr 2025 at 11:15pm +02, Paul D. Nelson wrote: > Thanks so much for taking the time to think and offer feedback. > >>> often that the last undo step is not what you think would be, and you >>> don't know how far you must look back > >> We don't keep a count of buffer changes in our heads so that we could >> know how many changes back we need to go to get a diff that will >> contain the information we want. > > The proposed commands can be useful when the number of undo steps is 1, > 2 or infinity. Examples: > > 1. After a buffer reverts because a file changes. > > 2. When you need to revert, perhaps just in a region, across file-save > boundaries without suitable VC or backup endpoints available, or (Juri's > example) across file and VC boundaries within a session. (Good reason > to add the "minus prefix" option -- thanks Juri.) > > 3. After any complicated Emacs command. Suppose you've just done a > query-replace-regexp with "!" that had unexpected effects. As an > alternative to undoing and redoing the query-replace-regexp more > carefully, you can ediff-undo. This is really a family of examples, one > for each complicated Emacs command. > > In these cases, the ergonomics seem good to me. I'm afraid I can't agree. I'm glad they work out for you, but I'm not sure they will for others. For example, if a complicated command or external process has made large edits to the buffer you might make further, small edits yourself before even realising that large edits had been made. And then you're into counting undo operations again. -- Sean Whitton From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 15 12:17:19 2025 Received: (at 77580) by debbugs.gnu.org; 15 Apr 2025 16:17:20 +0000 Received: from localhost ([127.0.0.1]:54235 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u4iyN-0003DV-3W for submit@debbugs.gnu.org; Tue, 15 Apr 2025 12:17:19 -0400 Received: from mout.web.de ([212.227.15.14]:56553) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u4iyJ-0003CF-Qp for 77580@debbugs.gnu.org; Tue, 15 Apr 2025 12:17:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1744733829; x=1745338629; i=michael_heerdegen@web.de; bh=5+jR7VMKq84bUTDXiIO1e0RdMALVRMKAUCyqU3PlAM8=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date: Message-ID:MIME-Version:Content-Type:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=hIRnkBTV6hrMrc3FHoTI2Q2JJ9WEugBi2Jl8dkCZ7M0BscIIPEGjNkrnnSTr9XmG yO9ZQKUBAPfAA2gLIBu0jgd/lNMSOpCtrYQCayXFlQXANO00XjdSRGDoC8DRleFVq aCIZjkNFpCK0IUgONW9jBb/5n0DjObaJvVypPO248d6FgltuzsT3sqT4Cb4Q1FxVw 3ACahg8n+koQ5kZUvWbwq59uO5M48A0tFgDQmB6I0TOp3bny5M7pNs1t8VWLJBd15 d6hZRsuUonf2SFDHEPfOL7/ETcYdO+JBqKZOqpMmKg5AVNWYagmoMKa4+02XKs+Hi LtytV+dGrFxzc8p8Cw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 Received: from drachen.dragon ([88.66.201.230]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MwjFu-1t6jV83vw2-012t7z; Tue, 15 Apr 2025 18:17:08 +0200 From: Michael Heerdegen To: Paul Nelson Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: References: <87mscricb7.fsf@melete.silentflame.com> Date: Tue, 15 Apr 2025 18:18:43 +0200 Message-ID: <877c3l2yak.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:QIwqyCMN4rPYNPISfWDQEKXYisFn1/wImLoLFrVtlsoyk3yX+75 ls/A273fmugpNJukF33FNqgf1oPCNKlNcsD4JbZhDhbeM1geJIUfWFo+WDT06pLgdYyRFyj wONuu3C6y6xBH67q1srBgFy5numXkpTLEBHa4Scb2j3FC5sdsKm8vfuUyAjZ7K/LATFgGxV cxP9TZDWSFxSq07r4Ghrg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:Do1M847uhSE=;9MEaaCZw0BxOYLxySM5HfLhnQhk +VdHg6x6blxQT1DCRa3vVS4OxSgLewWCIfxsuExErMpKbQUruTmAoTWfSuFouP5TzwuwbByu+ Sgp6Q3aha5z+LRBJIcikBQE31628MJhtVv7OUrOu9g92ll7089w7Hbqpw0KFRL9BE1WRHgRID Y19e65/BPYokldT4ZO/n6dIivS/4VLFbQafec0VmYC8g05c2R91HCcMpF6oURx1sfp+gI9xQt MTBeEIIO1jWqabTUZTtS80tGjagrnYf2wOeGKa51D1hg6zj6keqFaK42k8wf0iUIyPW8e4T1m l8LTPyFoZ/VOfMSHT3du12Q8gapDivUDbCV5Ngb4l7/0bKChTLzcWxiNw1Rs9MvYRjRuXlGwq MmT8F0Uid24o5XasfDLW+bTeQMENxIGtoOUg6GJt6hVJl3cSSoVaPVIepJfc/xGe+nG90k7IG ZKuKEgruOgqH/VxqzhclXjb8LgtfmjMzMKKYWuTjSS+r0z945kebWR6X7gkv2ilpF2QnSWQyM qMsxMamxLn3QSPSvS0tr5V8poVtj96MIRbokqSDKZEy8i3nLKalKgpgPdL3aVZsrhMzupuoln +LQAWpEcWrDKbC9lJ9OtVzETPBDaefuUtLpf8NSmjrrw9JFIH0H4iGFLr11hYNUghgHsRj67B fVuFBfn9ej+Hyj3WVigiD1TjoUdCRyy22FkbGfvKz5yTqwoUiYP1OlZvb2x8zwNYKSBIlfDyg eXNtK57C0JeB8Y8lSArgOfknLPwer+33OgoB6EroB1Tqlullua4NPce1OX7RzqxxKYqNGOQyt KnrNRqqsrSYDyyGFUnTmzoUjumGn0qe05XXdlsS26e8FN5KPqdMEsN5btWSyrqMPDrumyvZbc K6P026NAf8YHAD4IIkd2DAGh/yBXRFJcSOmH4MildHtIR2u7wW/tW+MOqyxpZ5sTHVZ7VjQa+ mjUSJThpAVaYUJWC4gJdJr61KvvbbDHFUYibmkgfpzPlntjdrWVoBde4qjrvMHHePn+HFQx7t PgRZB1lXhJOjz5p8Lwe68SuS+JrgEustJ/o2hBJBt5g44YaaSx9M9Vwc9dhiYIQtnr90kj+vS TWm5a5lhsZcYtiECE2uXw+8eUrPnr7RnGIDM6ivNb8AJIbiC7BGCP/jpiH0jXQp6f3Uc0eA2Q nX3ztmtYtcj9Lz6dx5Pxmtd49ISK1ni+8mxSn4ajHXk/HyhOhfrYkH+bCJRL+y+Oh2h4aKZ3E CKZDKWMR4lkDDiyD2wajwjD//ycBJVlX51TklKGE8UY3/36ZVl3fzR6pFvEwiO1ol5Ey5Ymx8 vvl/xCfxh9Bk6lFobUpPNcDRXY8e6Zvj3iYbPu092+014r6J4pGCjcCSJ8VwGeBiCv1tXVwO4 QUhqXgnItYxVJzVi6gWjeHbK2R4wc7uEZCLUwWip2RMYewv0NIUT3KBvnBJ/ycIZEsfpnzrAS HLYC3twCYkBlyiQ27X0bwTIRFw3yI+2OtSA0DeTle4bfGwcqRMyJbAhu39yysrl+QbcYy/jB7 7fYOfSg7DFMlu+uoAfyJzL6+NRs9mWvScc1eLCRXFECqiIuz3T6UgueakxjEr/gLOBbe1HzGZ LjQPmETUAqDkO2XrqvH9wJFYfCpwYEH7gBGekmzk18+NanIWKlyP625nyWKQxFvwIF29sY+L/ bl9krs9nskkA+pqVAPvh6fgDRKwPumGV8sJqtciOf7vD40/PDzcWp+2FN0lqLWVIwfMvG6yP2 UIHug+y94bGeXyPuwCHfAH6HriV/RAhIbVNoHyzT1QWUmL3Xkr4gg3J8FI8Ae276ySKWZv+ma klBaIPUOeXokNzKpNGvFwclDu6bd1QBLSIUMYVFdRCkQOpoG1VfMguHqFtbAaFalN8NPSNGcq 9TiYdzo2xR6LUxwC60D3c6+2N043UagN4NyjufMU2BUDFQjo2FOQ4unh7LaYhHQpFQARsmXie gD1MZrwb0QgPC97CTWyMlJXY+PuMzIMhrJ0YRWxsJj0S1k4tTR8T6o68yujxgOI9KoFVzn0Jv BP7WT/KcPtqxBoIs7mcpbTIwd6hZSULCNiCGjjzYI+x2UiItanFuJJOKs06jHi4esfNlxG1pd 9k90/yn7f/wEGH9DLbULWhbTVKqqhIYwPMut8BpaMBDTq0chT7XyVX4m6M41MR5Rj2/dJSY1J V3HIC1pAuy3cLPhc/7QZmXCoA9rAD47NrcAmHLup6HWl4OrZ3o+IEr35v/IP3nq7dyhOsv2ad DRvnmMbabl7OXqtjnUgszACNfrqPeYikfdBQ1VAWwQsIq1vJmavZamOcB4cwLu98MoxSKU8uj zTTajFmhM1SJGr7HRCcJR5JDBJ9RvAcYTcUjmzLZBbBq0/y7t8TMQ+1VPo3b81HB1gKy78jcq vWjrCmosyIoCTh+swJ+gzNK7K9NhdD2mzmIn0drH0Y2JfOY3Oq4sZVys/VTBkuYOqpmdvcLLN la1VqoGlAMHtida4s9jrbRo4sBHySxen8gxYGR/5mjlTTWvoA9biiJn44WTmlRC+zL8Y0DTYB JpWf9D98hpbkPmZePZZAV+Pj9FbXsEw0779V/yQ33DuaIjq2ntkCHq32cJPjLSy3dLxbZ2VC4 32g48gvlF4x3htHDLMKuqFxFqUueht+PEdaNPbx7p5uOJ5F+zcTB+JA/jQuFpv/vTDOkhXUM3 o+R9yoO/HZ29I9JEt2ENbfKsFUzC8Drekay05vUUgYYGu5f/Wm3kD2vu5qbFUhyPlMN9WYCt4 /01i++GmDcdLmu0IEbMlfrVkvAQetyO90E1JkYeU1xm7N1K0vMAE/UqcvAy2gv2FNC0PVWokH fXYdSViV5txmxJcv8sJ0fPyDO41YSXxVu/ywA3J+bT0lv25LUmWb9yp3N23k76zp7posRhREY rFpDCc5G9exLdNToNNpxC2csUUHe2z9kK4gvbJJgweWNgRqaFqR9PX0Le38gClTtw/0QBxi4E fjIiLlWweQ== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 77580 Cc: 77580@debbugs.gnu.org, Sean Whitton X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Paul Nelson writes: > And (with apologies for the spam) a further, hopefully final update, > that works in narrowed buffers. Some comments about your code, independent of how the end result will look like: - Consider to handle an active region similar to how you handle narrowing: undo is able to restrict undoing to the region. - There is a potential problem with the target buffers of `undo-to-buffer': they share the `buffer-file-name' with the original buffer. If they are modified, Emacs will potentially save the contents of these buffers to that file, resulting in a mess. - Since you mentioned reverting as a use case: doesn't the undo history get lost when a buffer is reverted? I remember that this is the case at least sometimes. Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 22 09:20:38 2025 Received: (at 77580) by debbugs.gnu.org; 22 Apr 2025 13:20:38 +0000 Received: from localhost ([127.0.0.1]:46857 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u7DYE-0002c1-6G for submit@debbugs.gnu.org; Tue, 22 Apr 2025 09:20:38 -0400 Received: from mail-ej1-x633.google.com ([2a00:1450:4864:20::633]:43244) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u7DYB-0002bh-6i for 77580@debbugs.gnu.org; Tue, 22 Apr 2025 09:20:35 -0400 Received: by mail-ej1-x633.google.com with SMTP id a640c23a62f3a-acb615228a4so834696766b.0 for <77580@debbugs.gnu.org>; Tue, 22 Apr 2025 06:20:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745328029; x=1745932829; darn=debbugs.gnu.org; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=Ztnmd7ZH8IjkIipGR/Chm3t0tuSS688WJLXYojUziJ8=; b=brj2sp3rfjJPFR1/+SPfyrAP0QyBJttnnHXr3u1v/D0p1hBRCWbdeIYunO4QcUM/ly eqUELkfDcrI+uNq2E6XZmgQcHsfsw2x1ruVpcG/KAr3O5WoHNbZbOsqwfYzxhOucQIB0 wzSsFFlvQu9GRfaQSWLnzDvzbWCPY+GR4S9YM88UpvgRjkesZ5MNlPYbqeGdFTzSidg1 1gRKoSjwhuhZ15s6WpNQf/nCXyOZYz0A0ASQjJF1nbUfvHKrXn9La+2mA3AvvxtHScG0 CKu8GDkZJ5LIszN84qMJiU0KZj+rPAb+TEXdKDZPBA/MNTLBZaTkpISJ8Zqkcx1vrFhf T1Sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745328029; x=1745932829; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Ztnmd7ZH8IjkIipGR/Chm3t0tuSS688WJLXYojUziJ8=; b=H2I3BkvrS8Su8sjebBlkYvFOATBbw8TDaGhAKEnC7WZSRLpi7QtJL1JPWVIkiL0XlA LwxrK5PSrRsao6WEowKZ+Y4bVcRrES8Ki7OqOjtQ+2DDdr4RfQwvN6C7J9nh/XbGD6o1 3kZt885DJDUbjzFFNlkD0kZw56UQQJTY5pzZuU7CrDI6m3VXyFZdXW9wak2O8y+QBjE+ E2NF0NqifbNL93p8t1RSYIQ5Znn3PE6JHkv9ZeqJr3yc4qQmEmEXtAvXul43b0a5Y3kU TfWzQL58ScSb1jFJw5Epg0r5Lh3xXgfRlJfNN6kXXbuGSIQbpAUwMVg4ZPStOl1RH7Pk Idkw== X-Forwarded-Encrypted: i=1; AJvYcCUkJ+iQirBsfvx8FNL7HsVfaWW8n+X50CfvyhaH3y0gDaz+xYOPScARuJfiYBrDZ4Xh5BeKCg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxWaqKMJwkWfG0VygkZ1PH/RGYMzd+IIAG0rbF2pX0SKKiI3ieL NVkFxlh4/YFx7W9TI6T4gOwBgFSla/g1aHMGtIut5LJ/xyhloV5a X-Gm-Gg: ASbGncsbuqxzOu3mXaWgGtB7VBtKzY5U408t2rU6splLpQKOwKwtxXGT3SHuDWeRJ/N UF/DbaftXrkQcYXKjEVc7eYCXVsFo/WXnbUJXDrUx+NgeSQJEcQ9cj4Otxqug2CoRrnTK6K0Trl JeZT1+sfCGPeHDrrDpJUs8bq9VBX/PvbcfkZczI8H9hkvr5aKM1gCTJoyXgWCaVKGLC9U9Mk4Qz /hi0IDN4zcWUf1WP3ucotZ8aBQRbywXkd2b9LOyCruMwxyWEOc5UKEKldeWZbPgfp8BcXQQBZ2w p4wtBgpkQpDsRWb0l5q/H75RAtcdLeuoF8/DsZ1teu+0 X-Google-Smtp-Source: AGHT+IFUe2Fl+ndbBwxUEw5qJ9ckANflQui57+Hz+K8XbQYLw79/jxIVlAMk1wA+XPvzzhVVSvcn3A== X-Received: by 2002:a17:907:d17:b0:ac7:981d:b137 with SMTP id a640c23a62f3a-acb6ee24847mr1166772666b.22.1745328028680; Tue, 22 Apr 2025 06:20:28 -0700 (PDT) Received: from localhost ([130.225.21.26]) by smtp.gmail.com with UTF8SMTPSA id a640c23a62f3a-acb6ec42af6sm651487066b.43.2025.04.22.06.20.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 06:20:28 -0700 (PDT) From: "Paul D. Nelson" To: Michael Heerdegen Subject: Re: bug#77580: [PATCH] New command ediff-undo In-Reply-To: <877c3l2yak.fsf@web.de> (message from Michael Heerdegen on Tue, 15 Apr 2025 18:18:43 +0200) Date: Tue, 22 Apr 2025 15:20:27 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77580 Cc: 77580@debbugs.gnu.org, spwhitton@spwhitton.name X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Michael, thanks for your feedback. > - Consider to handle an active region similar to how you handle > narrowing: undo is able to restrict undoing to the region. I think feature is already there in my patch -- if the region is active, then it previews undoing in the region, just like undo. Would be happy to hear if I missed something. > - There is a potential problem with the target buffers of > `undo-to-buffer': they share the `buffer-file-name' with the original > buffer. If they are modified, Emacs will potentially save the contents > of these buffers to that file, resulting in a mess. I tested it just now with ediff-undo, and it seems on my end that buffer-file-name is new in the target buffer. If I try saving, then I'm prompted for a file name. Again, happy to hear if I missed something. > > - Since you mentioned reverting as a use case: doesn't the undo history > get lost when a buffer is reverted? I remember that this is the case > at least sometimes. I'm not familiar with how reverting affects undo history. I see it as a mostly orthogonal issue (since the idea is to use previewed undo in a region as a region-specific way to preview reverting, rather than to use existing reverting functions), but I'll keep this in mind. Thanks!