else {
$_->{link} = pagetitle($_->{page});
}
- if (defined $_->{diffurl}) {
+ if (defined $_->{diffurl} && length($_->{diffurl})) {
$has_diffurl=1;
}
a poll.
* trail: Avoid massive slowdown caused by pagetemplate hook when displaying
dynamic cgi pages, which cannot use trail anyway.
+ * Deal with empty diffurl in configuration.
-- Joey Hess <joeyh@debian.org> Sat, 22 Dec 2012 16:15:24 -0400
--- /dev/null
+A site got stuck like this:
+
+<pre>
+/home/b-fusioninventory/public_html/documentation/index.es.html independently created, not overwriting with version from documentation.es
+</pre>
+
+I tried rebuilding it, and the rebuild failed like this:
+
+<pre>
+building recentchanges/change_ef4b9f92821335d96732c4b2c93ed96bc84c2f0d._change, which depends on templates/page.tmpl
+removing recentchanges/change_9ca1de878ea654566ce4a8a031d1ad8ed135ea1c/index.html, no longer built by recentchanges/change_9ca1de878ea654566ce4a8a031d1ad8ed135ea1c
+internal error: recentchanges/change_9ca1de878ea654566ce4a8a031d1ad8ed135ea1c._change cannot be found in /home/b-fusioninventory/source or underlay
+</pre>
+
+This internal error seems like the root cause of the original failure.
+ikiwiki crashed and did not record that it wrote the index.es.html file.
+
+Deleting the indexdb and rebuilding cleaned up the problem.
+
+This needs more investigation. --[[Joey]]
--- /dev/null
+recentchanges.pm sets the template variable HAS_DIFFURL to 1 based solely on whether or not diffurl is defined. I found that diffurl was defined, but empty. The recentchanges template depends on this for recentchangesdiff to properly function -- diff toggling is dependent on HAS_DIFFURL evaluating to false. Adding a check for a non-zero length diffurl fixed the issue for me. A patch against ikiwiki-3.20121212 is as follows:
+
+ --- a/IkiWiki/Plugin/recentchanges.pm 2013-01-27 20:08:59.000000000 -0800
+ +++ b/IkiWiki/Plugin/recentchanges.pm 2013-01-27 20:08:30.000000000 -0800
+ @@ -181,7 +181,8 @@ sub store ($$$) {
+ else {
+ $_->{link} = pagetitle($_->{page});
+ }
+ - if (defined $_->{diffurl}) {
+ + if (defined $_->{diffurl} &&
+ + length($_->{diffurl}) > 0) {
+ $has_diffurl=1;
+ }
+
+
+(There should be one more line at the bottom with a single space on it...)
+
+> [[applied|done]] --[[Joey]]
> Merged to current head. --[[Joey]]
-* Return bounded output from `rcs_diff()` when asked, as the API states.
- (6753235d98a3903364af26c0614106c47d93ae35)
-* When adding a text file under a name formerly tracked as binary,
- fix CVS keyword substitution behavior by explicitly setting `-kkv`.
- (e45175d5454cc72b261507260accb309f13b5e8b)
+----
+
+Hi! Bugfixes in `schmonz/cvs` I'd like to see merged:
+
+* `6753235d`: Return bounded output from `rcs_diff()` when asked, as
+ the API states.
+* `e45175d5`: Always explicitly set CVS keyword substitution behavior.
+ Fixes behavior when a text file is added under a name formerly
+ used for a binary file.
+* `b30cacdf`: If the previous working directory no longer exists after
+ a CVS operation, don't try to `chdir()` back to it afterward.
+
+These are all the diffs that exist on the branch, so if the changes
+are acceptable you should be able to simply merge the branch.
+--[[schmonz]]
I've also noticed that IkiWiki seems to use the creation time for the generated page for the page date. This means that when I do a rebuild, `inline`d pages get shuffled. The inclusion of a `time` variable in `edittemplate` (and in a `meta` declaration for all such pages) prevents the date from changing unexpectedly.
-I've already made these changes in my installation, and have made my patches available in the `edittemplate` branch of my repository, which [[I've posted|git]].
+I've already made these changes in my installation, and have made my patches available in the `edittemplate` branch of git://civilfritz.net/ikiwiki.git.
Changes to the structure of `$pagestate{$registering_page}{edittemplate}{$pagespec}` mean that a `cgi` rebuild is necessary (for reasons I don't entirely understand); but I think that's preferable to creating an entirely separate `$pagestate` namespace for storing parameters. That said, I'm not really a perl programmer, so corrections are welcome.
+
+> I like this patch. I hate seeing things I've already read get marked as unread in my rss feed. -- [[JoshBBall]]
--- /dev/null
+My name is Joshua B. Ball. I can be contacted at [JoshBBall@gmail.com](mailto:JoshBBall@gmail.com). I love haskell.
+
+[Github](http://github.com/sciolizer)