141 nodemap.get(e[4], nullrev), nodemap.get(e[5], nullrev), e[6]) |
141 nodemap.get(e[4], nullrev), nodemap.get(e[5], nullrev), e[6]) |
142 index.append(e2) |
142 index.append(e2) |
143 nodemap[e[6]] = n |
143 nodemap[e[6]] = n |
144 n += 1 |
144 n += 1 |
145 |
145 |
|
146 # add the magic null revision at -1 |
|
147 index.append((0, 0, 0, -1, -1, -1, -1, nullid)) |
|
148 |
146 return index, nodemap, None |
149 return index, nodemap, None |
147 |
150 |
148 def packentry(self, entry, node, version, rev): |
151 def packentry(self, entry, node, version, rev): |
149 if gettype(entry[0]): |
152 if gettype(entry[0]): |
150 raise RevlogError(_("index entry flags need RevlogNG")) |
153 raise RevlogError(_("index entry flags need RevlogNG")) |
260 % (self.indexfile, fmt)) |
263 % (self.indexfile, fmt)) |
261 |
264 |
262 self._io = revlogio() |
265 self._io = revlogio() |
263 if self.version == REVLOGV0: |
266 if self.version == REVLOGV0: |
264 self._io = revlogoldio() |
267 self._io = revlogoldio() |
265 if i: |
268 try: |
266 try: |
269 d = self._io.parseindex(i, self._inline) |
267 d = self._io.parseindex(i, self._inline) |
270 except (ValueError, IndexError): |
268 except (ValueError, IndexError): |
271 raise RevlogError(_("index %s is corrupted") % (self.indexfile)) |
269 raise RevlogError(_("index %s is corrupted") % (self.indexfile)) |
272 self.index, n, self._chunkcache = d |
270 self.index, n, self._chunkcache = d |
273 if n: |
271 if n: |
274 self.nodemap = n |
272 self.nodemap = n |
275 if not self._chunkcache: |
273 if not self._chunkcache: |
276 self._chunkclear() |
274 self._chunkclear() |
|
275 |
|
276 # add the magic null revision at -1 (if it hasn't been done already) |
|
277 if self.index == [] or self.index[-1][7] != nullid: |
|
278 self.index.append((0, 0, 0, -1, -1, -1, -1, nullid)) |
|
279 |
277 |
280 @util.propertycache |
278 @util.propertycache |
281 def nodemap(self): |
279 def nodemap(self): |
282 n = {nullid: nullrev} |
280 n = {nullid: nullrev} |
283 i = self.index |
281 i = self.index |