# HG changeset patch # User FUJIWARA Katsunori # Date 1324037380 -32400 # Node ID ec8730886f36d263ce204ad7d78523cb0e5e47d7 # Parent 9036c7d106bfe45821e4998e621c95f19840c8ef pathauditor: use normcase()-ed path for audit result cache in current pathauditor implementation, un-normcase()-ed path is stored into and compared with audit result cache. this is not efficiency on case insensitive filesystem. diff -r 9036c7d106bf -r ec8730886f36 mercurial/scmutil.py --- a/mercurial/scmutil.py Fri Dec 09 17:35:00 2011 +0100 +++ b/mercurial/scmutil.py Fri Dec 16 21:09:40 2011 +0900 @@ -81,12 +81,12 @@ '''Check the relative path. path may contain a pattern (e.g. foodir/**.txt)''' - if path in self.audited: + normpath = os.path.normcase(path) + if normpath in self.audited: return # AIX ignores "/" at end of path, others raise EISDIR. if util.endswithsep(path): raise util.Abort(_("path ends in directory separator: %s") % path) - normpath = os.path.normcase(path) parts = util.splitpath(normpath) if (os.path.splitdrive(path)[0] or parts[0].lower() in ('.hg', '.hg.', '') @@ -128,7 +128,7 @@ prefixes.append(prefix) parts.pop() - self.audited.add(path) + self.audited.add(normpath) # only add prefixes to the cache after checking everything: we don't # want to add "foo/bar/baz" before checking if there's a "foo/.hg" self.auditeddir.update(prefixes)