From 8323bc5214bf3581ebfbad57385934033c228b76 Mon Sep 17 00:00:00 2001 From: joey Date: Thu, 28 Dec 2006 22:15:38 +0000 Subject: [PATCH] * Improve code that ignores files in the underlaydir if the srcdir has a file building the same page. Now it will work even if the extensions of the source files differ. --- IkiWiki/Render.pm | 11 +++++++---- debian/changelog | 5 ++++- doc/bugs/underlaydir_file_expose.mdwn | 6 ++++++ doc/index/discussion.mdwn | 2 ++ 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 863964207..678075b82 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -247,13 +247,16 @@ sub refresh () { #{{{ warn("skipping bad filename $_\n"); } else { - # Don't add files that are in the + # Don't add pages that are in the # srcdir. $f=~s/^\Q$config{underlaydir}\E\/?//; if (! -e "$config{srcdir}/$f" && ! -l "$config{srcdir}/$f") { - push @files, $f; - $exists{pagename($f)}=1; + my $page=pagename($f); + if (! $exists{$page}) { + push @files, $f; + $exists{$page}=1; + } } } } @@ -266,10 +269,10 @@ sub refresh () { #{{{ my @add; foreach my $file (@files) { my $page=pagename($file); + $pagesources{$page}=$file; if (! $oldpagemtime{$page}) { push @add, $file; $pagecase{lc $page}=$page; - $pagesources{$page}=$file; if ($config{getctime} && -e "$config{srcdir}/$file") { $pagectime{$page}=rcs_getctime("$config{srcdir}/$file"); } diff --git a/debian/changelog b/debian/changelog index f95d08403..e455be1a3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,8 +11,11 @@ ikiwiki (1.37) UNRELEASED; urgency=low suprising behavior when using a setup file and not uncommenting any RCS options. * Fix some bugs in the commit email sending code. + * Improve code that ignores files in the underlaydir if the srcdir has a + file building the same page. Now it will work even if the extensions of + the source files differ. - -- Joey Hess Sun, 24 Dec 2006 00:51:11 -0500 + -- Joey Hess Thu, 28 Dec 2006 17:13:43 -0500 ikiwiki (1.36) unstable; urgency=low diff --git a/doc/bugs/underlaydir_file_expose.mdwn b/doc/bugs/underlaydir_file_expose.mdwn index 0c6f55425..b8e84969c 100644 --- a/doc/bugs/underlaydir_file_expose.mdwn +++ b/doc/bugs/underlaydir_file_expose.mdwn @@ -1,3 +1,9 @@ If a file in the srcdir is removed, exposing a file in the underlaydir, ikiwiki will not notice the change and rebuild it until the file in the underlaydir gets a mtime newer than the mtime the removed file had. + +Relatedly, if there are two files with different extensions that build a +page with the same name, in a directory, ikiwiki will update the page +whenever either changes, using the changed one as the source. But if that +most recently changed one is removed, it won't rebuild the page using the +older one as the source. diff --git a/doc/index/discussion.mdwn b/doc/index/discussion.mdwn index ac4f32d26..719768117 100644 --- a/doc/index/discussion.mdwn +++ b/doc/index/discussion.mdwn @@ -230,3 +230,5 @@ that sort of thing. Where or how do I submit it for inclusion? >> Until I fix that, you can avoid the one from the underlay directory by >> setting `underlaydir` to point to an empty directory. --[[Joey]] >> +>> Ok, fixed (in svn), it will now prefer files in the srcdir over files +>> in the underlaydir that build the same page, no matter what extension. -- 2.26.2