4.30 Duplicate Suppression

By default, Gnus tries to make sure that you don’t have to read the same article more than once by utilizing the crossposting mechanism (see Crosspost Handling). However, that simple and efficient approach may not work satisfactory for some users for various reasons.

  1. The NNTP server may fail to generate the Xref header. This is evil and not very common.
  2. The NNTP server may fail to include the Xref header in the .overview data bases. This is evil and all too common, alas.
  3. You may be reading the same group (or several related groups) from different NNTP servers.
  4. You may be getting mail that duplicates articles posted to groups.

I’m sure there are other situations where Xref handling fails as well, but these four are the most common situations.

If, and only if, Xref handling fails for you, then you may consider switching on duplicate suppression. If you do so, Gnus will remember the Message-IDs of all articles you have read or otherwise marked as read, and then, as if by magic, mark them as read all subsequent times you see them—in all groups. Using this mechanism is quite likely to be somewhat inefficient, but not overly so. It’s certainly preferable to reading the same articles more than once.

Duplicate suppression is not a very subtle instrument. It’s more like a sledge hammer than anything else. It works in a very simple fashion—if you have marked an article as read, it adds this Message-ID to a cache. The next time it sees this Message-ID, it will mark the article as read with the ‘M’ mark. It doesn’t care what group it saw the article in.

gnus-suppress-duplicates

If non-nil, suppress duplicates.

gnus-save-duplicate-list

If non-nil, save the list of duplicates to a file. This will make startup and shutdown take longer, so the default is nil. However, this means that only duplicate articles read in a single Gnus session are suppressed.

gnus-duplicate-list-length

This variable says how many Message-IDs to keep in the duplicate suppression list. The default is 10000.

gnus-duplicate-file

The name of the file to store the duplicate suppression list in. The default is ~/News/suppression.

If you have a tendency to stop and start Gnus often, setting gnus-save-duplicate-list to t is probably a good idea. If you leave Gnus running for weeks on end, you may have it nil. On the other hand, saving the list makes startup and shutdown much slower, so that means that if you stop and start Gnus often, you should set gnus-save-duplicate-list to nil. Uhm. I’ll leave this up to you to figure out, I think.