The conflicts testcase has 4 failing test cases. The underlaying problem
is that there are multiple possible source files that can create the same
destination files.
foo.mdwnis in srcdir, rendered to destdir. Then it is removed, andfoois added, which will be rendered raw to destdir. Since thefoo/directory still exists, it fails.foois added to srcdir, rendered raw to destdir. Then it is removed from srcdir, andfoo.mdwnis added. Thefoofile is still present in the destdir, and mkdir of the directoryfoo/fails.foo.mdwnrenders tofoo/index.html. Thenfoo/index.htmlis added to the srcdir, using rawhtml. It renders to the same thing.foo/index.htmlin srcdir is rendered to same thing in destdir using rawhtml. Thenfoo.mdwnis added; renders same thing.
Note that another case, that of page foo.mdwn and page foo.txt, that
both render to foo/index.html, used to cause problems, but no longer
crashes ikiwiki. It now only complains in this situation, and which
file "wins" is undefined. The fix for this relied on both pages being
named foo; but in the above cases, the source files have different
pagenames.
One approach: Beef up checking in will_render to detect when the same
destination file is rendered by multiple pages. Or when one page renders
a file that is a parent directory of the rendered file of another page.
It could warn, rather than erroring. The last page rendered would "win";
generating the destdir file.