3.12 Article Caching

If you have an extremely slow NNTP connection, you may
consider turning article caching on. Each article will then be stored
locally under your home directory. As you may surmise, this could
potentially use huge amounts of disk space, as well as eat up all
your inodes so fast it will make your head swim. In vodka.

Used carefully, though, it could be just an easier way to save articles.

To turn caching on, set gnus-use-cache to t. By default,
all articles ticked or marked as dormant will then be copied
over to your local cache (gnus-cache-directory). Whether this
cache is flat or hierarchical is controlled by the
gnus-use-long-file-name variable, as usual.

When re-selecting a ticked or dormant article, it will be fetched from the
cache instead of from the server. As articles in your cache will never
expire, this might serve as a method of saving articles while still
keeping them where they belong. Just mark all articles you want to save
as dormant, and don't worry.

When an article is marked as read, is it removed from the cache.

The entering/removal of articles from the cache is controlled by the
gnus-cache-enter-articles and gnus-cache-remove-articles
variables. Both are lists of symbols. The first is (ticked
dormant) by default, meaning that ticked and dormant articles will be
put in the cache. The latter is (read) by default, meaning that
articles marked as read are removed from the cache. Possibly
symbols in these two lists are ticked, dormant,
unread and read.

So where does the massive article-fetching and storing come into the
picture? The gnus-jog-cache command will go through all
subscribed newsgroups, request all unread articles, score them, and
store them in the cache. You should only ever, ever ever ever, use this
command if 1) your connection to the NNTP server is really, really,
really slow and 2) you have a really, really, really huge disk.
Seriously. One way to cut down on the number of articles downloaded is
to score unwanted articles down and have them marked as read. They will
not then be downloaded by this command.

It is likely that you do not want caching on all groups. For instance,
if your nnml mail is located under your home directory, it makes no
sense to cache it somewhere else under your home directory. Unless you
feel that it's neat to use twice as much space.

To limit the caching, you could set gnus-cacheable-groups to a
regexp of groups to cache, ‘^nntp’ for instance, or set the
gnus-uncacheable-groups regexp to ‘^nnml’, for instance.
Both variables are nil by default. If a group matches both
variables, the group is not cached.

The cache stores information on what articles it contains in its active
file (gnus-cache-active-file). If this file (or any other parts
of the cache) becomes all messed up for some reason or other, Gnus
offers two functions that will try to set things right. M-x
gnus-cache-generate-nov-databases will (re)build all the NOV
files, and gnus-cache-generate-active will (re)generate the active
file.

gnus-cache-move-cache will move your whole
gnus-cache-directory to some other location. You get asked to
where, isn't that cool?