comparison mercurial/revlog.py @ 47235:6b1eae313b2f

revlogv2: store version information in the docket only Having it duplicated in the index was both useless and a risk of discrepancy. Differential Revision: https://phab.mercurial-scm.org/D10625
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Mon, 03 May 2021 12:34:21 +0200
parents 616b8f412676
children 6597255a4f94
comparison
equal deleted inserted replaced
47234:616b8f412676 47235:6b1eae313b2f
2015 with self.__index_new_fp() as fp: 2015 with self.__index_new_fp() as fp:
2016 self._format_flags &= ~FLAG_INLINE_DATA 2016 self._format_flags &= ~FLAG_INLINE_DATA
2017 self._inline = False 2017 self._inline = False
2018 for i in self: 2018 for i in self:
2019 e = self.index.entry_binary(i) 2019 e = self.index.entry_binary(i)
2020 if i == 0: 2020 if i == 0 and self._docket is None:
2021 header = self._format_flags | self._format_version 2021 header = self._format_flags | self._format_version
2022 header = self.index.pack_header(header) 2022 header = self.index.pack_header(header)
2023 e = header + e 2023 e = header + e
2024 fp.write(e) 2024 fp.write(e)
2025 # the temp file replace the real index when we exit the context 2025 # the temp file replace the real index when we exit the context
2378 len(serialized_sidedata), 2378 len(serialized_sidedata),
2379 ) 2379 )
2380 2380
2381 self.index.append(e) 2381 self.index.append(e)
2382 entry = self.index.entry_binary(curr) 2382 entry = self.index.entry_binary(curr)
2383 if curr == 0: 2383 if curr == 0 and self._docket is None:
2384 header = self._format_flags | self._format_version 2384 header = self._format_flags | self._format_version
2385 header = self.index.pack_header(header) 2385 header = self.index.pack_header(header)
2386 entry = header + entry 2386 entry = header + entry
2387 self._writeentry( 2387 self._writeentry(
2388 transaction, 2388 transaction,
3205 ifh.seek(startrev * self.index.entry_size) 3205 ifh.seek(startrev * self.index.entry_size)
3206 for i, e in enumerate(new_entries): 3206 for i, e in enumerate(new_entries):
3207 rev = startrev + i 3207 rev = startrev + i
3208 self.index.replace_sidedata_info(rev, e[8], e[9], e[0]) 3208 self.index.replace_sidedata_info(rev, e[8], e[9], e[0])
3209 packed = self.index.entry_binary(rev) 3209 packed = self.index.entry_binary(rev)
3210 if rev == 0: 3210 if rev == 0 and self._docket is None:
3211 header = self._format_flags | self._format_version 3211 header = self._format_flags | self._format_version
3212 header = self.index.pack_header(header) 3212 header = self.index.pack_header(header)
3213 packed = header + packed 3213 packed = header + packed
3214 ifh.write(packed) 3214 ifh.write(packed)