mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 15:27:13 +03:00
dirstate: move filefoldmap to dirstatemap
As part of moving the dirstate storage logic to a separate class, lets move the filfoldmap computation to that class. This will allow extensions to replace the dirstate storage with something that persists the filefoldmap. Differential Revision: https://phab.mercurial-scm.org/D754
This commit is contained in:
parent
7995f4da69
commit
f30d4eb317
@ -160,21 +160,7 @@ class dirstate(object):
|
||||
|
||||
@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 @@ class dirstatemap(object):
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user