diff options
Diffstat (limited to 't/t2024-checkout-dwim.sh')
-rwxr-xr-x | t/t2024-checkout-dwim.sh | 94 |
1 files changed, 54 insertions, 40 deletions
diff --git a/t/t2024-checkout-dwim.sh b/t/t2024-checkout-dwim.sh index accfa9a..a3b1449 100755 --- a/t/t2024-checkout-dwim.sh +++ b/t/t2024-checkout-dwim.sh @@ -29,11 +29,11 @@ status_uno_is_clean () { } test_expect_success 'setup' ' - test_commit my_master && + test_commit my_main && git init repo_a && ( cd repo_a && - test_commit a_master && + test_commit a_main && git checkout -b foo && test_commit a_foo && git checkout -b bar && @@ -44,7 +44,7 @@ test_expect_success 'setup' ' git init repo_b && ( cd repo_b && - test_commit b_master && + test_commit b_main && git checkout -b foo && test_commit b_foo && git checkout -b baz && @@ -60,23 +60,23 @@ test_expect_success 'setup' ' ' test_expect_success 'checkout of non-existing branch fails' ' - git checkout -B master && + git checkout -B main && test_might_fail git branch -D xyzzy && test_must_fail git checkout xyzzy && status_uno_is_clean && test_must_fail git rev-parse --verify refs/heads/xyzzy && - test_branch master + test_branch main ' test_expect_success 'checkout of branch from multiple remotes fails #1' ' - git checkout -B master && + git checkout -B main && test_might_fail git branch -D foo && test_must_fail git checkout foo && status_uno_is_clean && test_must_fail git rev-parse --verify refs/heads/foo && - test_branch master + test_branch main ' test_expect_success 'when arg matches multiple remotes, do not fallback to interpreting as pathspec' ' @@ -93,37 +93,37 @@ test_expect_success 'when arg matches multiple remotes, do not fallback to inter test_must_fail git checkout ambiguous_branch_and_file 2>err && - test_i18ngrep "matched multiple (2) remote tracking branches" err && + test_grep "matched multiple (2) remote tracking branches" err && # file must not be altered test_cmp expect ambiguous_branch_and_file ' test_expect_success 'checkout of branch from multiple remotes fails with advice' ' - git checkout -B master && + git checkout -B main && test_might_fail git branch -D foo && test_must_fail git checkout foo 2>stderr && - test_branch master && + test_branch main && status_uno_is_clean && - test_i18ngrep "^hint: " stderr && + test_grep "^hint: " stderr && test_must_fail git -c advice.checkoutAmbiguousRemoteBranchName=false \ checkout foo 2>stderr && - test_branch master && + test_branch main && status_uno_is_clean && - test_i18ngrep ! "^hint: " stderr + test_grep ! "^hint: " stderr ' -test_expect_success PERL 'checkout -p with multiple remotes does not print advice' ' - git checkout -B master && +test_expect_success 'checkout -p with multiple remotes does not print advice' ' + git checkout -B main && test_might_fail git branch -D foo && git checkout -p foo 2>stderr && - test_i18ngrep ! "^hint: " stderr && + test_grep ! "^hint: " stderr && status_uno_is_clean ' test_expect_success 'checkout of branch from multiple remotes succeeds with checkout.defaultRemote #1' ' - git checkout -B master && + git checkout -B main && status_uno_is_clean && test_might_fail git branch -D foo && @@ -135,7 +135,7 @@ test_expect_success 'checkout of branch from multiple remotes succeeds with chec ' test_expect_success 'checkout of branch from a single remote succeeds #1' ' - git checkout -B master && + git checkout -B main && test_might_fail git branch -D bar && git checkout bar && @@ -146,7 +146,7 @@ test_expect_success 'checkout of branch from a single remote succeeds #1' ' ' test_expect_success 'checkout of branch from a single remote succeeds #2' ' - git checkout -B master && + git checkout -B main && test_might_fail git branch -D baz && git checkout baz && @@ -157,22 +157,33 @@ test_expect_success 'checkout of branch from a single remote succeeds #2' ' ' test_expect_success '--no-guess suppresses branch auto-vivification' ' - git checkout -B master && + git checkout -B main && status_uno_is_clean && test_might_fail git branch -D bar && test_must_fail git checkout --no-guess bar && test_must_fail git rev-parse --verify refs/heads/bar && - test_branch master + test_branch main +' + +test_expect_success 'checkout.guess = false suppresses branch auto-vivification' ' + git checkout -B main && + status_uno_is_clean && + test_might_fail git branch -D bar && + + test_config checkout.guess false && + test_must_fail git checkout bar && + test_must_fail git rev-parse --verify refs/heads/bar && + test_branch main ' test_expect_success 'setup more remotes with unconventional refspecs' ' - git checkout -B master && + git checkout -B main && status_uno_is_clean && git init repo_c && ( cd repo_c && - test_commit c_master && + test_commit c_main && git checkout -b bar && test_commit c_bar && git checkout -b spam && @@ -181,7 +192,7 @@ test_expect_success 'setup more remotes with unconventional refspecs' ' git init repo_d && ( cd repo_d && - test_commit d_master && + test_commit d_main && git checkout -b baz && test_commit d_baz && git checkout -b eggs && @@ -197,29 +208,29 @@ test_expect_success 'setup more remotes with unconventional refspecs' ' ' test_expect_success 'checkout of branch from multiple remotes fails #2' ' - git checkout -B master && + git checkout -B main && status_uno_is_clean && test_might_fail git branch -D bar && test_must_fail git checkout bar && status_uno_is_clean && test_must_fail git rev-parse --verify refs/heads/bar && - test_branch master + test_branch main ' test_expect_success 'checkout of branch from multiple remotes fails #3' ' - git checkout -B master && + git checkout -B main && status_uno_is_clean && test_might_fail git branch -D baz && test_must_fail git checkout baz && status_uno_is_clean && test_must_fail git rev-parse --verify refs/heads/baz && - test_branch master + test_branch main ' test_expect_success 'checkout of branch from a single remote succeeds #3' ' - git checkout -B master && + git checkout -B main && status_uno_is_clean && test_might_fail git branch -D spam && @@ -231,7 +242,7 @@ test_expect_success 'checkout of branch from a single remote succeeds #3' ' ' test_expect_success 'checkout of branch from a single remote succeeds #4' ' - git checkout -B master && + git checkout -B main && status_uno_is_clean && test_might_fail git branch -D eggs && @@ -243,7 +254,7 @@ test_expect_success 'checkout of branch from a single remote succeeds #4' ' ' test_expect_success 'checkout of branch with a file having the same name fails' ' - git checkout -B master && + git checkout -B main && status_uno_is_clean && test_might_fail git branch -D spam && @@ -251,11 +262,11 @@ test_expect_success 'checkout of branch with a file having the same name fails' test_must_fail git checkout spam && status_uno_is_clean && test_must_fail git rev-parse --verify refs/heads/spam && - test_branch master + test_branch main ' test_expect_success 'checkout of branch with a file in subdir having the same name fails' ' - git checkout -B master && + git checkout -B main && status_uno_is_clean && test_might_fail git branch -D spam && @@ -265,11 +276,11 @@ test_expect_success 'checkout of branch with a file in subdir having the same na test_must_fail git -C sub checkout spam && status_uno_is_clean && test_must_fail git rev-parse --verify refs/heads/spam && - test_branch master + test_branch main ' test_expect_success 'checkout <branch> -- succeeds, even if a file with the same name exists' ' - git checkout -B master && + git checkout -B main && status_uno_is_clean && test_might_fail git branch -D spam && @@ -283,7 +294,7 @@ test_expect_success 'checkout <branch> -- succeeds, even if a file with the same test_expect_success 'loosely defined local base branch is reported correctly' ' - git checkout master && + git checkout main && status_uno_is_clean && git branch strict && git branch loose && @@ -291,13 +302,16 @@ test_expect_success 'loosely defined local base branch is reported correctly' ' test_config branch.strict.remote . && test_config branch.loose.remote . && - test_config branch.strict.merge refs/heads/master && - test_config branch.loose.merge master && + test_config branch.strict.merge refs/heads/main && + test_config branch.loose.merge main && - git checkout strict | sed -e "s/strict/BRANCHNAME/g" >expect && + git checkout strict >expect.raw 2>&1 && + sed -e "s/strict/BRANCHNAME/g" <expect.raw >expect && status_uno_is_clean && - git checkout loose | sed -e "s/loose/BRANCHNAME/g" >actual && + git checkout loose >actual.raw 2>&1 && + sed -e "s/loose/BRANCHNAME/g" <actual.raw >actual && status_uno_is_clean && + grep BRANCHNAME actual && test_cmp expect actual ' |