From patchwork Tue Sep 26 10:58:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D754: dirstate: move filefoldmap to dirstatemap From: phabricator X-Patchwork-Id: 24152 Message-Id: <5db50e7e00fa0d20caea45e8f6f24734@localhost.localdomain> To: mercurial-devel@mercurial-scm.org Date: Tue, 26 Sep 2017 10:58:57 +0000 durham updated this revision to Diff 2078. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D754?vs=1949&id=2078 REVISION DETAIL https://phab.mercurial-scm.org/D754 AFFECTED FILES mercurial/dirstate.py CHANGE DETAILS To: durham, #hg-reviewers, indygreg Cc: indygreg, mercurial-devel diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py --- a/mercurial/dirstate.py +++ b/mercurial/dirstate.py @@ -160,21 +160,7 @@ @propertycache def _filefoldmap(self): - try: - makefilefoldmap = parsers.make_file_foldmap - except AttributeError: - pass - else: - return makefilefoldmap(self._map._map, util.normcasespec, - util.normcasefallback) - - f = {} - normcase = util.normcase - for name, s in self._map.iteritems(): - if s[0] != 'r': - f[normcase(name)] = name - f['.'] = '.' # prevents useless util.fspath() invocation - return f + return self._map.filefoldmap() @propertycache def _dirfoldmap(self): @@ -1370,3 +1356,22 @@ otherparent.add(fname) return nonnorm, otherparent + def filefoldmap(self): + """Returns a dictionary mapping normalized case paths to their + non-normalized versions. + """ + try: + makefilefoldmap = parsers.make_file_foldmap + except AttributeError: + pass + else: + return makefilefoldmap(self._map, util.normcasespec, + util.normcasefallback) + + f = {} + normcase = util.normcase + for name, s in self._map.iteritems(): + if s[0] != 'r': + f[normcase(name)] = name + f['.'] = '.' # prevents useless util.fspath() invocation + return f