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

It also fixes a longstanding bug, where if only a small set of pages were
considered by orphans, changes to links on other pages failed to cause an
update.

IkiWiki/Plugin/orphans.pm
debian/changelog

index d981670e78d22d5f85a86429cdcda9bc60f78d44..ae330b23b81e78abf227cbcb0a5cb757088e485a 100644 (file)
@@ -23,9 +23,13 @@ sub preprocess (@) {
        my %params=@_;
        $params{pages}="*" unless defined $params{pages};
        
-       # Needs to update whenever a page is changed, added, or removed,
-       # in order to see the link changes.
-       add_depends($params{page}, $params{pages});
+       # Needs to update whenever a link changes, on any page
+       # since any page could link to one of the pages we're
+       # considering as orphans.
+       add_depends($params{page}, "*", links => 1);
+       # Also needs to update whenever potential orphans are added or
+       # removed.
+       add_depends($params{page}, $params{pages}, presence => 1);
        
        my @orphans;
        foreach my $page (pagespec_match_list(
index 0255ac5d094a65e05a7cc29fd649120430c6ce52..363bb9dbd54c0249f72064c1684cc840c204765b 100644 (file)
@@ -22,6 +22,10 @@ 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.
+  * oprhans: 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,
+    changes to links on other pages failed to cause an update.
   * Transitive dependencies are now correctly supported.
 
  -- Joey Hess <joeyh@debian.org>  Sun, 27 Sep 2009 17:40:03 -0400