pagestats: Use a combination of precense and link dependencies.
authorJoey Hess <joey@gnu.kitenet.net>
Mon, 5 Oct 2009 19:44:26 +0000 (15:44 -0400)
committerJoey Hess <joey@gnu.kitenet.net>
Mon, 5 Oct 2009 19:44:26 +0000 (15:44 -0400)
This makes it more efficient.

It also fixes the same bug that I fixed in orphans recently,
that only changes to the set of displayed pages were considered (or amoung),
which missed changes to links on other pages to those.

Probably this bug was never noticed because pagestats is most often put
on a blog type page, which gets updated anyway when posts change,
and thus the tag cloud was updated.

IkiWiki/Plugin/pagestats.pm
debian/changelog

index 874ead7e6de669c1d33c66b74984ef90504f9b8e..00b919325ff3b194f7159a84133515721d83328c 100644 (file)
@@ -35,10 +35,13 @@ sub preprocess (@) {
        $params{pages}="*" unless defined $params{pages};
        my $style = ($params{style} or 'cloud');
        
-       # Needs to update whenever a page is added or removed, so
-       # register a dependency.
-       add_depends($params{page}, $params{pages});
-       add_depends($params{page}, $params{among}) if exists $params{among};
+       # Needs to update whenever a page is added or removed.
+       add_depends($params{page}, $params{pages}, exists => 1);
+       # Also needs to update when any page with links changes, 
+       # in case the links point to our displayed pages.
+       # (Amoung limits this further.)
+       add_depends($params{page}, exists $params{among} ? $params{among} : "*",
+               links => 1); 
        
        my %counts;
        my $max = 0;
index abbd87abc18187b6248d0a4bb7706f3f38d511c0..000203405b99e4d2ce961b14c0a3e4b412c4089d 100644 (file)
@@ -22,9 +22,9 @@ ikiwiki (3.14159266) UNRELEASED; urgency=low
   * inline: Use a presence dependency in quick mode.
   * brokenlinks: Use a link dependency.
     This makes it much more efficient, only updating when really necessary.
-  * orphans: Use a combination of precense and link dependencies.
-    This makes it more efficient. It also fixes a longstanding bug,
-    where if only a small set of pages were considered by orphans,
+  * orphans, pagestats: Use a combination of precense and link dependencies.
+    This makes them more efficient. It also fixes a longstanding bug,
+    where if only a small set of pages were considered by orphans/pagestats,
     changes to links on other pages failed to cause an update.
   * Transitive dependencies are now correctly supported.