##// END OF EJS Templates
changegroup: add `delta_base_reuse_policy` argument...
marmoute -
r50660:152d9c01 default
parent child Browse files
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