Re: adding new messages to prior hypermail archive

From: Tom von Alten <Tom_vonAlten_at_boi.hp.com_at_hypermail-project.org>
Date: Thu, 8 Oct 1998 08:59:18 -0600
Message-Id: <01BDF299.F1F62380.Tom_vonAlten_at_boi.hp.com>


Having newly joined the list, I'm going back over some of the prior messages, and found this, in September.

Jeffrey K. MacKie-Mason (jmm_at_umich.edu) wrote (in part):

> I now have 65 new messages in a mailbox that I want to add.
> I've tried a standard run, as Gordon suggested (those are Gordon's
> paths):

> /home/gordon/bin/hypermail \

...
> -m "/home/gordon/mail/cusid" \

...

> That had the following result: The new index files overwrote the
> existing index files, and showed the information for the 65 *new*
> messages but no listings for the 467 original messages. However, the
> archive in fact contained the 467 html files for the original
> messages, but did *not* contain files for any of the new messages.
> (Click on New #1 in the index, and it goes to file 0000.html which
> is Old #1.)

Our incoming processing (with a local 1.x version) writes a new message to a file, and then updates the list by one message with the -m and -u options.

Bringing up 2.0b3, I found this didn't work, regardless of settings for "overwrite" and "increment". The only way I could update an existing archive was by piping the message in on stdin.

Looking through hypermail.c, I found this at line 318:

    /*
    ** If you specify a mailbox you are indicating you
    ** don't want to increment only a single message.
    */
    if (use_mbox)

        increment = 0;

Line 428 &ff of hypermail.c goes like this:

    if (increment) {

        loadoldheaders(dir);
        loadheaders(mbox,use_stdin,1,dir);
        writearticles(dir,label,about,overwrite,bignum);
        if (show_msg_links) {
            fixnextheader(dir,bignum - 1);
            if (showreplies)
                fixreplyheader(dir,bignum);
            fixthreadheader(dir,bignum);
        }

    }
    else {
        loadheaders(mbox,use_stdin,0,dir);
        writearticles(dir,label,about,overwrite,0);
    }

This appears to give you the choice of

  1. updating by one message, or
  2. overwriting the archive from an mbox.

Even though "overwrite" is passed to writearticles, since loadoldheaders hasn't been called, overwrite=0 still leads to the indexes not being processed correctly.

With this test at line 318 of hypermail.c commented out, I do get the desired behavior for updating the archive with *one* new message from an mbox, but it doesn't work correctly for an mbox with multiple messages.

_____________ Hewlett-Packard Computer Peripherals Bristol Tom von Alten mailto:Tom_vonAlten_at_boi.hp.com Received on Thu 08 Oct 1998 05:10:37 PM GMT

This archive was generated by hypermail 2.3.0 : Sat 13 Mar 2010 03:46:11 AM GMT GMT