Ferdinand Soethe wrote:
Tim and David wrote:
What are the best ways of
approaching it? (avoiding building unchanged document is the obvious first
step I guess)
Well yes, but that issue is complex. Evidently
Ferdinand talked with Cocoon people at ApacheCon
and might now have some answers.
Ferdinand, I'd also like to know what you discovered with the Cocoon
folks on this not building unchanged everything.
Well I basically discovered that <checksums-uri> in cli.xconf is
functional and works though I haven't figured out why it didn't work
when I tested earlier this year and I haven't had the time to
thoroughly test its function for all kinds of situation.
However I can already state that this is not going to reduce our build
time because of the way checksums works:
- Create or update a checksum for each document each time it is build
- Next time compare that checksum to the checksum for the newly build
document before it gets written and if they are the same, don't
write it again.
[OT - but related] This is perfect for the Google Sitemap plugin that
has recently been contributed to the whiteboard. Are there any docs on this?
For these two, skin changes and navi changes, this may be really dumb
(haven't fully thought it through) but how bad would it be to have a
different target for builds intended for a web server so that we could
utilize server side includes?
I don't understand how serverside include would solve any problem
other than inserting date-stamps?
Without SSI all navigation, tabs, and other page decoration is a part of
the served page. So a change to the skin/view results in every page
having to be regeneerated (yes you could do cleaver stuf with caching,
but you will still have to do the final stage of processing for *every*
page).
Using SSI the page decorations are not a part of the served page as
generated by Forrest, instead they are separate files that are pointed
to by the generated page. So, for example, a change in the navigation
structure only requries a single file to be regenerated - the navigation
structure.
How do we know what to regenerate? Use the checksums you describe above
to create a list of pages to regenerate.
Ross