equal
deleted
inserted
replaced
662 p1, |
662 p1, |
663 p2, |
663 p2, |
664 cachedelta, |
664 cachedelta, |
665 excluded_bases=None, |
665 excluded_bases=None, |
666 target_rev=None, |
666 target_rev=None, |
|
667 snapshot_cache=None, |
667 ): |
668 ): |
668 """Provides group of revision to be tested as delta base |
669 """Provides group of revision to be tested as delta base |
669 |
670 |
670 This top level function focus on emitting groups with unique and worthwhile |
671 This top level function focus on emitting groups with unique and worthwhile |
671 content. See _raw_candidate_groups for details about the group order. |
672 content. See _raw_candidate_groups for details about the group order. |
687 candidates = _refinedgroups( |
688 candidates = _refinedgroups( |
688 revlog, |
689 revlog, |
689 p1, |
690 p1, |
690 p2, |
691 p2, |
691 cachedelta, |
692 cachedelta, |
|
693 snapshot_cache=snapshot_cache, |
692 ) |
694 ) |
693 while True: |
695 while True: |
694 temptative = candidates.send(good) |
696 temptative = candidates.send(good) |
695 if temptative is None: |
697 if temptative is None: |
696 break |
698 break |
797 break |
799 break |
798 |
800 |
799 yield None |
801 yield None |
800 |
802 |
801 |
803 |
802 def _refinedgroups(revlog, p1, p2, cachedelta): |
804 def _refinedgroups(revlog, p1, p2, cachedelta, snapshot_cache=None): |
803 good = None |
805 good = None |
804 # First we try to reuse a the delta contained in the bundle. |
806 # First we try to reuse a the delta contained in the bundle. |
805 # (or from the source revlog) |
807 # (or from the source revlog) |
806 # |
808 # |
807 # This logic only applies to general delta repositories and can be disabled |
809 # This logic only applies to general delta repositories and can be disabled |
817 if good is not None: |
819 if good is not None: |
818 if debug_info is not None: |
820 if debug_info is not None: |
819 debug_info['cached-delta.accepted'] += 1 |
821 debug_info['cached-delta.accepted'] += 1 |
820 yield None |
822 yield None |
821 return |
823 return |
822 # XXX cache me higher |
824 if snapshot_cache is None: |
823 snapshot_cache = SnapshotCache() |
825 snapshot_cache = SnapshotCache() |
824 groups = _rawgroups( |
826 groups = _rawgroups( |
825 revlog, |
827 revlog, |
826 p1, |
828 p1, |
827 p2, |
829 p2, |
828 cachedelta, |
830 cachedelta, |
1051 ): |
1053 ): |
1052 self.revlog = revlog |
1054 self.revlog = revlog |
1053 self._write_debug = write_debug |
1055 self._write_debug = write_debug |
1054 self._debug_search = debug_search |
1056 self._debug_search = debug_search |
1055 self._debug_info = debug_info |
1057 self._debug_info = debug_info |
|
1058 self._snapshot_cache = SnapshotCache() |
1056 |
1059 |
1057 def buildtext(self, revinfo, fh): |
1060 def buildtext(self, revinfo, fh): |
1058 """Builds a fulltext version of a revision |
1061 """Builds a fulltext version of a revision |
1059 |
1062 |
1060 revinfo: revisioninfo instance that contains all needed info |
1063 revinfo: revisioninfo instance that contains all needed info |
1263 p1r, |
1266 p1r, |
1264 p2r, |
1267 p2r, |
1265 cachedelta, |
1268 cachedelta, |
1266 excluded_bases, |
1269 excluded_bases, |
1267 target_rev, |
1270 target_rev, |
|
1271 snapshot_cache=self._snapshot_cache, |
1268 ) |
1272 ) |
1269 candidaterevs = next(groups) |
1273 candidaterevs = next(groups) |
1270 while candidaterevs is not None: |
1274 while candidaterevs is not None: |
1271 dbg_try_rounds += 1 |
1275 dbg_try_rounds += 1 |
1272 if debug_search: |
1276 if debug_search: |