==================================== Test for the `make reference` script ==================================== Setup $ export PATH=$TESTDIR/../repo-scripts/:${PATH} $ mkdir some-dir $ hg init some-dir/my-source-repo --config format.usegeneraldelta=False $ hg -R some-dir/my-source-repo debugbuilddag --new-file '.+5:brancha$.+11:branchb$.+30:branchc<brancha+2<branchb+2' Define partial set $ cat << EOF >> p-config.yaml > partial-sets: > same: > missing-last-10: > remove: "last(all(), 10)" > roles: > pull: > noop: > same: > source: "reference" > target: "same" > EOF Wrong call ---------- $ make-reference usage: make-reference [-h] [--optimize OPTIMIZE [OPTIMIZE ...]] [--hgrc HGRC] [--existing-repo EXISTING_REPO] source id partial_sets_file make-reference: error: too few arguments [2] $ make-reference some-dir/my-source-repo usage: make-reference [-h] [--optimize OPTIMIZE [OPTIMIZE ...]] [--hgrc HGRC] [--existing-repo EXISTING_REPO] source id partial_sets_file make-reference: error: too few arguments [2] $ make-reference my-id usage: make-reference [-h] [--optimize OPTIMIZE [OPTIMIZE ...]] [--hgrc HGRC] [--existing-repo EXISTING_REPO] source id partial_sets_file make-reference: error: too few arguments [2] Call from scratch ----------------- $ make-reference some-dir/my-source-repo my-reference p-config.yaml copy of old repository backed up at $TESTTMP/my-reference-tmp?????-reference/.hg/upgradebackup.* (glob) the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified hg cloning repository from: some-dir/my-source-repo Running debugupgraderepo because of format mismatch: generaldelta: False != True (repo/config) sparserevlog: False != True (repo/config) building a reference tarball result available at: my-reference-0c229866-reference.tar $ ls -1 my-reference-0c229866-reference my-reference-0c229866-reference.tar my-reference-0c229866.benchrepo p-config.yaml some-dir $ cat my-reference-*.benchrepo partial-sets: missing-last-10: remove: last(all(), 10) same: null reference-repo: enabled: true format-info: compression: zlib compression-level: default dotencode: true fncache: true generaldelta: true plain-cl-delta: true sparserevlog: true hg-version: * (glob) id: my-reference number-heads: all: 3 visible: 3 number-named-branch: all: 1 visible: 1 number-revisions: all: 53 visible: 53 repo-hash: 0c229866 repo-prefix: my-reference-0c229866 source: some-dir/my-source-repo roles: pull: noop: same: source: reference target: same Call with existing data ----------------- $ rm -rf my-reference-*.benchrepo my-reference-*.tar my-reference-*-reference $ ls -1 p-config.yaml some-dir $ make-reference some-dir/my-source-repo my-reference p-config.yaml --existing-repo some-dir/my-source-repo copy of old repository backed up at $TESTTMP/my-reference-tmp?????-reference/.hg/upgradebackup.* (glob) the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified using 'some-dir/my-source-repo' as source instead of cloning (make sure this was cloned with the right version) Running debugupgraderepo because of format mismatch: generaldelta: False != True (repo/config) sparserevlog: False != True (repo/config) building a reference tarball result available at: my-reference-0c229866-reference.tar $ ls -1 my-reference-0c229866-reference my-reference-0c229866-reference.tar my-reference-0c229866.benchrepo p-config.yaml some-dir $ cat my-reference-*.benchrepo partial-sets: missing-last-10: remove: last(all(), 10) same: null reference-repo: enabled: true format-info: compression: zlib compression-level: default dotencode: true fncache: true generaldelta: true plain-cl-delta: true sparserevlog: true hg-version: * (glob) id: my-reference number-heads: all: 3 visible: 3 number-named-branch: all: 1 visible: 1 number-revisions: all: 53 visible: 53 repo-hash: 0c229866 repo-prefix: my-reference-0c229866 source: some-dir/my-source-repo roles: pull: noop: same: source: reference target: same $ tar tf my-reference-*-reference.tar | sort my-reference-0c229866-reference/ my-reference-0c229866-reference/.hg/ my-reference-0c229866-reference/.hg/00changelog.i my-reference-0c229866-reference/.hg/cache/ my-reference-0c229866-reference/.hg/cache/branch2-served my-reference-0c229866-reference/.hg/cache/hgtagsfnodes1 my-reference-0c229866-reference/.hg/cache/rbc-names-v1 my-reference-0c229866-reference/.hg/cache/rbc-revs-v1 my-reference-0c229866-reference/.hg/cache/tags2 my-reference-0c229866-reference/.hg/cache/tags2-served my-reference-0c229866-reference/.hg/dirstate my-reference-0c229866-reference/.hg/localtags my-reference-0c229866-reference/.hg/requires my-reference-0c229866-reference/.hg/store/ my-reference-0c229866-reference/.hg/store/00changelog.i my-reference-0c229866-reference/.hg/store/00manifest.i my-reference-0c229866-reference/.hg/store/data/ my-reference-0c229866-reference/.hg/store/data/nf0.i my-reference-0c229866-reference/.hg/store/data/nf1.i my-reference-0c229866-reference/.hg/store/data/nf10.i my-reference-0c229866-reference/.hg/store/data/nf11.i my-reference-0c229866-reference/.hg/store/data/nf12.i my-reference-0c229866-reference/.hg/store/data/nf13.i my-reference-0c229866-reference/.hg/store/data/nf14.i my-reference-0c229866-reference/.hg/store/data/nf15.i my-reference-0c229866-reference/.hg/store/data/nf16.i my-reference-0c229866-reference/.hg/store/data/nf17.i my-reference-0c229866-reference/.hg/store/data/nf18.i my-reference-0c229866-reference/.hg/store/data/nf19.i my-reference-0c229866-reference/.hg/store/data/nf2.i my-reference-0c229866-reference/.hg/store/data/nf20.i my-reference-0c229866-reference/.hg/store/data/nf21.i my-reference-0c229866-reference/.hg/store/data/nf22.i my-reference-0c229866-reference/.hg/store/data/nf23.i my-reference-0c229866-reference/.hg/store/data/nf24.i my-reference-0c229866-reference/.hg/store/data/nf25.i my-reference-0c229866-reference/.hg/store/data/nf26.i my-reference-0c229866-reference/.hg/store/data/nf27.i my-reference-0c229866-reference/.hg/store/data/nf28.i my-reference-0c229866-reference/.hg/store/data/nf29.i my-reference-0c229866-reference/.hg/store/data/nf3.i my-reference-0c229866-reference/.hg/store/data/nf30.i my-reference-0c229866-reference/.hg/store/data/nf31.i my-reference-0c229866-reference/.hg/store/data/nf32.i my-reference-0c229866-reference/.hg/store/data/nf33.i my-reference-0c229866-reference/.hg/store/data/nf34.i my-reference-0c229866-reference/.hg/store/data/nf35.i my-reference-0c229866-reference/.hg/store/data/nf36.i my-reference-0c229866-reference/.hg/store/data/nf37.i my-reference-0c229866-reference/.hg/store/data/nf38.i my-reference-0c229866-reference/.hg/store/data/nf39.i my-reference-0c229866-reference/.hg/store/data/nf4.i my-reference-0c229866-reference/.hg/store/data/nf40.i my-reference-0c229866-reference/.hg/store/data/nf41.i my-reference-0c229866-reference/.hg/store/data/nf42.i my-reference-0c229866-reference/.hg/store/data/nf43.i my-reference-0c229866-reference/.hg/store/data/nf44.i my-reference-0c229866-reference/.hg/store/data/nf45.i my-reference-0c229866-reference/.hg/store/data/nf46.i my-reference-0c229866-reference/.hg/store/data/nf47.i my-reference-0c229866-reference/.hg/store/data/nf48.i my-reference-0c229866-reference/.hg/store/data/nf49.i my-reference-0c229866-reference/.hg/store/data/nf5.i my-reference-0c229866-reference/.hg/store/data/nf50.i my-reference-0c229866-reference/.hg/store/data/nf51.i my-reference-0c229866-reference/.hg/store/data/nf52.i my-reference-0c229866-reference/.hg/store/data/nf6.i my-reference-0c229866-reference/.hg/store/data/nf7.i my-reference-0c229866-reference/.hg/store/data/nf8.i my-reference-0c229866-reference/.hg/store/data/nf9.i my-reference-0c229866-reference/.hg/store/fncache my-reference-0c229866-reference/.hg/store/phaseroots my-reference-0c229866-reference/.hg/store/undo my-reference-0c229866-reference/.hg/store/undo.backupfiles my-reference-0c229866-reference/.hg/store/undo.phaseroots my-reference-0c229866-reference/.hg/undo.bookmarks my-reference-0c229866-reference/.hg/undo.branch my-reference-0c229866-reference/.hg/undo.desc my-reference-0c229866-reference/.hg/undo.dirstate my-reference-0c229866-reference/.hg/wcache/ my-reference-0c229866-reference/.hg/wcache/manifestfulltextcache my-reference-0c229866.benchrepo update the reference -------------------- $ EDITOR=cat update-reference-config my-reference-*-reference.tar partial-sets: missing-last-10: remove: last(all(), 10) same: null reference-repo: enabled: true format-info: compression: zlib compression-level: default dotencode: true fncache: true generaldelta: true plain-cl-delta: true sparserevlog: true hg-version: * (glob) id: my-reference number-heads: all: 3 visible: 3 number-named-branch: all: 1 visible: 1 number-revisions: all: 53 visible: 53 repo-hash: 0c229866 repo-prefix: my-reference-0c229866 source: some-dir/my-source-repo roles: pull: noop: same: source: reference target: same $ cat << EOF > editor.sh > #!/bin/bash > sed -i 's,some-dir/my-source-repo,some-dir/my-other-source-repo,' \$1 > EOF $ chmod +x editor.sh $ EDITOR=$PWD/editor.sh update-reference-config my-reference-*-reference.tar $ mkdir dst $ cd dst $ tar xf ../my-reference-*-reference.tar --wildcards "my-reference-*.benchrepo" $ cat my-reference-*.benchrepo partial-sets: missing-last-10: remove: last(all(), 10) same: null reference-repo: enabled: true format-info: compression: zlib compression-level: default dotencode: true fncache: true generaldelta: true plain-cl-delta: true sparserevlog: true hg-version: * (glob) id: my-reference number-heads: all: 3 visible: 3 number-named-branch: all: 1 visible: 1 number-revisions: all: 53 visible: 53 repo-hash: 0c229866 repo-prefix: my-reference-0c229866 source: some-dir/my-other-source-repo roles: pull: noop: same: source: reference target: same $ cd .. Call from scratch with explicit optimization -------------------------------------------- $ rm -rf my-reference-*.benchrepo my-reference-reference-*.tar my-reference-*-reference $ ls -1 dst editor.sh my-reference-0c229866-reference.tar p-config.yaml some-dir $ make-reference some-dir/my-source-repo my-reference p-config.yaml --optimize re-delta-parent re-delta-multibase copy of old repository backed up at $TESTTMP/my-reference-tmp?????-reference/.hg/upgradebackup.* (glob) the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified hg cloning repository from: some-dir/my-source-repo Running `debugupgraderepo` with requested optimizations: re-delta-parent, re-delta-multibase building a reference tarball result available at: my-reference-0c229866-reference.tar $ ls -1 dst editor.sh my-reference-0c229866-reference my-reference-0c229866-reference.tar my-reference-0c229866.benchrepo p-config.yaml some-dir $ cat my-reference-*.benchrepo partial-sets: missing-last-10: remove: last(all(), 10) same: null reference-repo: enabled: true format-info: compression: zlib compression-level: default dotencode: true fncache: true generaldelta: true plain-cl-delta: true sparserevlog: true hg-version: * (glob) id: my-reference number-heads: all: 3 visible: 3 number-named-branch: all: 1 visible: 1 number-revisions: all: 53 visible: 53 repo-hash: 0c229866 repo-prefix: my-reference-0c229866 source: some-dir/my-source-repo roles: pull: noop: same: source: reference target: same Call from scratch with given hgrc file -------------------------------------- $ rm -rf my-reference-*.benchrepo my-reference-*.tar my-reference-reference $ ls -1 dst editor.sh my-reference-0c229866-reference p-config.yaml some-dir $ cat << EOF > sparse-revlog-hgrc > [format] > sparse-revlog = false > EOF $ make-reference some-dir/my-source-repo my-reference p-config.yaml --hgrc non-existing-hgrc Given hgrc 'non-existing-hgrc' is not a file [1] $ make-reference some-dir/my-source-repo my-reference p-config.yaml --hgrc sparse-revlog-hgrc copy of old repository backed up at $TESTTMP/my-reference-tmp?????-reference/.hg/upgradebackup.* (glob) the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified hg cloning repository from: some-dir/my-source-repo copying hgrc file from: sparse-revlog-hgrc Running debugupgraderepo because of format mismatch: generaldelta: False != True (repo/config) building a reference tarball result available at: my-reference-8e2c7069-reference.tar $ ls -1 dst editor.sh my-reference-0c229866-reference my-reference-8e2c7069-reference my-reference-8e2c7069-reference.tar my-reference-8e2c7069.benchrepo p-config.yaml some-dir sparse-revlog-hgrc $ cat my-reference-*.benchrepo partial-sets: missing-last-10: remove: last(all(), 10) same: null reference-repo: enabled: true format-info: compression: zlib compression-level: default dotencode: true fncache: true generaldelta: true plain-cl-delta: true sparserevlog: false hg-version: * (glob) id: my-reference number-heads: all: 3 visible: 3 number-named-branch: all: 1 visible: 1 number-revisions: all: 53 visible: 53 repo-hash: 8e2c7069 repo-prefix: my-reference-8e2c7069 source: some-dir/my-source-repo roles: pull: noop: same: source: reference target: same