equal
deleted
inserted
replaced
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 |