unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Jimmy Wong <wyuenho@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 63891@debbugs.gnu.org
Subject: bug#63891: 29.0.91; customize-save-variable should not save all variables if a custom file exists
Date: Sun, 4 Jun 2023 14:02:55 +0100	[thread overview]
Message-ID: <28e951a5-7065-4c55-b6d0-88238e8cc5eb@Spark> (raw)
In-Reply-To: <83legz5qsu.fsf@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 2458 bytes --]

Yes sorry, I mean customize-save-variable, custom-save-variable doesn’t exist. There’s a branch in customize-save-variable that saves all previously updated variables to the custom file if it exists.

I just took a look at cus-edit.el, there appears to be no function that can surgically serialize just one variable value to the custom file. Fixing this the right way will probably involve changing all the places that call custom-save-all and still arguably result in a breaking change.
On 4 Jun 2023 at 1:55 PM +0100, Eli Zaretskii <eliz@gnu.org>, wrote:
> > From: Jimmy Yuen Ho Wong <wyuenho@gmail.com>
> > Date: Sun, 04 Jun 2023 13:36:30 +0100
> >
> >
> > As a discussion from bug #63300, it appears this long standing
> > undocumented behavior of `custom-save-variable` is coming into conflict
> > with the introduction of `connection-local-*` variables being user
> > customizable and the fact that Tramp in Emacs 29 sets them on
> > load. Here's a scenario where the combination of these behaviors results
> > in one too many surprises:
> >
> > 0. (setf custom-file "~/.emacs.d/custom.el")
> > 1. M-x load-library tramp (or install a package that transitively
> > requires tramp, without the user knowning)
> > 2. Now `connection-local-profile-alist` and
> > `connection-local-criteria-alist` are set by
> > `hack-connection-local-variables-apply`.
> > 3. M-x list-packages
> > 4. Installs a new package
> > 5. Now in addition to `package-selected-packages` being updated, 2
> > gigantic variables are also saved. Since these connection-local
> > variables are highly machine, application and connection dependent,
> > saving them into the custom file will make it very annoying to be shared
> > across multiple machines. This violates the principle of least
> > astonishment.
>
> I think the connection-local variables should be simple variables,
> initialized from corresponding user options. Then Tramp could hack
> the variables without fear of clobbering user customizations.
>
> Michael, can this be done on emacs-29 safely enough?
>
> > Expectation:
> >
> > `custom-save-variable` should only save the value of one variable
> > regardless of whether a custom file exists.
>
> How is custom-save-variable involved in the above scenario?
>
> And what is custom-save-variable? did you mean customize-save-variable
> instead? That one does save just one variable, the one you type at
> the prompt.

[-- Attachment #2: Type: text/html, Size: 3048 bytes --]

  reply	other threads:[~2023-06-04 13:02 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-04 12:36 bug#63891: 29.0.91; customize-save-variable should not save all variables if a custom file exists Jimmy Yuen Ho Wong
2023-06-04 12:56 ` Eli Zaretskii
2023-06-04 13:02   ` Jimmy Wong [this message]
2023-06-04 13:23     ` Eli Zaretskii
2023-06-04 14:00       ` Jimmy Wong
2023-06-04 14:26         ` Eli Zaretskii
2023-06-04 16:49           ` Jimmy Wong
2023-06-06 12:01           ` Michael Albinus
2023-06-06 12:20             ` Eli Zaretskii
2023-06-06 12:36               ` Michael Albinus
     [not found] <ae449be5-9a4c-4e7e-b624-deae8a27fbbb@gmail.com>
2023-10-27 10:57 ` Mauro Aranda
2023-10-27 11:51   ` Michael Albinus
2023-10-27 15:44     ` Mauro Aranda
2023-10-28  9:58     ` Mauro Aranda
2023-10-28 18:22       ` Drew Adams
2023-10-28 22:32         ` Mauro Aranda
2023-10-29  2:20           ` Drew Adams
2023-10-29 10:33             ` Mauro Aranda
2023-10-29 11:07               ` Michael Albinus
2023-10-29 11:50                 ` Mauro Aranda

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=28e951a5-7065-4c55-b6d0-88238e8cc5eb@Spark \
    --to=wyuenho@gmail.com \
    --cc=63891@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).