mercurial/branchmap.py
changeset 51448 fd30c4301929
parent 51447 3aba79ce52a9
child 51449 5515876173ba
equal deleted inserted replaced
51447:3aba79ce52a9 51448:fd30c4301929
    58         self._per_filter = {}
    58         self._per_filter = {}
    59 
    59 
    60     def __getitem__(self, repo):
    60     def __getitem__(self, repo):
    61         self.updatecache(repo)
    61         self.updatecache(repo)
    62         bcache = self._per_filter[repo.filtername]
    62         bcache = self._per_filter[repo.filtername]
    63         assert bcache._repo.filtername == repo.filtername, (
    63         assert bcache._filtername == repo.filtername, (
    64             bcache._repo.filtername,
    64             bcache._filtername,
    65             repo.filtername,
    65             repo.filtername,
    66         )
    66         )
    67         return bcache
    67         return bcache
    68 
    68 
    69     def update_disk(self, repo):
    69     def update_disk(self, repo):
    78         This method exist independently of __getitem__ as it is sometime useful
    78         This method exist independently of __getitem__ as it is sometime useful
    79         to signal that we have no intend to use the data in memory yet.
    79         to signal that we have no intend to use the data in memory yet.
    80         """
    80         """
    81         self.updatecache(repo)
    81         self.updatecache(repo)
    82         bcache = self._per_filter[repo.filtername]
    82         bcache = self._per_filter[repo.filtername]
    83         assert bcache._repo.filtername == repo.filtername, (
    83         assert bcache._filtername == repo.filtername, (
    84             bcache._repo.filtername,
    84             bcache._filtername,
    85             repo.filtername,
    85             repo.filtername,
    86         )
    86         )
    87         bcache.write(repo)
    87         bcache.write(repo)
    88 
    88 
    89     def updatecache(self, repo):
    89     def updatecache(self, repo):
   218         hasnode: Optional[Callable[[bytes], bool]] = None,
   218         hasnode: Optional[Callable[[bytes], bool]] = None,
   219     ) -> None:
   219     ) -> None:
   220         """hasnode is a function which can be used to verify whether changelog
   220         """hasnode is a function which can be used to verify whether changelog
   221         has a given node or not. If it's not provided, we assume that every node
   221         has a given node or not. If it's not provided, we assume that every node
   222         we have exists in changelog"""
   222         we have exists in changelog"""
   223         self._repo = repo
   223         self._filtername = repo.filtername
   224         self._delayed = False
   224         self._delayed = False
   225         if tipnode is None:
   225         if tipnode is None:
   226             self.tipnode = repo.nullid
   226             self.tipnode = repo.nullid
   227         else:
   227         else:
   228             self.tipnode = tipnode
   228             self.tipnode = tipnode
   433             self.filteredhash,
   433             self.filteredhash,
   434             self._closednodes,
   434             self._closednodes,
   435         )
   435         )
   436 
   436 
   437     def write(self, repo):
   437     def write(self, repo):
   438         assert self._repo.filtername == repo.filtername, (
   438         assert self._filtername == repo.filtername, (
   439             self._repo.filtername,
   439             self._filtername,
   440             repo.filtername,
   440             repo.filtername,
   441         )
   441         )
   442         tr = repo.currenttransaction()
   442         tr = repo.currenttransaction()
   443         if not getattr(tr, 'finalized', True):
   443         if not getattr(tr, 'finalized', True):
   444             # Avoid premature writing.
   444             # Avoid premature writing.
   481     def update(self, repo, revgen):
   481     def update(self, repo, revgen):
   482         """Given a branchhead cache, self, that may have extra nodes or be
   482         """Given a branchhead cache, self, that may have extra nodes or be
   483         missing heads, and a generator of nodes that are strictly a superset of
   483         missing heads, and a generator of nodes that are strictly a superset of
   484         heads missing, this function updates self to be correct.
   484         heads missing, this function updates self to be correct.
   485         """
   485         """
   486         assert self._repo.filtername == repo.filtername, (
   486         assert self._filtername == repo.filtername, (
   487             self._repo.filtername,
   487             self._filtername,
   488             repo.filtername,
   488             repo.filtername,
   489         )
   489         )
   490         starttime = util.timer()
   490         starttime = util.timer()
   491         cl = repo.changelog
   491         cl = repo.changelog
   492         # collect new branch entries
   492         # collect new branch entries