Optimize the dependencies list
authorSimon McVittie <smcv@ http://smcv.pseudorandom.co.uk/>
Thu, 18 Jun 2009 14:54:53 +0000 (15:54 +0100)
committerSimon McVittie <smcv@ http://smcv.pseudorandom.co.uk/>
Mon, 24 Aug 2009 22:18:10 +0000 (23:18 +0100)
commitfe4f176f725b069ac74561600bba982c2d9ad607
treef450ae4642b4c28d82f23aeb488c63f92ec54b5f
parentcc665380e3c9998ef04f1e42320cecd152ffd23c
Optimize the dependencies list

On a large wiki you can spend a lot of time reading through large lists
of dependencies to see whether files need to be rebuilt (album, with its
one-page-per-photo arrangement, suffers particularly badly from this).

The dependency list is currently a single pagespec, but it's not used like
a normal pagespec - in practice, it's a list of pagespecs joined with the
"or" operator.

Accordingly, change it to be stored as a list of pagespecs. On a wiki
with many tagged photo albums, this reduces the time to refresh after
`touch tags/*.mdwn` from about 31 to 25 seconds.

Getting the benefit of this change on an existing wiki requires a rebuild.
IkiWiki.pm
IkiWiki/Render.pm
ikiwiki-transition
t/index.t