Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/revlogutils/deltas.py @ 39517:cc85ebb68ff9
snapshot: turn _refinedgroups into a coroutine
We are now almost ready to start adding refining logic.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Fri, 07 Sep 2018 11:17:34 -0400 |
parents | 51cec7fb672e |
children | 993d7e2c8b79 |
comparison
equal
deleted
inserted
replaced
39516:51cec7fb672e | 39517:cc85ebb68ff9 |
---|---|
587 deltas_limit = textlen * LIMIT_DELTA2TEXT | 587 deltas_limit = textlen * LIMIT_DELTA2TEXT |
588 | 588 |
589 tested = set([nullrev]) | 589 tested = set([nullrev]) |
590 candidates = _refinedgroups(revlog, p1, p2, cachedelta) | 590 candidates = _refinedgroups(revlog, p1, p2, cachedelta) |
591 while True: | 591 while True: |
592 temptative = next(candidates) | 592 temptative = candidates.send(good) |
593 if temptative is None: | 593 if temptative is None: |
594 break | 594 break |
595 group = [] | 595 group = [] |
596 for rev in temptative: | 596 for rev in temptative: |
597 # skip over empty delta (no need to include them in a chain) | 597 # skip over empty delta (no need to include them in a chain) |
616 if group: | 616 if group: |
617 # XXX: in the sparse revlog case, group can become large, | 617 # XXX: in the sparse revlog case, group can become large, |
618 # impacting performances. Some bounding or slicing mecanism | 618 # impacting performances. Some bounding or slicing mecanism |
619 # would help to reduce this impact. | 619 # would help to reduce this impact. |
620 good = yield tuple(group) | 620 good = yield tuple(group) |
621 if good is not None: | |
622 break | |
623 yield None | 621 yield None |
624 | 622 |
625 def _findsnapshots(revlog, cache, start_rev): | 623 def _findsnapshots(revlog, cache, start_rev): |
626 """find snapshot from start_rev to tip""" | 624 """find snapshot from start_rev to tip""" |
627 deltaparent = revlog.deltaparent | 625 deltaparent = revlog.deltaparent |