gnus: Article Caching

 
 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?