##// END OF EJS Templates
debugdeltachain: stop summing the same chain over and over...
debugdeltachain: stop summing the same chain over and over Before this patch, delta chain size was computed from scratch for each chain, disregarding the fact very likely already computed the same of length-1 prefix for another revisions. We not cache delta chain size and shortcut the computation when we see them. Just for my mercurial-devel clone, this move the computation from about 17.5 second to about 4.8 seconds.

File last commit:

r50544:df5d3b0d default
r51243:af776c3d stable
Show More
parsers.pyi
82 lines | 3.0 KiB | text/x-python | PythonLexer
Gregory Szorc
cext: add .pyi files for C extensions...
r46652 from typing import (
Callable,
Dict,
Iterator,
List,
Optional,
Set,
Tuple,
Union,
)
version: int
versionerrortext: str
dirstate-item: rename the class to DirstateItem...
r48328 class DirstateItem:
Gregory Szorc
cext: add .pyi files for C extensions...
r46652 __doc__: str
def __len__(self) -> int: ...
def __getitem__(self, key: int) -> Union[bytes, int]: ...
# From dirs.c
class dirs:
__doc__: str
def __init__(self, source, skipchar: bytes): ...
def __iter__(self) -> Iterator[bytes]: ...
def addpath(self, path: bytes) -> None: ...
def delpath(self, path: bytes) -> None: ...
# From manifest.c
class lazymanifest:
Joerg Sonnenberger
manifests: push down expected node length into the parser...
r47817 def __init__(self, nodelen: int, data: bytes): ...
Gregory Szorc
cext: add .pyi files for C extensions...
r46652 def __iter__(self) -> Iterator[bytes]: ...
def __len__(self) -> int: ...
def __getitem__(self, item: bytes) -> Optional[Tuple[bytes, bytes]]: ...
def __setitem__(self, key: bytes, value: Tuple[bytes, bytes]) -> None: ...
def __delitem__(self, key: bytes) -> None: ...
def iterkeys(self) -> Iterator[bytes]: ...
def iterentries(self) -> Iterator[Tuple[bytes, bytes, bytes]]: ...
def copy(self) -> lazymanifest: ...
def filtercopy(self, matchfn: Callable[[bytes], bool]) -> lazymanifest: ...
def diff(self, other: lazymanifest, clean: Optional[bool]) -> Dict[bytes, Tuple[bytes, Tuple]]: ...
def text(self) -> bytes: ...
# From revlog.c
class index:
__doc__: str
nodemap: Dict[bytes, int]
def ancestors(self, *args: int) -> Iterator[int]: ...
def commonancestorsheads(self, *args: int) -> List[int]: ...
def clearcaches(self) -> None: ...
def get(self, value: bytes) -> Optional[int]: ...
def get_rev(self, value: bytes) -> Optional[int]: ...
def has_node(self, value: Union[int, bytes]) -> bool: ...
def rev(self, node: bytes) -> int: ...
def computephasesmapsets(self, root: Dict[int, Set[bytes]]) -> Tuple[int, Dict[int, Set[bytes]]]: ...
def reachableroots2(self, minroot: int, heads: List[int], roots: List[int], includepath: bool) -> List[int]: ...
def headrevs(self, filteredrevs: Optional[List[int]]) -> List[int]: ...
def headrevsfiltered(self, filteredrevs: Optional[List[int]]) -> List[int]: ...
def issnapshot(self, value: int) -> bool: ...
def findsnapshots(self, cache: Dict[int, List[int]], start_rev: int) -> None: ...
def deltachain(self, rev: int, stop: int, generaldelta: bool) -> Tuple[List[int], bool]: ...
def slicechunktodensity(self, revs: List[int], targetdensity: float, mingapsize: int) -> List[List[int]]: ...
def append(self, value: Tuple[int, int, int, int, int, int, int, bytes]) -> None: ...
def partialmatch(self, node: bytes) -> bytes: ...
def shortest(self, value: bytes) -> int: ...
def stats(self) -> Dict[bytes, int]: ...
class nodetree:
__doc__: str
def insert(self, rev: int) -> None: ...
def shortest(self, node: bytes) -> int: ...
Matt Harbison
typing: add missing signature for mercurial.cext.parsers.parse_index2()...
r50544
# The IndexObject type here is defined in C, and there's no type for a buffer
# return, as of py3.11. https://github.com/python/typing/issues/593
def parse_index2(data: object, inline: object, format: int = ...) -> Tuple[object, Optional[Tuple[int, object]]]: ...