summaryrefslogtreecommitdiff
path: root/t/t2024-checkout-dwim.sh
diff options
context:
space:
mode:
Diffstat (limited to 't/t2024-checkout-dwim.sh')
-rwxr-xr-xt/t2024-checkout-dwim.sh94
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
'