Enabling Normalized Path Lookup in FSFS ======================================= The purpose of this [fsfs-ucsnorm] branch is to implement normalization-insensitive path lookups in FSFS. This will prevent the creation of paths that differ only in normalization, and will also remove the current constraint that paths used in the FS API must be byte-for-byte identical to those stored in the filesystem. The filesystem will *not* impose a particular normalization form, and it *will* preserve whatever representation it receives when a new path is created. This option would be enabled by default for all new FSFS-based repositories and *disabled* during repository format upgrade. The option can be disabled or enabled at any time during the lifetime of the repository; however, it is not safe to enable it without first running: svnadmin verify REPOS --check-normalization Proposed argument to 'svnadmin create': svnadmin create REPOS --disable-normalized-lookup Without this option, normalized lookup will be enabled by default. Proposed argument to 'svnadmin upgrade': svnadmin upgrade REPOS --enable-normalized-lookup Without this option, normalized lookup will be disabled during format upgrade, unless it was already enabled in fsfs.conf. Proposed option in fsfs.conf: [normalization] normalized-lookup = true|false Default value: true (in FSFSv7; false for older formats) References ========== Unicode Normalization Forms http://unicode.org/reports/tr15/#Norm_Forms Normalization Insensitivity (blog post) https://blogs.oracle.com/nico/entry/normalization_insensitivity_should_be_the zfs(1M) http://www.freebsd.org/cgi/man.cgi?query=zfs&apropos=0&sektion=0&manpath=FreeBSD+8.1-RELEASE&format=html zfs_share(1M) http://docs.oracle.com/cd/E23824_01/html/821-1462/zfs-share-1m.html#scrolltoc