changeset 16258:594fc9329628 stable

icasefs: use case preserved root for 'util.fspath()' invocation (issue3302) path to repo root may contains case sensitive part, even though repo is located in case insensitive filesystem: e.g. repo in FAT32 device mounted on Unix. so, case normalized root causes failure of stat(2). this patch uses case preserved root for 'util.fspath()' invocation to avoid this problem. case preserved root for 'util.fspath()' may decrease efficiency of fspath cache, but 'util.fspath()' is currently called only from dirstate, so this fix has less impact.
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Thu, 15 Mar 2012 00:46:37 +0900
parents 7a5524f240ad
children 7b9bf72430ba 0628290d98df
files mercurial/dirstate.py
diffstat 1 files changed, 1 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/dirstate.py	Wed Mar 14 14:45:41 2012 -0500
+++ b/mercurial/dirstate.py	Thu Mar 15 00:46:37 2012 +0900
@@ -78,10 +78,6 @@
         return self._copymap
 
     @propertycache
-    def _normroot(self):
-        return util.normcase(self._root)
-
-    @propertycache
     def _foldmap(self):
         f = {}
         for name in self._map:
@@ -406,7 +402,7 @@
                 folded = path
             else:
                 folded = self._foldmap.setdefault(normed,
-                                util.fspath(normed, self._normroot))
+                                util.fspath(normed, self._root))
         return folded
 
     def normalize(self, path, isknown=False):