Mercurial > public > mercurial-scm > hg
comparison mercurial/revlog.py @ 30287:0986f225c149
revlog: reorder index accessors to match data structure order
Index entries are ordered tuples. We have accessors in the revlog
class to map tuple offsets to names. To help reinforce the order,
reorder the methods so they match the order of elements in the
tuple. While I'm here, also sneak in some minimal documentation.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sun, 23 Oct 2016 09:34:55 -0700 |
parents | 5e4f16874a9f |
children | ceddc3d94d74 |
comparison
equal
deleted
inserted
replaced
30286:d44c407a5999 | 30287:0986f225c149 |
---|---|
378 if v == node: | 378 if v == node: |
379 self._nodepos = r - 1 | 379 self._nodepos = r - 1 |
380 return r | 380 return r |
381 raise LookupError(node, self.indexfile, _('no node')) | 381 raise LookupError(node, self.indexfile, _('no node')) |
382 | 382 |
383 def node(self, rev): | 383 # Accessors for index entries. |
384 return self.index[rev][7] | 384 |
385 def linkrev(self, rev): | 385 # First tuple entry is 8 bytes. First 6 bytes are offset. Last 2 bytes |
386 return self.index[rev][4] | 386 # are flags. |
387 def parents(self, node): | |
388 i = self.index | |
389 d = i[self.rev(node)] | |
390 return i[d[5]][7], i[d[6]][7] # map revisions to nodes inline | |
391 def parentrevs(self, rev): | |
392 return self.index[rev][5:7] | |
393 def start(self, rev): | 387 def start(self, rev): |
394 return int(self.index[rev][0] >> 16) | 388 return int(self.index[rev][0] >> 16) |
395 def end(self, rev): | 389 |
396 return self.start(rev) + self.length(rev) | 390 def flags(self, rev): |
391 return self.index[rev][0] & 0xFFFF | |
392 | |
397 def length(self, rev): | 393 def length(self, rev): |
398 return self.index[rev][1] | 394 return self.index[rev][1] |
395 | |
396 def rawsize(self, rev): | |
397 """return the length of the uncompressed text for a given revision""" | |
398 l = self.index[rev][2] | |
399 if l >= 0: | |
400 return l | |
401 | |
402 t = self.revision(self.node(rev)) | |
403 return len(t) | |
404 size = rawsize | |
405 | |
399 def chainbase(self, rev): | 406 def chainbase(self, rev): |
400 base = self._chainbasecache.get(rev) | 407 base = self._chainbasecache.get(rev) |
401 if base is not None: | 408 if base is not None: |
402 return base | 409 return base |
403 | 410 |
407 rev = base | 414 rev = base |
408 base = index[rev][3] | 415 base = index[rev][3] |
409 | 416 |
410 self._chainbasecache[rev] = base | 417 self._chainbasecache[rev] = base |
411 return base | 418 return base |
419 | |
420 def linkrev(self, rev): | |
421 return self.index[rev][4] | |
422 | |
423 def parentrevs(self, rev): | |
424 return self.index[rev][5:7] | |
425 | |
426 def node(self, rev): | |
427 return self.index[rev][7] | |
428 | |
429 # Derived from index values. | |
430 | |
431 def end(self, rev): | |
432 return self.start(rev) + self.length(rev) | |
433 | |
434 def parents(self, node): | |
435 i = self.index | |
436 d = i[self.rev(node)] | |
437 return i[d[5]][7], i[d[6]][7] # map revisions to nodes inline | |
438 | |
412 def chainlen(self, rev): | 439 def chainlen(self, rev): |
413 return self._chaininfo(rev)[0] | 440 return self._chaininfo(rev)[0] |
414 | 441 |
415 def _chaininfo(self, rev): | 442 def _chaininfo(self, rev): |
416 chaininfocache = self._chaininfocache | 443 chaininfocache = self._chaininfocache |
475 chain.append(iterrev) | 502 chain.append(iterrev) |
476 stopped = False | 503 stopped = False |
477 | 504 |
478 chain.reverse() | 505 chain.reverse() |
479 return chain, stopped | 506 return chain, stopped |
480 | |
481 def flags(self, rev): | |
482 return self.index[rev][0] & 0xFFFF | |
483 def rawsize(self, rev): | |
484 """return the length of the uncompressed text for a given revision""" | |
485 l = self.index[rev][2] | |
486 if l >= 0: | |
487 return l | |
488 | |
489 t = self.revision(self.node(rev)) | |
490 return len(t) | |
491 size = rawsize | |
492 | 507 |
493 def ancestors(self, revs, stoprev=0, inclusive=False): | 508 def ancestors(self, revs, stoprev=0, inclusive=False): |
494 """Generate the ancestors of 'revs' in reverse topological order. | 509 """Generate the ancestors of 'revs' in reverse topological order. |
495 Does not generate revs lower than stoprev. | 510 Does not generate revs lower than stoprev. |
496 | 511 |