Our usual style when working with subdirectories is to chdir inside a subshell or to use "git -C", which means we do not have to constantly return to the main test directory. Let's convert this old test, which does not follow that style. Signed-off-by: Jeff King <peff@xxxxxxxx> --- t/t5613-info-alternate.sh | 92 +++++++++++++++++------------------------------ 1 file changed, 33 insertions(+), 59 deletions(-) diff --git a/t/t5613-info-alternate.sh b/t/t5613-info-alternate.sh index 1f283a5..7bc1c3c 100755 --- a/t/t5613-info-alternate.sh +++ b/t/t5613-info-alternate.sh @@ -6,44 +6,39 @@ test_description='test transitive info/alternate entries' . ./test-lib.sh -base_dir=$(pwd) - test_expect_success 'preparing first repository' ' - test_create_repo A && - cd A && - echo "Hello World" > file1 && - git add file1 && - git commit -m "Initial commit" file1 && - git repack -a -d && - git prune + test_create_repo A && ( + cd A && + echo "Hello World" > file1 && + git add file1 && + git commit -m "Initial commit" file1 && + git repack -a -d && + git prune + ) ' -cd "$base_dir" - test_expect_success 'preparing second repository' ' - git clone -l -s A B && - cd B && - echo "foo bar" > file2 && - git add file2 && - git commit -m "next commit" file2 && - git repack -a -d -l && - git prune + git clone -l -s A B && ( + cd B && + echo "foo bar" > file2 && + git add file2 && + git commit -m "next commit" file2 && + git repack -a -d -l && + git prune + ) ' -cd "$base_dir" - test_expect_success 'preparing third repository' ' - git clone -l -s B C && - cd C && - echo "Goodbye, cruel world" > file3 && - git add file3 && - git commit -m "one more" file3 && - git repack -a -d -l && - git prune + git clone -l -s B C && ( + cd C && + echo "Goodbye, cruel world" > file3 && + git add file3 && + git commit -m "one more" file3 && + git repack -a -d -l && + git prune + ) ' -cd "$base_dir" - test_expect_success 'creating too deep nesting' ' git clone -l -s C D && git clone -l -s D E && @@ -53,55 +48,34 @@ test_expect_success 'creating too deep nesting' ' ' test_expect_success 'invalidity of deepest repository' ' - cd H && - test_must_fail git fsck + test_must_fail git -C H fsck ' -cd "$base_dir" - test_expect_success 'validity of third repository' ' - cd C && - git fsck + git -C C fsck ' -cd "$base_dir" - test_expect_success 'validity of fourth repository' ' - cd D && - git fsck + git -C D fsck ' -cd "$base_dir" - test_expect_success 'breaking of loops' ' - echo "$base_dir"/B/.git/objects >>"$base_dir"/A/.git/objects/info/alternatesi && - cd C && - git fsck + echo "$(pwd)"/B/.git/objects >>A/.git/objects/info/alternates && + git -C C fsck ' -cd "$base_dir" - test_expect_success 'that info/alternates is necessary' ' - cd C && - rm -f .git/objects/info/alternates && - test_must_fail git fsck + rm -f C/.git/objects/info/alternates && + test_must_fail git -C C fsck ' -cd "$base_dir" - test_expect_success 'that relative alternate is possible for current dir' ' - cd C && - echo "../../../B/.git/objects" > .git/objects/info/alternates && + echo "../../../B/.git/objects" >C/.git/objects/info/alternates && git fsck ' -cd "$base_dir" - test_expect_success 'that relative alternate is only possible for current dir' ' - cd D && - test_must_fail git fsck + test_must_fail git -C D fsck ' -cd "$base_dir" - test_done -- 2.10.0.618.g82cc264