Show More
@@ -679,6 +679,25 b' def _candidategroups(revlog, textlen, p1' | |||
|
679 | 679 | # if chain already have too much data, skip base |
|
680 | 680 | if deltas_limit < chainsize: |
|
681 | 681 | continue |
|
682 | if sparse and revlog.upperboundcomp is not None: | |
|
683 | maxcomp = revlog.upperboundcomp | |
|
684 | basenotsnap = (p1, p2, nullrev) | |
|
685 | if rev not in basenotsnap and revlog.issnapshot(rev): | |
|
686 | snapshotdepth = revlog.snapshotdepth(rev) | |
|
687 | # If text is significantly larger than the base, we can | |
|
688 | # expect the resulting delta to be proportional to the size | |
|
689 | # difference | |
|
690 | revsize = revlog.rawsize(rev) | |
|
691 | rawsizedistance = max(textlen - revsize, 0) | |
|
692 | # use an estimate of the compression upper bound. | |
|
693 | lowestrealisticdeltalen = rawsizedistance // maxcomp | |
|
694 | ||
|
695 | # check the absolute constraint on the delta size | |
|
696 | snapshotlimit = textlen >> snapshotdepth | |
|
697 | if snapshotlimit < lowestrealisticdeltalen: | |
|
698 | # delta lower bound is larger than accepted upper bound | |
|
699 | continue | |
|
700 | ||
|
682 | 701 | group.append(rev) |
|
683 | 702 | if group: |
|
684 | 703 | # XXX: in the sparse revlog case, group can become large, |
General Comments 0
You need to be logged in to leave comments.
Login now