| #!/bin/sh |
| |
| test_description='test the `scalar` command' |
| |
| TEST_DIRECTORY=$PWD/../../../t |
| export TEST_DIRECTORY |
| |
| # Make it work with --no-bin-wrappers |
| PATH=$PWD/..:$PATH |
| |
| . ../../../t/test-lib.sh |
| |
| GIT_TEST_MAINT_SCHEDULER="crontab:test-tool crontab ../cron.txt,launchctl:true,schtasks:true" |
| export GIT_TEST_MAINT_SCHEDULER |
| |
| test_expect_success 'scalar shows a usage' ' |
| test_expect_code 129 scalar -h |
| ' |
| |
| test_expect_success 'scalar unregister' ' |
| git init vanish/src && |
| scalar register vanish/src && |
| git config --get --global --fixed-value \ |
| maintenance.repo "$(pwd)/vanish/src" && |
| scalar list >scalar.repos && |
| grep -F "$(pwd)/vanish/src" scalar.repos && |
| rm -rf vanish/src/.git && |
| scalar unregister vanish && |
| test_must_fail git config --get --global --fixed-value \ |
| maintenance.repo "$(pwd)/vanish/src" && |
| scalar list >scalar.repos && |
| ! grep -F "$(pwd)/vanish/src" scalar.repos |
| ' |
| |
| test_expect_success 'set up repository to clone' ' |
| test_commit first && |
| test_commit second && |
| test_commit third && |
| git switch -c parallel first && |
| mkdir -p 1/2 && |
| test_commit 1/2/3 && |
| git config uploadPack.allowFilter true && |
| git config uploadPack.allowAnySHA1InWant true |
| ' |
| |
| test_expect_success 'scalar clone' ' |
| second=$(git rev-parse --verify second:second.t) && |
| scalar clone "file://$(pwd)" cloned --single-branch && |
| ( |
| cd cloned/src && |
| |
| git config --get --global --fixed-value maintenance.repo \ |
| "$(pwd)" && |
| |
| git for-each-ref --format="%(refname)" refs/remotes/origin/ >actual && |
| echo "refs/remotes/origin/parallel" >expect && |
| test_cmp expect actual && |
| |
| test_path_is_missing 1/2 && |
| test_must_fail git rev-list --missing=print $second && |
| git rev-list $second && |
| git cat-file blob $second >actual && |
| echo "second" >expect && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'scalar reconfigure' ' |
| git init one/src && |
| scalar register one && |
| git -C one/src config core.preloadIndex false && |
| scalar reconfigure one && |
| test true = "$(git -C one/src config core.preloadIndex)" && |
| git -C one/src config core.preloadIndex false && |
| scalar reconfigure -a && |
| test true = "$(git -C one/src config core.preloadIndex)" |
| ' |
| |
| test_expect_success 'scalar delete without enlistment shows a usage' ' |
| test_expect_code 129 scalar delete |
| ' |
| |
| test_expect_success 'scalar delete with enlistment' ' |
| scalar delete cloned && |
| test_path_is_missing cloned |
| ' |
| |
| test_done |