Show More
@@ -783,8 +783,43 b' class _BaseDeltaSearch(abc.ABC):' | |||||
783 | pass |
|
783 | pass | |
784 |
|
784 | |||
785 |
|
785 | |||
|
786 | class _NoDeltaSearch(_BaseDeltaSearch): | |||
|
787 | """Search for no delta. | |||
|
788 | ||||
|
789 | This search variant is to be used in case where we should not store delta. | |||
|
790 | """ | |||
|
791 | ||||
|
792 | def _init_group(self): | |||
|
793 | pass | |||
|
794 | ||||
|
795 | def next_group(self, good_delta=None): | |||
|
796 | pass | |||
|
797 | ||||
|
798 | ||||
|
799 | class _PrevDeltaSearch(_BaseDeltaSearch): | |||
|
800 | """Search for delta against the previous revision only | |||
|
801 | ||||
|
802 | This search variant is to be used when the format does not allow for delta | |||
|
803 | against arbitrary bases. | |||
|
804 | """ | |||
|
805 | ||||
|
806 | def _init_group(self): | |||
|
807 | self.current_group = [self.target_rev - 1] | |||
|
808 | ||||
|
809 | def next_group(self, good_delta=None): | |||
|
810 | self.current_group = None | |||
|
811 | ||||
|
812 | ||||
786 | class _DeltaSearch(_BaseDeltaSearch): |
|
813 | class _DeltaSearch(_BaseDeltaSearch): | |
|
814 | """Generic delta search variants | |||
|
815 | ||||
|
816 | (expect this to be split further) | |||
|
817 | """ | |||
|
818 | ||||
787 | def _init_group(self): |
|
819 | def _init_group(self): | |
|
820 | # Why search for delta base if we cannot use a delta base ? | |||
|
821 | # also see issue6056 | |||
|
822 | assert self.revlog.delta_config.general_delta | |||
788 | self._candidates_iterator = self._candidate_groups() |
|
823 | self._candidates_iterator = self._candidate_groups() | |
789 | self._last_good = None |
|
824 | self._last_good = None | |
790 | self.current_group = self._candidates_iterator.send(self._last_good) |
|
825 | self.current_group = self._candidates_iterator.send(self._last_good) | |
@@ -801,17 +836,6 b' class _DeltaSearch(_BaseDeltaSearch):' | |||||
801 | worthwhile content. See _raw_candidate_groups for details about the |
|
836 | worthwhile content. See _raw_candidate_groups for details about the | |
802 | group order. |
|
837 | group order. | |
803 | """ |
|
838 | """ | |
804 | # should we try to build a delta? |
|
|||
805 | if not (len(self.revlog) and self.revlog._storedeltachains): |
|
|||
806 | yield None |
|
|||
807 | return |
|
|||
808 |
|
||||
809 | if not self.revlog.delta_config.general_delta: |
|
|||
810 | # before general delta, there is only one possible delta base |
|
|||
811 | yield (self.target_rev - 1,) |
|
|||
812 | yield None |
|
|||
813 | return |
|
|||
814 |
|
||||
815 | good = None |
|
839 | good = None | |
816 |
|
840 | |||
817 | group_chunk_size = self.revlog.delta_config.candidate_group_chunk_size |
|
841 | group_chunk_size = self.revlog.delta_config.candidate_group_chunk_size | |
@@ -1062,9 +1086,6 b' class _DeltaSearch(_BaseDeltaSearch):' | |||||
1062 |
|
1086 | |||
1063 | The group order aims at providing fast or small candidates first. |
|
1087 | The group order aims at providing fast or small candidates first. | |
1064 | """ |
|
1088 | """ | |
1065 | # Why search for delta base if we cannot use a delta base ? |
|
|||
1066 | assert self.revlog.delta_config.general_delta |
|
|||
1067 | # also see issue6056 |
|
|||
1068 | sparse = self.revlog.delta_config.sparse_revlog |
|
1089 | sparse = self.revlog.delta_config.sparse_revlog | |
1069 | prev = self.target_rev - 1 |
|
1090 | prev = self.target_rev - 1 | |
1070 | deltachain = lambda rev: self.revlog._deltachain(rev)[0] |
|
1091 | deltachain = lambda rev: self.revlog._deltachain(rev)[0] | |
@@ -1548,7 +1569,16 b' class deltacomputer:' | |||||
1548 | msg %= target_rev |
|
1569 | msg %= target_rev | |
1549 | self._write_debug(msg) |
|
1570 | self._write_debug(msg) | |
1550 |
|
1571 | |||
1551 | search = _DeltaSearch( |
|
1572 | # should we try to build a delta? | |
|
1573 | if not (len(self.revlog) and self.revlog._storedeltachains): | |||
|
1574 | search_cls = _NoDeltaSearch | |||
|
1575 | elif not self.revlog.delta_config.general_delta: | |||
|
1576 | # before general delta, there is only one possible delta base | |||
|
1577 | search_cls = _PrevDeltaSearch | |||
|
1578 | else: | |||
|
1579 | search_cls = _DeltaSearch | |||
|
1580 | ||||
|
1581 | search = search_cls( | |||
1552 | self.revlog, |
|
1582 | self.revlog, | |
1553 | revinfo, |
|
1583 | revinfo, | |
1554 | p1r, |
|
1584 | p1r, |
General Comments 0
You need to be logged in to leave comments.
Login now