Show More
@@ -3744,16 +3744,20 b' def perfrevlogchunks(ui, repo, file_=Non' | |||||
3744 |
|
3744 | |||
3745 | revs = list(rl.revs(startrev, len(rl) - 1)) |
|
3745 | revs = list(rl.revs(startrev, len(rl) - 1)) | |
3746 |
|
3746 | |||
3747 | def rlfh(rl): |
|
3747 | @contextlib.contextmanager | |
3748 | if rl._inline: |
|
3748 | def reading(rl): | |
|
3749 | if getattr(rl, 'reading', None) is not None: | |||
|
3750 | with rl.reading(): | |||
|
3751 | yield None | |||
|
3752 | elif rl._inline: | |||
3749 | indexfile = getattr(rl, '_indexfile', None) |
|
3753 | indexfile = getattr(rl, '_indexfile', None) | |
3750 | if indexfile is None: |
|
3754 | if indexfile is None: | |
3751 | # compatibility with <= hg-5.8 |
|
3755 | # compatibility with <= hg-5.8 | |
3752 | indexfile = getattr(rl, 'indexfile') |
|
3756 | indexfile = getattr(rl, 'indexfile') | |
3753 |
|
|
3757 | yield getsvfs(repo)(indexfile) | |
3754 | else: |
|
3758 | else: | |
3755 | datafile = getattr(rl, 'datafile', getattr(rl, 'datafile')) |
|
3759 | datafile = getattr(rl, 'datafile', getattr(rl, 'datafile')) | |
3756 |
|
|
3760 | yield getsvfs(repo)(datafile) | |
3757 |
|
3761 | |||
3758 | def doread(): |
|
3762 | def doread(): | |
3759 | rl.clearcaches() |
|
3763 | rl.clearcaches() | |
@@ -3762,9 +3766,13 b' def perfrevlogchunks(ui, repo, file_=Non' | |||||
3762 |
|
3766 | |||
3763 | def doreadcachedfh(): |
|
3767 | def doreadcachedfh(): | |
3764 | rl.clearcaches() |
|
3768 | rl.clearcaches() | |
3765 | fh = rlfh(rl) |
|
3769 | with reading(rl) as fh: | |
3766 | for rev in revs: |
|
3770 | if fh is not None: | |
3767 | segmentforrevs(rev, rev, df=fh) |
|
3771 | for rev in revs: | |
|
3772 | segmentforrevs(rev, rev, df=fh) | |||
|
3773 | else: | |||
|
3774 | for rev in revs: | |||
|
3775 | segmentforrevs(rev, rev) | |||
3768 |
|
3776 | |||
3769 | def doreadbatch(): |
|
3777 | def doreadbatch(): | |
3770 | rl.clearcaches() |
|
3778 | rl.clearcaches() | |
@@ -3772,22 +3780,33 b' def perfrevlogchunks(ui, repo, file_=Non' | |||||
3772 |
|
3780 | |||
3773 | def doreadbatchcachedfh(): |
|
3781 | def doreadbatchcachedfh(): | |
3774 | rl.clearcaches() |
|
3782 | rl.clearcaches() | |
3775 | fh = rlfh(rl) |
|
3783 | with reading(rl) as fh: | |
3776 | segmentforrevs(revs[0], revs[-1], df=fh) |
|
3784 | if fh is not None: | |
|
3785 | segmentforrevs(revs[0], revs[-1], df=fh) | |||
|
3786 | else: | |||
|
3787 | segmentforrevs(revs[0], revs[-1]) | |||
3777 |
|
3788 | |||
3778 | def dochunk(): |
|
3789 | def dochunk(): | |
3779 | rl.clearcaches() |
|
3790 | rl.clearcaches() | |
3780 | fh = rlfh(rl) |
|
3791 | with reading(rl) as fh: | |
3781 | for rev in revs: |
|
3792 | if fh is not None: | |
3782 | rl._chunk(rev, df=fh) |
|
3793 | for rev in revs: | |
|
3794 | rl._chunk(rev, df=fh) | |||
|
3795 | else: | |||
|
3796 | for rev in revs: | |||
|
3797 | rl._chunk(rev) | |||
3783 |
|
3798 | |||
3784 | chunks = [None] |
|
3799 | chunks = [None] | |
3785 |
|
3800 | |||
3786 | def dochunkbatch(): |
|
3801 | def dochunkbatch(): | |
3787 | rl.clearcaches() |
|
3802 | rl.clearcaches() | |
3788 | fh = rlfh(rl) |
|
3803 | with reading(rl) as fh: | |
3789 | # Save chunks as a side-effect. |
|
3804 | if fh is not None: | |
3790 | chunks[0] = rl._chunks(revs, df=fh) |
|
3805 | # Save chunks as a side-effect. | |
|
3806 | chunks[0] = rl._chunks(revs, df=fh) | |||
|
3807 | else: | |||
|
3808 | # Save chunks as a side-effect. | |||
|
3809 | chunks[0] = rl._chunks(revs) | |||
3791 |
|
3810 | |||
3792 | def docompress(compressor): |
|
3811 | def docompress(compressor): | |
3793 | rl.clearcaches() |
|
3812 | rl.clearcaches() |
General Comments 0
You need to be logged in to leave comments.
Login now