Show More
@@ -420,6 +420,7 b' class cg1unpacker:' | |||||
420 | prog, |
|
420 | prog, | |
421 | addrevisioncb=None, |
|
421 | addrevisioncb=None, | |
422 | debug_info=None, |
|
422 | debug_info=None, | |
|
423 | delta_base_reuse_policy=None, | |||
423 | ): |
|
424 | ): | |
424 | self.callback = prog.increment |
|
425 | self.callback = prog.increment | |
425 | # no need to check for empty manifest group here: |
|
426 | # no need to check for empty manifest group here: | |
@@ -435,6 +436,7 b' class cg1unpacker:' | |||||
435 | trp, |
|
436 | trp, | |
436 | addrevisioncb=addrevisioncb, |
|
437 | addrevisioncb=addrevisioncb, | |
437 | debug_info=debug_info, |
|
438 | debug_info=debug_info, | |
|
439 | delta_base_reuse_policy=delta_base_reuse_policy, | |||
438 | ) |
|
440 | ) | |
439 | prog.complete() |
|
441 | prog.complete() | |
440 | self.callback = None |
|
442 | self.callback = None | |
@@ -448,6 +450,7 b' class cg1unpacker:' | |||||
448 | targetphase=phases.draft, |
|
450 | targetphase=phases.draft, | |
449 | expectedtotal=None, |
|
451 | expectedtotal=None, | |
450 | sidedata_categories=None, |
|
452 | sidedata_categories=None, | |
|
453 | delta_base_reuse_policy=None, | |||
451 | ): |
|
454 | ): | |
452 | """Add the changegroup returned by source.read() to this repo. |
|
455 | """Add the changegroup returned by source.read() to this repo. | |
453 | srctype is a string like 'push', 'pull', or 'unbundle'. url is |
|
456 | srctype is a string like 'push', 'pull', or 'unbundle'. url is | |
@@ -461,6 +464,12 b' class cg1unpacker:' | |||||
461 |
|
464 | |||
462 | `sidedata_categories` is an optional set of the remote's sidedata wanted |
|
465 | `sidedata_categories` is an optional set of the remote's sidedata wanted | |
463 | categories. |
|
466 | categories. | |
|
467 | ||||
|
468 | `delta_base_reuse_policy` is an optional argument, when set to a value | |||
|
469 | it will control the way the delta contained into the bundle are reused | |||
|
470 | when applied in the revlog. | |||
|
471 | ||||
|
472 | See `DELTA_BASE_REUSE_*` entry in mercurial.revlogutils.constants. | |||
464 | """ |
|
473 | """ | |
465 | repo = repo.unfiltered() |
|
474 | repo = repo.unfiltered() | |
466 |
|
475 | |||
@@ -543,6 +552,7 b' class cg1unpacker:' | |||||
543 | addrevisioncb=onchangelog, |
|
552 | addrevisioncb=onchangelog, | |
544 | duplicaterevisioncb=ondupchangelog, |
|
553 | duplicaterevisioncb=ondupchangelog, | |
545 | debug_info=debug_info, |
|
554 | debug_info=debug_info, | |
|
555 | delta_base_reuse_policy=delta_base_reuse_policy, | |||
546 | ): |
|
556 | ): | |
547 | repo.ui.develwarn( |
|
557 | repo.ui.develwarn( | |
548 | b'applied empty changelog from changegroup', |
|
558 | b'applied empty changelog from changegroup', | |
@@ -591,6 +601,7 b' class cg1unpacker:' | |||||
591 | progress, |
|
601 | progress, | |
592 | addrevisioncb=on_manifest_rev, |
|
602 | addrevisioncb=on_manifest_rev, | |
593 | debug_info=debug_info, |
|
603 | debug_info=debug_info, | |
|
604 | delta_base_reuse_policy=delta_base_reuse_policy, | |||
594 | ) |
|
605 | ) | |
595 |
|
606 | |||
596 | needfiles = {} |
|
607 | needfiles = {} | |
@@ -628,6 +639,7 b' class cg1unpacker:' | |||||
628 | needfiles, |
|
639 | needfiles, | |
629 | addrevisioncb=on_filelog_rev, |
|
640 | addrevisioncb=on_filelog_rev, | |
630 | debug_info=debug_info, |
|
641 | debug_info=debug_info, | |
|
642 | delta_base_reuse_policy=delta_base_reuse_policy, | |||
631 | ) |
|
643 | ) | |
632 |
|
644 | |||
633 | if sidedata_helpers: |
|
645 | if sidedata_helpers: | |
@@ -815,6 +827,7 b' class cg3unpacker(cg2unpacker):' | |||||
815 | prog, |
|
827 | prog, | |
816 | addrevisioncb=None, |
|
828 | addrevisioncb=None, | |
817 | debug_info=None, |
|
829 | debug_info=None, | |
|
830 | delta_base_reuse_policy=None, | |||
818 | ): |
|
831 | ): | |
819 | super(cg3unpacker, self)._unpackmanifests( |
|
832 | super(cg3unpacker, self)._unpackmanifests( | |
820 | repo, |
|
833 | repo, | |
@@ -823,6 +836,7 b' class cg3unpacker(cg2unpacker):' | |||||
823 | prog, |
|
836 | prog, | |
824 | addrevisioncb=addrevisioncb, |
|
837 | addrevisioncb=addrevisioncb, | |
825 | debug_info=debug_info, |
|
838 | debug_info=debug_info, | |
|
839 | delta_base_reuse_policy=delta_base_reuse_policy, | |||
826 | ) |
|
840 | ) | |
827 | for chunkdata in iter(self.filelogheader, {}): |
|
841 | for chunkdata in iter(self.filelogheader, {}): | |
828 | # If we get here, there are directory manifests in the changegroup |
|
842 | # If we get here, there are directory manifests in the changegroup | |
@@ -835,6 +849,7 b' class cg3unpacker(cg2unpacker):' | |||||
835 | trp, |
|
849 | trp, | |
836 | addrevisioncb=addrevisioncb, |
|
850 | addrevisioncb=addrevisioncb, | |
837 | debug_info=debug_info, |
|
851 | debug_info=debug_info, | |
|
852 | delta_base_reuse_policy=delta_base_reuse_policy, | |||
838 | ): |
|
853 | ): | |
839 | raise error.Abort(_(b"received dir revlog group is empty")) |
|
854 | raise error.Abort(_(b"received dir revlog group is empty")) | |
840 |
|
855 | |||
@@ -2372,6 +2387,7 b' def _addchangegroupfiles(' | |||||
2372 | needfiles, |
|
2387 | needfiles, | |
2373 | addrevisioncb=None, |
|
2388 | addrevisioncb=None, | |
2374 | debug_info=None, |
|
2389 | debug_info=None, | |
|
2390 | delta_base_reuse_policy=None, | |||
2375 | ): |
|
2391 | ): | |
2376 | revisions = 0 |
|
2392 | revisions = 0 | |
2377 | files = 0 |
|
2393 | files = 0 | |
@@ -2393,6 +2409,7 b' def _addchangegroupfiles(' | |||||
2393 | trp, |
|
2409 | trp, | |
2394 | addrevisioncb=addrevisioncb, |
|
2410 | addrevisioncb=addrevisioncb, | |
2395 | debug_info=debug_info, |
|
2411 | debug_info=debug_info, | |
|
2412 | delta_base_reuse_policy=delta_base_reuse_policy, | |||
2396 | ) |
|
2413 | ) | |
2397 | if not added: |
|
2414 | if not added: | |
2398 | raise error.Abort(_(b"received file revlog group is empty")) |
|
2415 | raise error.Abort(_(b"received file revlog group is empty")) |
@@ -154,6 +154,7 b' class filelog:' | |||||
154 | duplicaterevisioncb=None, |
|
154 | duplicaterevisioncb=None, | |
155 | maybemissingparents=False, |
|
155 | maybemissingparents=False, | |
156 | debug_info=None, |
|
156 | debug_info=None, | |
|
157 | delta_base_reuse_policy=None, | |||
157 | ): |
|
158 | ): | |
158 | if maybemissingparents: |
|
159 | if maybemissingparents: | |
159 | raise error.Abort( |
|
160 | raise error.Abort( | |
@@ -175,6 +176,7 b' class filelog:' | |||||
175 | addrevisioncb=addrevisioncb, |
|
176 | addrevisioncb=addrevisioncb, | |
176 | duplicaterevisioncb=duplicaterevisioncb, |
|
177 | duplicaterevisioncb=duplicaterevisioncb, | |
177 | debug_info=debug_info, |
|
178 | debug_info=debug_info, | |
|
179 | delta_base_reuse_policy=delta_base_reuse_policy, | |||
178 | ) |
|
180 | ) | |
179 |
|
181 | |||
180 | def getstrippoint(self, minlink): |
|
182 | def getstrippoint(self, minlink): |
@@ -1857,6 +1857,7 b' class manifestrevlog:' | |||||
1857 | addrevisioncb=None, |
|
1857 | addrevisioncb=None, | |
1858 | duplicaterevisioncb=None, |
|
1858 | duplicaterevisioncb=None, | |
1859 | debug_info=None, |
|
1859 | debug_info=None, | |
|
1860 | delta_base_reuse_policy=None, | |||
1860 | ): |
|
1861 | ): | |
1861 | return self._revlog.addgroup( |
|
1862 | return self._revlog.addgroup( | |
1862 | deltas, |
|
1863 | deltas, | |
@@ -1866,6 +1867,7 b' class manifestrevlog:' | |||||
1866 | addrevisioncb=addrevisioncb, |
|
1867 | addrevisioncb=addrevisioncb, | |
1867 | duplicaterevisioncb=duplicaterevisioncb, |
|
1868 | duplicaterevisioncb=duplicaterevisioncb, | |
1868 | debug_info=debug_info, |
|
1869 | debug_info=debug_info, | |
|
1870 | delta_base_reuse_policy=delta_base_reuse_policy, | |||
1869 | ) |
|
1871 | ) | |
1870 |
|
1872 | |||
1871 | def rawsize(self, rev): |
|
1873 | def rawsize(self, rev): |
@@ -2663,6 +2663,7 b' class revlog:' | |||||
2663 | addrevisioncb=None, |
|
2663 | addrevisioncb=None, | |
2664 | duplicaterevisioncb=None, |
|
2664 | duplicaterevisioncb=None, | |
2665 | debug_info=None, |
|
2665 | debug_info=None, | |
|
2666 | delta_base_reuse_policy=None, | |||
2666 | ): |
|
2667 | ): | |
2667 | """ |
|
2668 | """ | |
2668 | add a delta group |
|
2669 | add a delta group | |
@@ -2678,6 +2679,14 b' class revlog:' | |||||
2678 | if self._adding_group: |
|
2679 | if self._adding_group: | |
2679 | raise error.ProgrammingError(b'cannot nest addgroup() calls') |
|
2680 | raise error.ProgrammingError(b'cannot nest addgroup() calls') | |
2680 |
|
2681 | |||
|
2682 | # read the default delta-base reuse policy from revlog config if the | |||
|
2683 | # group did not specify one. | |||
|
2684 | if delta_base_reuse_policy is None: | |||
|
2685 | if self._generaldelta and self._lazydeltabase: | |||
|
2686 | delta_base_reuse_policy = DELTA_BASE_REUSE_TRY | |||
|
2687 | else: | |||
|
2688 | delta_base_reuse_policy = DELTA_BASE_REUSE_NO | |||
|
2689 | ||||
2681 | self._adding_group = True |
|
2690 | self._adding_group = True | |
2682 | empty = True |
|
2691 | empty = True | |
2683 | try: |
|
2692 | try: | |
@@ -2758,7 +2767,7 b' class revlog:' | |||||
2758 | p1, |
|
2767 | p1, | |
2759 | p2, |
|
2768 | p2, | |
2760 | flags, |
|
2769 | flags, | |
2761 | (baserev, delta), |
|
2770 | (baserev, delta, delta_base_reuse_policy), | |
2762 | alwayscache=alwayscache, |
|
2771 | alwayscache=alwayscache, | |
2763 | deltacomputer=deltacomputer, |
|
2772 | deltacomputer=deltacomputer, | |
2764 | sidedata=sidedata, |
|
2773 | sidedata=sidedata, |
General Comments 0
You need to be logged in to leave comments.
Login now