Mercurial > hg-stable
changeset 50942:b3174be5e7f7
localrepo: purge filecache attribute using there unicode name
This could be better, but that's a good step.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 30 Aug 2023 01:23:30 +0200 |
parents | d97227f42558 |
children | 882687259181 |
files | mercurial/localrepo.py mercurial/scmutil.py |
diffstat | 2 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/localrepo.py Thu Aug 31 01:21:57 2023 +0200 +++ b/mercurial/localrepo.py Wed Aug 30 01:23:30 2023 +0200 @@ -3028,7 +3028,11 @@ if clearfilecache: del self._filecache[k] try: - delattr(unfiltered, k) + # XXX ideally, the key would be a unicode string to match the + # fact it refers to an attribut name. However changing this was + # a bit a scope creep compared to the series cleaning up + # del/set/getattr so we kept thing simple here. + delattr(unfiltered, pycompat.sysstr(k)) except AttributeError: pass self.invalidatecaches()
--- a/mercurial/scmutil.py Thu Aug 31 01:21:57 2023 +0200 +++ b/mercurial/scmutil.py Wed Aug 30 01:23:30 2023 +0200 @@ -1692,6 +1692,10 @@ def __call__(self, func): self.func = func self.sname = func.__name__ + # XXX We should be using a unicode string instead of bytes for the main + # name (and the _filecache key). The fact we use bytes is a remains + # from Python2, since the name is derived from an attribute name a + # `str` is a better fit now that we support Python3 only self.name = pycompat.sysbytes(self.sname) return self