]> sipb.mit.edu Git - ikiwiki.git/commitdiff
class of bugs I am working on
authorJoey Hess <joey@kitenet.net>
Sun, 18 Jul 2010 17:52:03 +0000 (13:52 -0400)
committerJoey Hess <joey@kitenet.net>
Sun, 18 Jul 2010 17:52:03 +0000 (13:52 -0400)
doc/bugs/conflicts.mdwn [new file with mode: 0644]

diff --git a/doc/bugs/conflicts.mdwn b/doc/bugs/conflicts.mdwn
new file mode 100644 (file)
index 0000000..a674502
--- /dev/null
@@ -0,0 +1,30 @@
+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.
+
+1. `foo.mdwn` is in srcdir, rendered to destdir. Then
+   it is removed, and `foo` is added, which will be rendered
+   raw to destdir. Since the `foo/` directory still exists,
+   it fails.
+1. `foo` is added to srcdir, rendered raw to destdir.
+   Then it is removed from srcdir, and `foo.mdwn` is added.
+   The `foo` file is still present in the destdir, and mkdir
+   of the directory `foo/` fails.
+1. `foo.mdwn` renders to `foo/index.html`. Then `foo/index.html`
+   is added to the srcdir, using rawhtml. It renders to the same 
+   thing.
+1. `foo/index.html` in srcdir is rendered to same thing in destdir
+   using rawhtml. Then `foo.mdwn` is 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.