subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache subversion Wiki <comm...@subversion.apache.org>
Subject [Subversion Wiki] Update of "UnicodeNormalization" by brane
Date Mon, 09 Dec 2013 09:38:26 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Subversion Wiki" for change notification.

The "UnicodeNormalization" page has been changed by brane:
https://wiki.apache.org/subversion/UnicodeNormalization?action=diff&rev1=1&rev2=2

- = Unicode Normalization for Path and Mergeinfo Lookup =
+ = Unicode Normalization for Path, Mergeinfo and Lock Lookup =
  
  This specification is the result of a number of ongoing discussions, starting including
issue [[http://subversion.tigris.org/issues/show_bug.cgi?id=2464|#2464]] and the various discussions
gathered on the UnicodeComposition page. It has also been strongly influenced by [[https://blogs.oracle.com/nico/entry/normalization_insensitivity_should_be_the|this
blog post]], which discusses the solution adopted by the ZFS filesystem.
  
@@ -14, +14 @@

  
  For repositories that use the FSFS backend, the solution must not affect the layout of the
revision files or directory contents. The repository administrator should be given the choice
whether to implement the solution, regardless of format version.
  
+ All of the above boils down to:
+  * The server must accept paths in any representation that can be normalized to the same
byte sequence as the as the normalized representation of the stored path (or mergeinfo entry
or lock path).
+  * The client must send paths (and mergeinfo entries and lock tokens) in exactly the same
representation as it received them from the server.
+ 
  FSX should incorporate the solution as a mandatory feature. BDB will not support it, ever.
  
+ == Solution ==
+ 
+ === Repository and FS API Implementation ===
+ 
+ In the FSFS back-end, we use paths as keys in three distinct ways:
+  * during lookup of directory entries physically stored on disk;
+  * for writing and reading entries in the node cache;
+  * when writing directory entries for new and changed nodes in transactions.
+ 
+ ...
+ 
+ === Client Implementation ===
+ 

Mime
View raw message