Mercurial > hg
changeset 15664:ec8730886f36 stable
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.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Fri, 16 Dec 2011 21:09:40 +0900 |
parents | 9036c7d106bf |
children | 081e795c60e0 |
files | mercurial/scmutil.py |
diffstat | 1 files changed, 3 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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)