equal
deleted
inserted
replaced
659 revlog, |
659 revlog, |
660 textlen, |
660 textlen, |
661 p1, |
661 p1, |
662 p2, |
662 p2, |
663 cachedelta, |
663 cachedelta, |
|
664 excluded_bases=None, |
|
665 target_rev=None, |
664 ): |
666 ): |
665 """Provides group of revision to be tested as delta base |
667 """Provides group of revision to be tested as delta base |
666 |
668 |
667 This top level function focus on emitting groups with unique and worthwhile |
669 This top level function focus on emitting groups with unique and worthwhile |
668 content. See _raw_candidate_groups for details about the group order. |
670 content. See _raw_candidate_groups for details about the group order. |
704 continue |
706 continue |
705 # filter out revision we tested already |
707 # filter out revision we tested already |
706 if rev in tested: |
708 if rev in tested: |
707 continue |
709 continue |
708 tested.add(rev) |
710 tested.add(rev) |
|
711 # an higher authority deamed the base unworthy (e.g. censored) |
|
712 if excluded_bases is not None and rev in excluded_bases: |
|
713 continue |
|
714 # We are in some recomputation cases and that rev is too high in |
|
715 # the revlog |
|
716 if target_rev is not None and rev >= target_rev: |
|
717 continue |
709 # filter out delta base that will never produce good delta |
718 # filter out delta base that will never produce good delta |
710 if deltas_limit < revlog.length(rev): |
719 if deltas_limit < revlog.length(rev): |
711 continue |
720 continue |
712 if sparse and revlog.rawsize(rev) < (textlen // LIMIT_BASE2TEXT): |
721 if sparse and revlog.rawsize(rev) < (textlen // LIMIT_BASE2TEXT): |
713 continue |
722 continue |
1178 self.revlog, |
1187 self.revlog, |
1179 revinfo.textlen, |
1188 revinfo.textlen, |
1180 p1r, |
1189 p1r, |
1181 p2r, |
1190 p2r, |
1182 cachedelta, |
1191 cachedelta, |
|
1192 excluded_bases, |
|
1193 target_rev, |
1183 ) |
1194 ) |
1184 candidaterevs = next(groups) |
1195 candidaterevs = next(groups) |
1185 while candidaterevs is not None: |
1196 while candidaterevs is not None: |
1186 dbg_try_rounds += 1 |
1197 dbg_try_rounds += 1 |
1187 if debug_search: |
1198 if debug_search: |
1241 msg %= self.revlog.length(candidaterev) |
1252 msg %= self.revlog.length(candidaterev) |
1242 self._write_debug(msg) |
1253 self._write_debug(msg) |
1243 msg = b"DBG-DELTAS-SEARCH: base=%d\n" |
1254 msg = b"DBG-DELTAS-SEARCH: base=%d\n" |
1244 msg %= self.revlog.deltaparent(candidaterev) |
1255 msg %= self.revlog.deltaparent(candidaterev) |
1245 self._write_debug(msg) |
1256 self._write_debug(msg) |
1246 if candidaterev in excluded_bases: |
1257 |
1247 if debug_search: |
|
1248 msg = b"DBG-DELTAS-SEARCH: EXCLUDED\n" |
|
1249 self._write_debug(msg) |
|
1250 continue |
|
1251 if candidaterev >= target_rev: |
|
1252 if debug_search: |
|
1253 msg = b"DBG-DELTAS-SEARCH: TOO-HIGH\n" |
|
1254 self._write_debug(msg) |
|
1255 continue |
|
1256 dbg_try_count += 1 |
1258 dbg_try_count += 1 |
1257 |
1259 |
1258 if debug_search: |
1260 if debug_search: |
1259 delta_start = util.timer() |
1261 delta_start = util.timer() |
1260 candidatedelta = self._builddeltainfo(revinfo, candidaterev, fh) |
1262 candidatedelta = self._builddeltainfo(revinfo, candidaterev, fh) |