emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs trunk and Gnus master are fully sync'd now


From: Giorgos Keramidas
Subject: Re: Emacs trunk and Gnus master are fully sync'd now
Date: Tue, 09 Jul 2013 13:08:16 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (darwin)

On Mon, 08 Jul 2013 20:24:28 +0200, David Engster <address@hidden> wrote:
> Giorgos Keramidas writes:
>> The messages logged point to 'unexist' for all the groups:
>
> [...]
>
>> Does `unexist' mean that the group does not exist locally?
>
> No. It means the 'unexist' range is missing, which makes Gnus think this
> Group was never synced before.
>
>> I see a few lines above that we check (and active uidvalidity unexist)
>> but if 'unexist' means that the groups does not exist in
>> `.newsrc.eld', then we are not reading the .newsrc.eld contents
>> correctly.
>
> The 'unexist' range contains article numbers which are no longer in the
> group (because they were moved or deleted).
>
> First, please make double sure that you are using at least Emacs trunk
> rev. 113257, or the latest Gnus from git.
>
> Then, to debug this further: If you hit 'G E' on a group, you see all
> the group info with the different ranges. You should see 'unexist' there
> somewhere, which can be empty or contain some article numbers or ranges.
>
> When you exit Gnus, this information should be written to the file
> newsrc.eld. Unfortunately, that file is barely human readable, but you
> can restart Emacs and load it through
>
> (load-file "~/.newsrc.eld")
>
> and then look at the variable `gnus-newsrc-alist'. Do the groups still
> have the 'unexist' ranges?

When I load a .newsrc.eld file produced by the Gnus version of emacs-24
branch the (unexist) ranges are there.  I used the following Lisp
snippet to split & group the groups based on a check for their 'unexist'
property:

    (defun group-by-unexist (newsrc-alist)
      (let ((left nil)
            (right nil))
        (mapcar (lambda (group-data)
                  (let ((name (car group-data))
                        (unexist (let ((third (nth 3 group-data)))
                                   (and (listp third)
                                        (not (null third))
                                        (assoc 'unexist third)))))
                    (if unexist
                        (setq left (cons name left))
                      (setq right (cons name right)))))
                newsrc-alist)
        (list left right)))

Running this:

    (group-by-unexist gnus-newsrc-alist)

before and after loading Gnus in Emacs 24.X shows all my mail groups in
the left group (found the 'unexist' property), and "nndrafts:drafts" in
the right group (no 'unexist' property).

Then as a second test, I started Emacs from trunk, compiled from this
changeset:

    commit 96ac507f8061d42bae399a900fe1408862e19795
    Author: Jan D. <address@hidden>
    Date:   Mon Jul 8 19:54:39 2013 +0200

        * NEWS: NS can be build with ImageMagick.

Running `M-x load-file RET ~/.newsrc.eld RET' and then:

    (group-by-unexist gnus-newsrc-alist)

correctly shows all my mail groups in the left group (they have the
'unexist' property and the `group-by-unexist' function can find it).

But then if I `M-x gnus' all groups go through an 'initial sync'.

So I think that something is broken in the way Gnus tries to read the
'unexist' value from ~/.newsrc.eld




reply via email to

[Prev in Thread] Current Thread [Next in Thread]