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;
+ }
}
}
}
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");
}
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 <joeyh@debian.org> Sun, 24 Dec 2006 00:51:11 -0500
+ -- Joey Hess <joeyh@debian.org> Thu, 28 Dec 2006 17:13:43 -0500
ikiwiki (1.36) unstable; urgency=low
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.
>> 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.