Show More
@@ -128,6 +128,14 b' def update_persistent_nodemap(revlog):' | |||||
128 | notr._postclose[k](None) |
|
128 | notr._postclose[k](None) | |
129 |
|
129 | |||
130 |
|
130 | |||
|
131 | def delete_nodemap(tr, repo, revlog): | |||
|
132 | """ Delete nodemap data on disk for a given revlog""" | |||
|
133 | if revlog.nodemap_file is None: | |||
|
134 | msg = "calling persist nodemap on a revlog without the feature enabled" | |||
|
135 | raise error.ProgrammingError(msg) | |||
|
136 | repo.svfs.unlink(revlog.nodemap_file) | |||
|
137 | ||||
|
138 | ||||
131 | def persist_nodemap(tr, revlog, pending=False, force=False): |
|
139 | def persist_nodemap(tr, revlog, pending=False, force=False): | |
132 | """Write nodemap data on disk for a given revlog""" |
|
140 | """Write nodemap data on disk for a given revlog""" | |
133 | if getattr(revlog, 'filteredrevs', ()): |
|
141 | if getattr(revlog, 'filteredrevs', ()): |
@@ -476,6 +476,27 b' def upgrade(ui, srcrepo, dstrepo, upgrad' | |||||
476 | tr, unfi.manifestlog._rootstore._revlog, force=True |
|
476 | tr, unfi.manifestlog._rootstore._revlog, force=True | |
477 | ) |
|
477 | ) | |
478 | scmutil.writereporequirements(srcrepo, upgrade_op.new_requirements) |
|
478 | scmutil.writereporequirements(srcrepo, upgrade_op.new_requirements) | |
|
479 | elif ( | |||
|
480 | len(upgrade_op.removed_actions) == 1 | |||
|
481 | and [ | |||
|
482 | x | |||
|
483 | for x in upgrade_op.removed_actions | |||
|
484 | if x.name == b'persistent-nodemap' | |||
|
485 | ] | |||
|
486 | and not upgrade_op.upgrade_actions | |||
|
487 | ): | |||
|
488 | ui.status( | |||
|
489 | _(b'downgrading repository to not use persistent nodemap feature\n') | |||
|
490 | ) | |||
|
491 | with srcrepo.transaction(b'upgrade') as tr: | |||
|
492 | unfi = srcrepo.unfiltered() | |||
|
493 | cl = unfi.changelog | |||
|
494 | nodemap.delete_nodemap(tr, srcrepo, cl) | |||
|
495 | # check comment 20 lines above for accessing private attributes | |||
|
496 | nodemap.delete_nodemap( | |||
|
497 | tr, srcrepo, unfi.manifestlog._rootstore._revlog | |||
|
498 | ) | |||
|
499 | scmutil.writereporequirements(srcrepo, upgrade_op.new_requirements) | |||
479 | else: |
|
500 | else: | |
480 | with dstrepo.transaction(b'upgrade') as tr: |
|
501 | with dstrepo.transaction(b'upgrade') as tr: | |
481 | _clonerevlogs( |
|
502 | _clonerevlogs( |
@@ -581,7 +581,7 b' downgrading' | |||||
581 | plain-cl-delta: yes yes yes |
|
581 | plain-cl-delta: yes yes yes | |
582 | compression: zlib zlib zlib |
|
582 | compression: zlib zlib zlib | |
583 | compression-level: default default default |
|
583 | compression-level: default default default | |
584 |
$ hg debugupgraderepo --run --no-backup |
|
584 | $ hg debugupgraderepo --run --no-backup | |
585 | upgrade will perform the following actions: |
|
585 | upgrade will perform the following actions: | |
586 |
|
586 | |||
587 | requirements |
|
587 | requirements | |
@@ -593,8 +593,17 b' downgrading' | |||||
593 | - changelog |
|
593 | - changelog | |
594 | - manifest |
|
594 | - manifest | |
595 |
|
595 | |||
|
596 | beginning upgrade... | |||
|
597 | repository locked and read-only | |||
|
598 | creating temporary repository to stage upgraded data: $TESTTMP/test-repo/.hg/upgrade.* (glob) | |||
|
599 | (it is safe to interrupt this process any time before data migration completes) | |||
|
600 | downgrading repository to not use persistent nodemap feature | |||
|
601 | removing temporary repository $TESTTMP/test-repo/.hg/upgrade.* (glob) | |||
596 | $ ls -1 .hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)' |
|
602 | $ ls -1 .hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)' | |
597 | [1] |
|
603 | 00changelog-*.nd (glob) | |
|
604 | 00manifest-*.nd (glob) | |||
|
605 | undo.backup.00changelog.n | |||
|
606 | undo.backup.00manifest.n | |||
598 | $ hg debugnodemap --metadata |
|
607 | $ hg debugnodemap --metadata | |
599 |
|
608 | |||
600 |
|
609 | |||
@@ -643,6 +652,8 b' upgrading' | |||||
643 | 00changelog.n |
|
652 | 00changelog.n | |
644 | 00manifest-*.nd (glob) |
|
653 | 00manifest-*.nd (glob) | |
645 | 00manifest.n |
|
654 | 00manifest.n | |
|
655 | undo.backup.00changelog.n | |||
|
656 | undo.backup.00manifest.n | |||
646 |
|
657 | |||
647 | $ hg debugnodemap --metadata |
|
658 | $ hg debugnodemap --metadata | |
648 | uid: * (glob) |
|
659 | uid: * (glob) |
General Comments 0
You need to be logged in to leave comments.
Login now