summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-12-28 22:15:38 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-12-28 22:15:38 +0000
commit8323bc5214bf3581ebfbad57385934033c228b76 (patch)
tree5383d606c42815f5509507c5c09a48cb2ffc0de8
parent4381a2e9f733d7b4fd97e7ad1c4aeda03f239b9c (diff)
* 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.
-rw-r--r--IkiWiki/Render.pm11
-rw-r--r--debian/changelog5
-rw-r--r--doc/bugs/underlaydir_file_expose.mdwn6
-rw-r--r--doc/index/discussion.mdwn2
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 <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
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.