aggregate: Fix storing of changed md5.

The aggregate state merge code neglected to merge changes to the md5
field of an item. Therefore, if an item's md5 changed after initial
aggregation, it would be updated, and rewritten, each time thereafter.
This was wasteful and indirectly led to some expire problems.
master
Joey Hess 2009-06-12 19:24:47 -04:00
parent 9d4f803a01
commit 90b4d07960
2 changed files with 7 additions and 0 deletions

View File

@ -404,6 +404,7 @@ sub mergestate () {
}
# New guids can be created during aggregation.
# Guids have a few fields that may be updated during aggregation.
# It's also possible that guids were removed from the on-disk state
# while the aggregation was in process. That would only happen if
# their feed was also removed, so any removed guids added back here
@ -412,6 +413,11 @@ sub mergestate () {
if (! exists $guids{$guid}) {
$guids{$guid}=$myguids{$guid};
}
else {
foreach my $field (qw{md5}) {
$guids{$guid}->{$field}=$myguids{$guid}->{$field};
}
}
}
}

1
debian/changelog vendored
View File

@ -24,6 +24,7 @@ ikiwiki (3.141) UNRELEASED; urgency=low
openid or openid2.
* Disable the Preferences link if no plugin with an auth hook is enabled.
* Updated French translation. Closes: #532654
* aggregate: Fix storing of changed md5.
-- Joey Hess <joeyh@debian.org> Tue, 02 Jun 2009 17:03:41 -0400