442 # Avoid excess attribute lookups by fast pathing certain checks |
442 # Avoid excess attribute lookups by fast pathing certain checks |
443 self.__contains__ = self._map.__contains__ |
443 self.__contains__ = self._map.__contains__ |
444 self.__getitem__ = self._map.__getitem__ |
444 self.__getitem__ = self._map.__getitem__ |
445 self.get = self._map.get |
445 self.get = self._map.get |
446 |
446 |
447 def write(self, tr, st, now): |
447 def write(self, tr, st): |
448 if self._use_dirstate_v2: |
448 if self._use_dirstate_v2: |
449 packed, meta = v2.pack_dirstate(self._map, self.copymap, now) |
449 packed, meta = v2.pack_dirstate(self._map, self.copymap) |
450 self.write_v2_no_append(tr, st, meta, packed) |
450 self.write_v2_no_append(tr, st, meta, packed) |
451 else: |
451 else: |
452 packed = parsers.pack_dirstate( |
452 packed = parsers.pack_dirstate( |
453 self._map, self.copymap, self.parents(), now |
453 self._map, self.copymap, self.parents() |
454 ) |
454 ) |
455 st.write(packed) |
455 st.write(packed) |
456 st.close() |
456 st.close() |
457 self._dirtyparents = False |
457 self._dirtyparents = False |
458 |
458 |
653 @propertycache |
653 @propertycache |
654 def identity(self): |
654 def identity(self): |
655 self._map |
655 self._map |
656 return self.identity |
656 return self.identity |
657 |
657 |
658 def write(self, tr, st, now): |
658 def write(self, tr, st): |
659 if not self._use_dirstate_v2: |
659 if not self._use_dirstate_v2: |
660 p1, p2 = self.parents() |
660 p1, p2 = self.parents() |
661 packed = self._map.write_v1(p1, p2, now) |
661 packed = self._map.write_v1(p1, p2) |
662 st.write(packed) |
662 st.write(packed) |
663 st.close() |
663 st.close() |
664 self._dirtyparents = False |
664 self._dirtyparents = False |
665 return |
665 return |
666 |
666 |
667 # We can only append to an existing data file if there is one |
667 # We can only append to an existing data file if there is one |
668 can_append = self.docket.uuid is not None |
668 can_append = self.docket.uuid is not None |
669 packed, meta, append = self._map.write_v2(now, can_append) |
669 packed, meta, append = self._map.write_v2(can_append) |
670 if append: |
670 if append: |
671 docket = self.docket |
671 docket = self.docket |
672 data_filename = docket.data_filename() |
672 data_filename = docket.data_filename() |
673 if tr: |
673 if tr: |
674 tr.add(data_filename, docket.data_size) |
674 tr.add(data_filename, docket.data_size) |