diff --git a/mercurial/store.py b/mercurial/store.py --- a/mercurial/store.py +++ b/mercurial/store.py @@ -14,7 +14,11 @@ import re import stat import typing -from typing import Generator, List +from typing import ( + Generator, + List, + Optional, +) from .i18n import _ from .thirdparty import attr @@ -1135,11 +1139,13 @@ class _fncachevfs(vfsmod.proxyvfs): self.fncache.add(path) return self.vfs(encoded, mode, *args, **kw) - def join(self, path): + def join(self, path: Optional[bytes], *insidef: bytes) -> bytes: + insidef = (self.encode(f) for f in insidef) + if path: - return self.vfs.join(self.encode(path)) + return self.vfs.join(self.encode(path), *insidef) else: - return self.vfs.join(path) + return self.vfs.join(path, *insidef) def register_file(self, path): """generic hook point to lets fncache steer its stew"""