equal
deleted
inserted
replaced
264 def __getitem__(self, i): |
264 def __getitem__(self, i): |
265 if i == -1: |
265 if i == -1: |
266 return (0, 0, 0, -1, -1, -1, -1, sha1nodeconstants.nullid) |
266 return (0, 0, 0, -1, -1, -1, -1, sha1nodeconstants.nullid) |
267 return list.__getitem__(self, i) |
267 return list.__getitem__(self, i) |
268 |
268 |
269 def entry_binary(self, rev, header): |
269 def entry_binary(self, rev): |
270 """return the raw binary string representing a revision""" |
270 """return the raw binary string representing a revision""" |
271 entry = self[rev] |
271 entry = self[rev] |
272 if gettype(entry[0]): |
272 if gettype(entry[0]): |
273 raise error.RevlogError( |
273 raise error.RevlogError( |
274 _(b'index entry flags need revlog version 1') |
274 _(b'index entry flags need revlog version 1') |
281 self[entry[5]][7], |
281 self[entry[5]][7], |
282 self[entry[6]][7], |
282 self[entry[6]][7], |
283 entry[7], |
283 entry[7], |
284 ) |
284 ) |
285 return INDEX_ENTRY_V0.pack(*e2) |
285 return INDEX_ENTRY_V0.pack(*e2) |
|
286 |
|
287 def pack_header(self, header): |
|
288 """Pack header information in binary""" |
|
289 return b'' |
286 |
290 |
287 |
291 |
288 def parse_index_v0(data, inline): |
292 def parse_index_v0(data, inline): |
289 s = INDEX_ENTRY_V0.size |
293 s = INDEX_ENTRY_V0.size |
290 index = [] |
294 index = [] |
2039 |
2043 |
2040 with self._indexfp(b'w') as fp: |
2044 with self._indexfp(b'w') as fp: |
2041 self.version &= ~FLAG_INLINE_DATA |
2045 self.version &= ~FLAG_INLINE_DATA |
2042 self._inline = False |
2046 self._inline = False |
2043 for i in self: |
2047 for i in self: |
2044 e = self.index.entry_binary(i, self.version) |
2048 e = self.index.entry_binary(i) |
|
2049 if i == 0: |
|
2050 header = self.index.pack_header(self.version) |
|
2051 e = header + e |
2045 fp.write(e) |
2052 fp.write(e) |
2046 |
2053 |
2047 # the temp file replace the real index when we exit the context |
2054 # the temp file replace the real index when we exit the context |
2048 # manager |
2055 # manager |
2049 |
2056 |
2361 |
2368 |
2362 if self.version & 0xFFFF != REVLOGV2: |
2369 if self.version & 0xFFFF != REVLOGV2: |
2363 e = e[:8] |
2370 e = e[:8] |
2364 |
2371 |
2365 self.index.append(e) |
2372 self.index.append(e) |
2366 entry = self.index.entry_binary(curr, self.version) |
2373 entry = self.index.entry_binary(curr) |
|
2374 if curr == 0: |
|
2375 header = self.index.pack_header(self.version) |
|
2376 entry = header + entry |
2367 self._writeentry( |
2377 self._writeentry( |
2368 transaction, |
2378 transaction, |
2369 ifh, |
2379 ifh, |
2370 dfh, |
2380 dfh, |
2371 entry, |
2381 entry, |
3214 with self._indexfp(b'w+') as fp: |
3224 with self._indexfp(b'w+') as fp: |
3215 fp.seek(startrev * self.index.entry_size) |
3225 fp.seek(startrev * self.index.entry_size) |
3216 for i, entry in enumerate(new_entries): |
3226 for i, entry in enumerate(new_entries): |
3217 rev = startrev + i |
3227 rev = startrev + i |
3218 self.index.replace_sidedata_info(rev, entry[8], entry[9]) |
3228 self.index.replace_sidedata_info(rev, entry[8], entry[9]) |
3219 packed = self.index.entry_binary(rev, self.version) |
3229 packed = self.index.entry_binary(rev) |
|
3230 if rev == 0: |
|
3231 header = self.index.pack_header(self.version) |
|
3232 packed = header + packed |
3220 fp.write(packed) |
3233 fp.write(packed) |