comparison mercurial/scmutil.py @ 42926:34ed651ba7e4

cleanup: fix leakage of dirstate._map to client code We already had proper accessors for most of the behavior of dirstate._map that callers cared about exposed in the actual dirstate class as public methods. Sigh. There are two remaining privacy violations in the codebase after this change: 1) In the perf extension, which I suspect has to stick around because it's really testing the dirstate implementation directly 2) In largefiles, where we deal with standins and mutating status. Looking at this, I _strongly_ suspect a formal dirstate interface would allow this to work via composition instead of inheritance and monkeypatching. Fortunately, such wins are a part of my motivation for this work. I anticipate we'll come back to this in due time. Differential Revision: https://phab.mercurial-scm.org/D6837
author Augie Fackler <augie@google.com>
date Tue, 10 Sep 2019 09:41:58 -0400
parents d7304434390f
children 76608f9f27f6
comparison
equal deleted inserted replaced
42925:9fd7710d9ae2 42926:34ed651ba7e4
317 317
318 class casecollisionauditor(object): 318 class casecollisionauditor(object):
319 def __init__(self, ui, abort, dirstate): 319 def __init__(self, ui, abort, dirstate):
320 self._ui = ui 320 self._ui = ui
321 self._abort = abort 321 self._abort = abort
322 allfiles = '\0'.join(dirstate._map) 322 allfiles = '\0'.join(dirstate)
323 self._loweredfiles = set(encoding.lower(allfiles).split('\0')) 323 self._loweredfiles = set(encoding.lower(allfiles).split('\0'))
324 self._dirstate = dirstate 324 self._dirstate = dirstate
325 # The purpose of _newfiles is so that we don't complain about 325 # The purpose of _newfiles is so that we don't complain about
326 # case collisions if someone were to call this object with the 326 # case collisions if someone were to call this object with the
327 # same filename twice. 327 # same filename twice.