]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/bugs/transitive_dependencies.mdwn
update
[git.ikiwiki.info.git] / doc / bugs / transitive_dependencies.mdwn
index 89f0d7085e86326a59e5be9b060095d6d454a6b4..b073f190bb66a8e081f784fb246b88c8750e628a 100644 (file)
@@ -29,7 +29,7 @@ this bug coming back. Ugh.
 
 ## rebuild = change approach
 
 
 ## rebuild = change approach
 
-[[!template id=gitbranch branch=master/transitive-dependencies author="[[joey]]"]]
+[[!template id=gitbranch branch=origin/transitive-dependencies author="[[joey]]"]]
 
 Another approach to fix it is to say that anything that causes a
 rebuild of B is treated as a change of B. Then when C is changed, B is
 
 Another approach to fix it is to say that anything that causes a
 rebuild of B is treated as a change of B. Then when C is changed, B is
@@ -51,12 +51,17 @@ Downsides here:
 * Means a minimum of 2x as much time spent resolving dependencies,
   at least in my simple implementation, which re-runs the dependency
   resolution loop until no new pages are rebuilt.
 * Means a minimum of 2x as much time spent resolving dependencies,
   at least in my simple implementation, which re-runs the dependency
   resolution loop until no new pages are rebuilt.
+  (I added an optimisation that gets it down to 1.5X as much work on
+  average, still 2x as much worst case. I suppose building a directed
+  graph and traversing it would be theoretically more efficient.)
 * Causes extra work for some transitive dependencies that we don't
   actually care about. For example, changing index causes
   plugins/brokenlinks to update in the first pass; if there's a second
   pass, plugins/map is then updated, because it depends on plugins/brokenlinks.
   (Of course, this is just a special case of the issue that a real
   modification to plugins/brokenlinks causes an unnecessary update of plugins/map,
 * Causes extra work for some transitive dependencies that we don't
   actually care about. For example, changing index causes
   plugins/brokenlinks to update in the first pass; if there's a second
   pass, plugins/map is then updated, because it depends on plugins/brokenlinks.
   (Of course, this is just a special case of the issue that a real
   modification to plugins/brokenlinks causes an unnecessary update of plugins/map,
-  because we have only one kind of dependency.)
+  because we have [[only_one_kind_of_dependency|todo/dependency_types]].)
+  (Fixed now for cases like this one where contenless dependencies avoid
+  the unnecessary work.)
 
 --[[Joey]] 
 
 --[[Joey]]