diff options
author | Joey Hess <joey@gnu.kitenet.net> | 2009-07-19 12:36:01 +0200 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2009-07-19 12:36:01 +0200 |
commit | ec965fc92cd41f597c6e8e88584b9a688407c8c6 (patch) | |
tree | 410173c14f66ae62a6436ea00b73bb470c9d1dda /IkiWiki/Plugin/aggregate.pm | |
parent | 86edd73d169600875a10a635ef8df4a644545b0d (diff) | |
parent | fa2c3a3dba2a4589b63cf445ec9e33ec19be627e (diff) |
Merge branch 'master' into po
Conflicts:
debian/changelog
Diffstat (limited to 'IkiWiki/Plugin/aggregate.pm')
-rw-r--r-- | IkiWiki/Plugin/aggregate.pm | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/IkiWiki/Plugin/aggregate.pm b/IkiWiki/Plugin/aggregate.pm index e1baae666..5a9eb433d 100644 --- a/IkiWiki/Plugin/aggregate.pm +++ b/IkiWiki/Plugin/aggregate.pm @@ -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}; + } + } } } @@ -644,11 +650,13 @@ sub add_page (@) { # creation time on record for the new page. utime $mtime, $mtime, "$config{srcdir}/".htmlfn($guid->{page}); # Store it in pagectime for expiry code to use also. - $IkiWiki::pagectime{$guid->{page}}=$mtime; + $IkiWiki::pagectime{$guid->{page}}=$mtime + unless exists $IkiWiki::pagectime{$guid->{page}}; } else { # Dummy value for expiry code. - $IkiWiki::pagectime{$guid->{page}}=time; + $IkiWiki::pagectime{$guid->{page}}=time + unless exists $IkiWiki::pagectime{$guid->{page}}; } } |