From: Joey Hess Date: Wed, 12 Dec 2007 19:43:35 +0000 (-0500) Subject: * Avoid unnecessary stat calls to get mtime when rendering pages, use X-Git-Tag: 2.16~51 X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/849f65a3437391562b88fef9c450d0931676342f * Avoid unnecessary stat calls to get mtime when rendering pages, use cached value. * Preserve input file modification times in output files. --- diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index e4ff2b39b..047ab8212 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -64,10 +64,9 @@ sub parentlinks ($) { #{{{ return @ret; } #}}} -sub genpage ($$$) { #{{{ +sub genpage ($$) { #{{{ my $page=shift; my $content=shift; - my $mtime=shift; my $templatefile; run_hooks(templatefile => sub { @@ -129,7 +128,7 @@ sub genpage ($$$) { #{{{ content => $content, backlinks => $backlinks, more_backlinks => $more_backlinks, - mtime => displaytime($mtime), + mtime => displaytime($pagemtime{$page}), baseurl => baseurl($page), ); @@ -204,8 +203,9 @@ sub render ($) { #{{{ filter($page, $page, readfile($srcfile))))); - writefile(htmlpage($page), $config{destdir}, - genpage($page, $content, mtime($srcfile))); + my $output=htmlpage($page); + writefile($output, $config{destdir}, genpage($page, $content)); + utime($pagemtime{$page}, $pagemtime{$page}, $config{destdir}."/".$output); } else { my $srcfd=readfile($srcfile, 1, 1); @@ -231,6 +231,7 @@ sub render ($) { #{{{ } } }); + utime($pagemtime{$file}, $pagemtime{$file}, $config{destdir}."/".$file); } } #}}} @@ -485,8 +486,9 @@ sub commandline_render () { #{{{ $content=preprocess($page, $page, $content); $content=linkify($page, $page, $content); $content=htmlize($page, $type, $content); + $pagemtime{$page}=mtime($srcfile); - print genpage($page, $content, mtime($srcfile)); + print genpage($page, $content); exit 0; } #}}} diff --git a/debian/changelog b/debian/changelog index 5f05f7a0f..af413c831 100644 --- a/debian/changelog +++ b/debian/changelog @@ -25,6 +25,9 @@ ikiwiki (2.16) UNRELEASED; urgency=low I believe this is a safe change, since only passwordauth uses this hook. (If some other plugin already used it, it would have broken passwordauth!) * Ensure that web edited pages always end in a newline. + * Avoid unnecessary stat calls to get mtime when rendering pages, use + cached value. + * Preserve input file modification times in output files. -- Joey Hess Mon, 03 Dec 2007 14:47:36 -0500