Show More
@@ -40,11 +40,13 b' from .revlogutils.constants import (' | |||
|
40 | 40 | COMP_MODE_DEFAULT, |
|
41 | 41 | COMP_MODE_INLINE, |
|
42 | 42 | COMP_MODE_PLAIN, |
|
43 | ENTRY_RANK, | |
|
43 | 44 | FEATURES_BY_VERSION, |
|
44 | 45 | FLAG_GENERALDELTA, |
|
45 | 46 | FLAG_INLINE_DATA, |
|
46 | 47 | INDEX_HEADER, |
|
47 | 48 | KIND_CHANGELOG, |
|
49 | RANK_UNKNOWN, | |
|
48 | 50 | REVLOGV0, |
|
49 | 51 | REVLOGV1, |
|
50 | 52 | REVLOGV1_FLAGS, |
@@ -857,6 +859,22 b' class revlog(object):' | |||
|
857 | 859 | |
|
858 | 860 | return len(self.revision(rev)) |
|
859 | 861 | |
|
862 | def fast_rank(self, rev): | |
|
863 | """Return the rank of a revision if already known, or None otherwise. | |
|
864 | ||
|
865 | The rank of a revision is the size of the sub-graph it defines as a | |
|
866 | head. Equivalently, the rank of a revision `r` is the size of the set | |
|
867 | `ancestors(r)`, `r` included. | |
|
868 | ||
|
869 | This method returns the rank retrieved from the revlog in constant | |
|
870 | time. It makes no attempt at computing unknown values for versions of | |
|
871 | the revlog which do not persist the rank. | |
|
872 | """ | |
|
873 | rank = self.index[rev][ENTRY_RANK] | |
|
874 | if rank == RANK_UNKNOWN: | |
|
875 | return None | |
|
876 | return rank | |
|
877 | ||
|
860 | 878 | def chainbase(self, rev): |
|
861 | 879 | base = self._chainbasecache.get(rev) |
|
862 | 880 | if base is not None: |
@@ -2444,6 +2462,10 b' class revlog(object):' | |||
|
2444 | 2462 | # than ones we manually add. |
|
2445 | 2463 | sidedata_offset = 0 |
|
2446 | 2464 | |
|
2465 | rank = RANK_UNKNOWN | |
|
2466 | if self._format_version == CHANGELOGV2: | |
|
2467 | rank = len(list(self.ancestors([p1r, p2r], inclusive=True))) + 1 | |
|
2468 | ||
|
2447 | 2469 | e = revlogutils.entry( |
|
2448 | 2470 | flags=flags, |
|
2449 | 2471 | data_offset=offset, |
@@ -2458,6 +2480,7 b' class revlog(object):' | |||
|
2458 | 2480 | sidedata_offset=sidedata_offset, |
|
2459 | 2481 | sidedata_compressed_length=len(serialized_sidedata), |
|
2460 | 2482 | sidedata_compression_mode=sidedata_compression_mode, |
|
2483 | rank=rank, | |
|
2461 | 2484 | ) |
|
2462 | 2485 | |
|
2463 | 2486 | self.index.append(e) |
General Comments 0
You need to be logged in to leave comments.
Login now