(Please CC me on replies, I'm not subscribed to the list.) My basic problem is: I want to restrict access (read and/or write) to paths that contain spaces, square brackets and '#'s.
The details: I have an application that uses an SVN repo to store file attachments. The paths to these attachments are also recorded in a MySQL database — the path and revision information are used by the app. In order to maintain uniqueness of paths, and to allow people to identify files in the repository when working outside the app, all files are prefixed with an ID, so the filenames have the form: [12345] some file name.ext Recently the requirement was added to impose SVN-level access control, so after looking at the options I went with VisualSVN Server 2.5.5, which is built on Apache Subversion 1.7.5. It gives me (and more importantly, my manager) a GUI to manage access control. Under the hood, however, VisualSVN seems to use an "authz-windows" file identical in format to the typical "authz" file to maintain access control information. The problem is this: it doesn't seem to work on files with the '[' or ']' characters in their name. Ignoring VisualSVN's GUI for now, I've tried going one step further and editing the "authz-windows" file by hand and I just can't seem to get it to work. I've tried variations like: [repo:/path/to/[12345] file.ext] [repo:/path/to/%5B12345%5D%20file.ext] [repo:"/path/to/[12345] file.ext"] [repo:/path/to/\[12345\] file.ext] ...but none of them actually restrict access to the file in question. I can restrict access to other files or paths in the same repository with the same file, so I know that ACL works to some extent. I just can't find any documentation that says that '[' or ']' are illegal in SVN, or that "authz" style access control adds restrictions to characters. Also, "svnauthz-validate" returns 0 for all of the above forms. It's also worth pointing out that some paths have the "#" character in them. What do I do when I get to those? — Jason