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)

Reply via email to