# HG changeset patch # User Boris Feld # Date 1546421352 -3600 # Node ID 6498f0e03526af31cbfce6ceb87d17c58c4ce12f # Parent 9e593db5f1a1b08f812591439c831ace55bca321 vfs: fix proxyvfs inheritance The proxyvfs class is designed to overwrite some of the vfs logic. Yet, it did not use normal class inheritance. This is becoming an issue as `abstractvfs` method could take precedence over their `proxyvfs` version. We fix the inheritance chain to be as expected. diff -r 9e593db5f1a1 -r 6498f0e03526 mercurial/store.py --- a/mercurial/store.py Wed Dec 26 13:44:37 2018 +0100 +++ b/mercurial/store.py Wed Jan 02 10:29:12 2019 +0100 @@ -523,7 +523,7 @@ self._load() return iter(self.entries | self.addls) -class _fncachevfs(vfsmod.abstractvfs, vfsmod.proxyvfs): +class _fncachevfs(vfsmod.proxyvfs): def __init__(self, vfs, fnc, encode): vfsmod.proxyvfs.__init__(self, vfs) self.fncache = fnc diff -r 9e593db5f1a1 -r 6498f0e03526 mercurial/vfs.py --- a/mercurial/vfs.py Wed Dec 26 13:44:37 2018 +0100 +++ b/mercurial/vfs.py Wed Jan 02 10:29:12 2019 +0100 @@ -469,7 +469,7 @@ opener = vfs -class proxyvfs(object): +class proxyvfs(abstractvfs): def __init__(self, vfs): self.vfs = vfs @@ -481,7 +481,7 @@ def options(self, value): self.vfs.options = value -class filtervfs(abstractvfs, proxyvfs): +class filtervfs(proxyvfs, abstractvfs): '''Wrapper vfs for filtering filenames with a function.''' def __init__(self, vfs, filter): @@ -499,7 +499,7 @@ filteropener = filtervfs -class readonlyvfs(abstractvfs, proxyvfs): +class readonlyvfs(proxyvfs): '''Wrapper vfs preventing any writing.''' def __init__(self, vfs):