I have published a branch that uses a new filesystem layout that
eliminates all restrictions on database and view names at:
http://www.github.com/AntonyBlakey/couchdb/tree/escaped_filenames
It uses a structure like the following:
<database_dir>/
376256767373932aafbad43539978a53.couch/
data
name
fe58718fe13cd483fdc66fb4b2c512b1.couch/
data
name
b84dd25a153afb6a7412ab9c20413210.view/
data
name
The hex strings are MD5 digests of the database/view name. The
contents of each 'name' file is the UTF-8 encoding of the database or
design document responsible for the directory.
It seems to handle everything except a slash in the name of a design
document, but that's an issue internal to the view code, rather than
filesystem issue. I am tracking it down. There may also be Futon
issues, although I've so far only seen the single aforementioned issue.
Code opinions requested so that I can get this to a point suitable for
gatekeeper consideration.
Antony Blakey
--------------------------
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787
Always have a vision. Why spend your life making other people’s dreams?
-- Orson Welles (1915-1985)