Mercurial > public > mercurial-scm > hg
comparison mercurial/manifest.py @ 44852:fd3b94f1712d
merge with stable
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Tue, 26 May 2020 08:07:24 -0700 |
parents | 5e3c718692bb 35bb67427f63 |
children | 5a80915e99ce |
comparison
equal
deleted
inserted
replaced
44851:708ad5cf5e5a | 44852:fd3b94f1712d |
---|---|
1453 | 1453 |
1454 def write(self): | 1454 def write(self): |
1455 if not self._dirty or self._opener is None: | 1455 if not self._dirty or self._opener is None: |
1456 return | 1456 return |
1457 # rotate backwards to the first used node | 1457 # rotate backwards to the first used node |
1458 with self._opener( | 1458 try: |
1459 self._file, b'w', atomictemp=True, checkambig=True | 1459 with self._opener( |
1460 ) as fp: | 1460 self._file, b'w', atomictemp=True, checkambig=True |
1461 node = self._head.prev | 1461 ) as fp: |
1462 while True: | 1462 node = self._head.prev |
1463 if node.key in self._cache: | 1463 while True: |
1464 fp.write(node.key) | 1464 if node.key in self._cache: |
1465 fp.write(struct.pack(b'>L', len(node.value))) | 1465 fp.write(node.key) |
1466 fp.write(node.value) | 1466 fp.write(struct.pack(b'>L', len(node.value))) |
1467 if node is self._head: | 1467 fp.write(node.value) |
1468 break | 1468 if node is self._head: |
1469 node = node.prev | 1469 break |
1470 node = node.prev | |
1471 except IOError: | |
1472 # We could not write the cache (eg: permission error) | |
1473 # the content can be missing. | |
1474 # | |
1475 # We could try harder and see if we could recreate a wcache | |
1476 # directory were we coudl write too. | |
1477 # | |
1478 # XXX the error pass silently, having some way to issue an error | |
1479 # log `ui.log` would be nice. | |
1480 pass | |
1470 | 1481 |
1471 def __len__(self): | 1482 def __len__(self): |
1472 if not self._read: | 1483 if not self._read: |
1473 self.read() | 1484 self.read() |
1474 return super(manifestfulltextcache, self).__len__() | 1485 return super(manifestfulltextcache, self).__len__() |