## 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
* 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.)
* 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]].)
--[[Joey]]