Description
Pages are only partially handled case-sensitive. Editing them can result in a mess and potentially loss of data.
This is related to bug https://moinmo.in/MoinMoinBugs/RenamepageCasesensitive, but I don't want to rename the page.
This is related to feature https://moinmo.in/FeatureRequests/CaseInsensitivePageNames, but I don't want pages to be case insensitive, I just want the case sensitive ones to work correctly.
Steps to reproduce
Type an URL of a non-existing page with lower case letters only, e.g. https://moinmo.in/lowercasebug
- When prompted to create the page, do so, enter some data ("sample data") and save the page.
- Open the original URL again to check if your data is displayed (URL without #preview)
Type the URL with different casing, e.g. https://moinmo.in/lowercaseBUG
- Note that the page content of the lower cased page is displayed
- Edit the upper case page, enter some additional data, e.g. "changed", save the page.
- Open the upper case URL again to check the data (URL without #preview)
- Open the lower case URL again. Note that the changed data is displayed.
Edit the lower case page. => Bug: the editor only shows the original text, not the changed text ("changed" is missing)
- Change the page, enter "yet another change", save it.
- Go to the upper case page. Note that the "yet another change" is displayed.
- Edit the page. Note that you're editing the "changed" version.
In case of minor edits, the editor might not recognize that he is editing a different page than expected. I didn't recognize it too, until I added a headline.
Example
Above steps should make it possible to reproduce.
Component selection
- general
Details
I'm a beginner and didn't change much in the config, except ~5 things mentioned on the LanguageSetup page.
MoinMoin Version |
1.9.8 |
OS and Version |
Windows 7 SP 1 x64 |
Browser |
Firefox 37.0.1 |
Python Version |
2.7 (C:\Python27\) |
Server Setup |
wikiconfig.py: DesktopEdition = True |
Server Details |
Server and client on same machine |
File system |
NTFS |
Language you are using the wiki in (set in the browser/UserPreferences) |
wikiconfig.py: language_default = 'en' |
On hard disk, I can only find one directory with all lower case letters, lowercasebug. The file edit-log contains this:
1429110755697651 00000001 SAVENEW lowercasebug <IP> <PC> 1423575656.53.22771 1429110943201251 00000002 SAVE lowercaseBUG <IP> <PC> 1423575656.53.22771 1429113792669495 00000003 SAVE lowercasebug <IP> <PC> 1423575656.53.22771 1429113985814333 00000004 SAVE lowercasebug <IP> <PC> 1423575656.53.22771 1429166672534679 00000005 SAVE lowercaseBUG <IP> <PC> 1423575656.53.22771 1429166682861879 00000006 SAVE lowercasebug <IP> <PC> 1423575656.53.22771
So, from file system point of view, everything seems to be ok. I also noticed today, that after a restart of my PC (and therefore a restart of my Moinmoin server), editing both pages showed the same content. Therefore I think this is a server-internal caching problem (e.g. caching in a hashmap which is case sensitive).
Workaround
Use a OS/FS that treats files/directories strictly case-sensitive.
Discussion
There is no special code in moin to support case-insensitive filesystems. It really expects "foo" and "FOO" to be different things.
Is there a way to turn caching off in moinmoin? Which file system for Windows which is case-sensitive so that I can apply the workaround?
Plan
- Priority:
- Assigned to:
- Status: