Mercurial > hg
comparison mercurial/branchmap.py @ 51464:09782c097035
branchcache: move head writing in a `_write_heads` method
Same rational: this will help having format variants.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 26 Feb 2024 15:25:41 +0100 |
parents | 87b830e4de35 |
children | 9007387a227c |
comparison
equal
deleted
inserted
replaced
51463:87b830e4de35 | 51464:09782c097035 |
---|---|
583 with repo.cachevfs(filename, b"w", atomictemp=True) as f: | 583 with repo.cachevfs(filename, b"w", atomictemp=True) as f: |
584 cachekey = [hex(self.tipnode), b'%d' % self.tiprev] | 584 cachekey = [hex(self.tipnode), b'%d' % self.tiprev] |
585 if self.filteredhash is not None: | 585 if self.filteredhash is not None: |
586 cachekey.append(hex(self.filteredhash)) | 586 cachekey.append(hex(self.filteredhash)) |
587 f.write(b" ".join(cachekey) + b'\n') | 587 f.write(b" ".join(cachekey) + b'\n') |
588 nodecount = 0 | 588 nodecount = self._write_heads(f) |
589 for label, nodes in sorted(self._entries.items()): | |
590 label = encoding.fromlocal(label) | |
591 for node in nodes: | |
592 nodecount += 1 | |
593 if node in self._closednodes: | |
594 state = b'c' | |
595 else: | |
596 state = b'o' | |
597 f.write(b"%s %s %s\n" % (hex(node), state, label)) | |
598 repo.ui.log( | 589 repo.ui.log( |
599 b'branchcache', | 590 b'branchcache', |
600 b'wrote %s with %d labels and %d nodes\n', | 591 b'wrote %s with %d labels and %d nodes\n', |
601 _branchcachedesc(repo), | 592 _branchcachedesc(repo), |
602 len(self._entries), | 593 len(self._entries), |
607 # Abort may be raised by read only opener, so log and continue | 598 # Abort may be raised by read only opener, so log and continue |
608 repo.ui.debug( | 599 repo.ui.debug( |
609 b"couldn't write branch cache: %s\n" | 600 b"couldn't write branch cache: %s\n" |
610 % stringutil.forcebytestr(inst) | 601 % stringutil.forcebytestr(inst) |
611 ) | 602 ) |
603 | |
604 def _write_heads(self, fp) -> int: | |
605 """write list of heads to a file | |
606 | |
607 Return the number of heads written.""" | |
608 nodecount = 0 | |
609 for label, nodes in sorted(self._entries.items()): | |
610 label = encoding.fromlocal(label) | |
611 for node in nodes: | |
612 nodecount += 1 | |
613 if node in self._closednodes: | |
614 state = b'c' | |
615 else: | |
616 state = b'o' | |
617 fp.write(b"%s %s %s\n" % (hex(node), state, label)) | |
618 return nodecount | |
612 | 619 |
613 def _verifybranch(self, branch): | 620 def _verifybranch(self, branch): |
614 """verify head nodes for the given branch.""" | 621 """verify head nodes for the given branch.""" |
615 if not self._verify_node: | 622 if not self._verify_node: |
616 return | 623 return |