Subject: bug#14696: 24.3.50; order of items in `custom-file' (or init file)

From: Stefan Kangas <[email-masked]>
Date: Fri, 24 Dec 2021 22:27:38 -0800

Drew Adams <[email-masked]> writes:

> Enhancement request.
>
> Currently, options and faces are sorted using `string<' when written to
> your `custom-file'.  That can make it easy to find something in the
> file, I suppose, but (a) you can alternatively and easily find an entry
> using Isearch, and (b) you can always split a list in the file into
> lines and sort the lines, if you really want to see such a sort order.
>
> Is there some other reason to sort entries this way?

Yes, it makes it easier to keep under version control without conflicts.

> Alternatively, it could be more useful to put new and updated entries at
> the head of the option and face lists.  That way, the lists would record
> the update order (at least in some common cases, if not in all cases).
>
> And that can help when you want to find something that you changed
> recently.
>
> The enhancement request would be to either:
>
> 1. (Preferably) timestamp each update or new entry, e.g., as part of the
> entry itself or via a separate alist for all entries.
>
> 2. If not, do not sort entries using `string<', but just add then at the
> head of each list (options, faces).

This would create more conflicts when keeping your configuration under
version control, so I don't think it's a good idea.

> #1 would be more involved, but would be better (precise).  It would help
> us create a command, for instance, that would let you find changes made
> during any given time period etc.
>
> (In effect, this would be a bit like providing automatic version control
> for your custom file.)