mercurial/bundlerepo.py
changeset 51866 9d4ad05bc91c
parent 51859 f4733654f144
child 51867 cfd30df0f8e4
equal deleted inserted replaced
51864:db7dbe6f7bb2 51866:9d4ad05bc91c
    14 from __future__ import annotations
    14 from __future__ import annotations
    15 
    15 
    16 import contextlib
    16 import contextlib
    17 import os
    17 import os
    18 import shutil
    18 import shutil
       
    19 import typing
    19 
    20 
    20 from .i18n import _
    21 from .i18n import _
    21 from .node import (
    22 from .node import (
    22     hex,
    23     hex,
    23     nullrev,
    24     nullrev,
   285         for chunk in iter(lambda: cgunpacker.deltachunk(None), {}):
   286         for chunk in iter(lambda: cgunpacker.deltachunk(None), {}):
   286             pass
   287             pass
   287     return filespos
   288     return filespos
   288 
   289 
   289 
   290 
   290 class bundlerepository:
   291 _bundle_repo_baseclass = object
       
   292 
       
   293 if typing.TYPE_CHECKING:
       
   294     _bundle_repo_baseclass = localrepo.localrepository
       
   295 
       
   296 
       
   297 class bundlerepository(_bundle_repo_baseclass):
   291     """A repository instance that is a union of a local repo and a bundle.
   298     """A repository instance that is a union of a local repo and a bundle.
   292 
   299 
   293     Instances represent a read-only repository composed of a local repository
   300     Instances represent a read-only repository composed of a local repository
   294     with the contents of a bundle file applied. The repository instance is
   301     with the contents of a bundle file applied. The repository instance is
   295     conceptually similar to the state of a repository after an
   302     conceptually similar to the state of a repository after an