diff options
Diffstat (limited to 't/t7201-co.sh')
-rwxr-xr-x | t/t7201-co.sh | 211 |
1 files changed, 97 insertions, 114 deletions
diff --git a/t/t7201-co.sh b/t/t7201-co.sh index b696bae5f5..7f6e23a4bb 100755 --- a/t/t7201-co.sh +++ b/t/t7201-co.sh @@ -5,10 +5,10 @@ test_description='git checkout tests. -Creates master, forks renamer and side branches from it. +Creates main, forks renamer and side branches from it. Test switching across them. - ! [master] Initial A one, A two + ! [main] Initial A one, A two * [renamer] Renamer R one->uno, M two ! [side] Side M one, D two, A three ! [simple] Simple D one, M two @@ -16,10 +16,13 @@ Test switching across them. + [simple] Simple D one, M two + [side] Side M one, D two, A three * [renamer] Renamer R one->uno, M two - +*++ [master] Initial A one, A two + +*++ [main] Initial A one, A two ' +GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main +export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME + . ./test-lib.sh test_tick @@ -33,8 +36,7 @@ fill () { test_expect_success setup ' - - fill x y z > same && + fill x y z >same && fill 1 2 3 4 5 6 7 8 >one && fill a b c d e >two && git add same one two && @@ -47,32 +49,30 @@ test_expect_success setup ' fill a b c d e f >two && git commit -a -m "Renamer R one->uno, M two" && - git checkout -b side master && + git checkout -b side main && fill 1 2 3 4 5 6 7 >one && fill A B C D E >three && rm -f two && git update-index --add --remove one two three && git commit -m "Side M one, D two, A three" && - git checkout -b simple master && + git checkout -b simple main && rm -f one && - fill a c e > two && + fill a c e >two && git commit -a -m "Simple D one, M two" && - git checkout master + git checkout main ' -test_expect_success "checkout from non-existing branch" ' - - git checkout -b delete-me master && +test_expect_success 'checkout from non-existing branch' ' + git checkout -b delete-me main && git update-ref -d --no-deref refs/heads/delete-me && test refs/heads/delete-me = "$(git symbolic-ref HEAD)" && - git checkout master && - test refs/heads/master = "$(git symbolic-ref HEAD)" + git checkout main && + test refs/heads/main = "$(git symbolic-ref HEAD)" ' -test_expect_success "checkout with dirty tree without -m" ' - +test_expect_success 'checkout with dirty tree without -m' ' fill 0 1 2 3 4 5 6 7 8 >one && if git checkout side then @@ -81,12 +81,10 @@ test_expect_success "checkout with dirty tree without -m" ' else echo "happy - failed correctly" fi - ' -test_expect_success "checkout with unrelated dirty tree without -m" ' - - git checkout -f master && +test_expect_success 'checkout with unrelated dirty tree without -m' ' + git checkout -f main && fill 0 1 2 3 4 5 6 7 8 >same && cp same kept && git checkout side >messages && @@ -95,22 +93,21 @@ test_expect_success "checkout with unrelated dirty tree without -m" ' test_cmp messages.expect messages ' -test_expect_success "checkout -m with dirty tree" ' - - git checkout -f master && +test_expect_success 'checkout -m with dirty tree' ' + git checkout -f main && git clean -f && fill 0 1 2 3 4 5 6 7 8 >one && - git checkout -m side > messages && + git checkout -m side >messages && test "$(git symbolic-ref HEAD)" = "refs/heads/side" && printf "M\t%s\n" one >expect.messages && test_cmp expect.messages messages && - fill "M one" "A three" "D two" >expect.master && - git diff --name-status master >current.master && - test_cmp expect.master current.master && + fill "M one" "A three" "D two" >expect.main && + git diff --name-status main >current.main && + test_cmp expect.main current.main && fill "M one" >expect.side && git diff --name-status side >current.side && @@ -120,9 +117,8 @@ test_expect_success "checkout -m with dirty tree" ' test_must_be_empty current.index ' -test_expect_success "checkout -m with dirty tree, renamed" ' - - git checkout -f master && git clean -f && +test_expect_success 'checkout -m with dirty tree, renamed' ' + git checkout -f main && git clean -f && fill 1 2 3 4 5 7 8 >one && if git checkout renamer @@ -139,12 +135,10 @@ test_expect_success "checkout -m with dirty tree, renamed" ' ! test -f one && git diff --cached >current && test_must_be_empty current - ' test_expect_success 'checkout -m with merge conflict' ' - - git checkout -f master && git clean -f && + git checkout -f main && git clean -f && fill 1 T 3 4 5 6 S 8 >one && if git checkout renamer @@ -157,7 +151,7 @@ test_expect_success 'checkout -m with merge conflict' ' git checkout -m renamer && - git diff master:one :3:uno | + git diff main:one :3:uno | sed -e "1,/^@@/d" -e "/^ /d" -e "s/^-/d/" -e "s/^+/a/" >current && fill d2 aT d7 aS >expect && test_cmp expect current && @@ -166,10 +160,10 @@ test_expect_success 'checkout -m with merge conflict' ' ' test_expect_success 'format of merge conflict from checkout -m' ' + git checkout -f main && + git clean -f && - git checkout -f master && git clean -f && - - fill b d > two && + fill b d >two && git checkout -m simple && git ls-files >current && @@ -190,10 +184,11 @@ test_expect_success 'format of merge conflict from checkout -m' ' ' test_expect_success 'checkout --merge --conflict=diff3 <branch>' ' + git checkout -f main && + git reset --hard && + git clean -f && - git checkout -f master && git reset --hard && git clean -f && - - fill b d > two && + fill b d >two && git checkout --merge --conflict=diff3 simple && cat <<-EOF >expect && @@ -201,7 +196,7 @@ test_expect_success 'checkout --merge --conflict=diff3 <branch>' ' a c e - ||||||| master + ||||||| main a b c @@ -216,8 +211,9 @@ test_expect_success 'checkout --merge --conflict=diff3 <branch>' ' ' test_expect_success 'switch to another branch while carrying a deletion' ' - - git checkout -f master && git reset --hard && git clean -f && + git checkout -f main && + git reset --hard && + git clean -f && git rm two && test_must_fail git checkout simple 2>errs && @@ -228,14 +224,15 @@ test_expect_success 'switch to another branch while carrying a deletion' ' ' test_expect_success 'checkout to detach HEAD (with advice declined)' ' - git config advice.detachedHead false && - git checkout -f renamer && git clean -f && + rev=$(git rev-parse --short renamer^) && + git checkout -f renamer && + git clean -f && git checkout renamer^ 2>messages && - test_i18ngrep "HEAD is now at 7329388" messages && + test_i18ngrep "HEAD is now at $rev" messages && test_line_count = 1 messages && H=$(git rev-parse --verify HEAD) && - M=$(git show-ref -s --verify refs/heads/master) && + M=$(git show-ref -s --verify refs/heads/main) && test "z$H" = "z$M" && if git symbolic-ref HEAD >/dev/null 2>&1 then @@ -248,12 +245,14 @@ test_expect_success 'checkout to detach HEAD (with advice declined)' ' test_expect_success 'checkout to detach HEAD' ' git config advice.detachedHead true && - git checkout -f renamer && git clean -f && - GIT_TEST_GETTEXT_POISON=false git checkout renamer^ 2>messages && - grep "HEAD is now at 7329388" messages && + rev=$(git rev-parse --short renamer^) && + git checkout -f renamer && + git clean -f && + git checkout renamer^ 2>messages && + grep "HEAD is now at $rev" messages && test_line_count -gt 1 messages && H=$(git rev-parse --verify HEAD) && - M=$(git show-ref -s --verify refs/heads/master) && + M=$(git show-ref -s --verify refs/heads/main) && test "z$H" = "z$M" && if git symbolic-ref HEAD >/dev/null 2>&1 then @@ -265,11 +264,11 @@ test_expect_success 'checkout to detach HEAD' ' ' test_expect_success 'checkout to detach HEAD with branchname^' ' - - git checkout -f master && git clean -f && + git checkout -f main && + git clean -f && git checkout renamer^ && H=$(git rev-parse --verify HEAD) && - M=$(git show-ref -s --verify refs/heads/master) && + M=$(git show-ref -s --verify refs/heads/main) && test "z$H" = "z$M" && if git symbolic-ref HEAD >/dev/null 2>&1 then @@ -281,11 +280,11 @@ test_expect_success 'checkout to detach HEAD with branchname^' ' ' test_expect_success 'checkout to detach HEAD with :/message' ' - - git checkout -f master && git clean -f && + git checkout -f main && + git clean -f && git checkout ":/Initial" && H=$(git rev-parse --verify HEAD) && - M=$(git show-ref -s --verify refs/heads/master) && + M=$(git show-ref -s --verify refs/heads/main) && test "z$H" = "z$M" && if git symbolic-ref HEAD >/dev/null 2>&1 then @@ -297,11 +296,11 @@ test_expect_success 'checkout to detach HEAD with :/message' ' ' test_expect_success 'checkout to detach HEAD with HEAD^0' ' - - git checkout -f master && git clean -f && + git checkout -f main && + git clean -f && git checkout HEAD^0 && H=$(git rev-parse --verify HEAD) && - M=$(git show-ref -s --verify refs/heads/master) && + M=$(git show-ref -s --verify refs/heads/main) && test "z$H" = "z$M" && if git symbolic-ref HEAD >/dev/null 2>&1 then @@ -313,30 +312,27 @@ test_expect_success 'checkout to detach HEAD with HEAD^0' ' ' test_expect_success 'checkout with ambiguous tag/branch names' ' - git tag both side && - git branch both master && + git branch both main && git reset --hard && - git checkout master && + git checkout main && git checkout both && H=$(git rev-parse --verify HEAD) && - M=$(git show-ref -s --verify refs/heads/master) && + M=$(git show-ref -s --verify refs/heads/main) && test "z$H" = "z$M" && name=$(git symbolic-ref HEAD 2>/dev/null) && test "z$name" = zrefs/heads/both - ' test_expect_success 'checkout with ambiguous tag/branch names' ' - git reset --hard && - git checkout master && + git checkout main && git tag frotz side && - git branch frotz master && + git branch frotz main && git reset --hard && - git checkout master && + git checkout main && git checkout tags/frotz && H=$(git rev-parse --verify HEAD) && @@ -349,26 +345,19 @@ test_expect_success 'checkout with ambiguous tag/branch names' ' else : happy fi - ' test_expect_success 'switch branches while in subdirectory' ' - git reset --hard && - git checkout master && + git checkout main && mkdir subs && - ( - cd subs && - git checkout side - ) && + git -C subs checkout side && ! test -f subs/one && rm -fr subs - ' test_expect_success 'checkout specific path while in subdirectory' ' - git reset --hard && git checkout side && mkdir subs && @@ -376,65 +365,60 @@ test_expect_success 'checkout specific path while in subdirectory' ' git add subs/bero && git commit -m "add subs/bero" && - git checkout master && + git checkout main && mkdir -p subs && - ( - cd subs && - git checkout side -- bero - ) && + git -C subs checkout side -- bero && test -f subs/bero - ' -test_expect_success \ - 'checkout w/--track sets up tracking' ' +test_expect_success 'checkout w/--track sets up tracking' ' git config branch.autosetupmerge false && - git checkout master && + git checkout main && git checkout --track -b track1 && test "$(git config branch.track1.remote)" && - test "$(git config branch.track1.merge)"' + test "$(git config branch.track1.merge)" +' -test_expect_success \ - 'checkout w/autosetupmerge=always sets up tracking' ' +test_expect_success 'checkout w/autosetupmerge=always sets up tracking' ' test_when_finished git config branch.autosetupmerge false && git config branch.autosetupmerge always && - git checkout master && + git checkout main && git checkout -b track2 && test "$(git config branch.track2.remote)" && - test "$(git config branch.track2.merge)"' + test "$(git config branch.track2.merge)" +' test_expect_success 'checkout w/--track from non-branch HEAD fails' ' - git checkout master^0 && + git checkout main^0 && test_must_fail git symbolic-ref HEAD && test_must_fail git checkout --track -b track && test_must_fail git rev-parse --verify track && test_must_fail git symbolic-ref HEAD && - test "z$(git rev-parse master^0)" = "z$(git rev-parse HEAD)" + test "z$(git rev-parse main^0)" = "z$(git rev-parse HEAD)" ' test_expect_success 'checkout w/--track from tag fails' ' - git checkout master^0 && + git checkout main^0 && test_must_fail git symbolic-ref HEAD && test_must_fail git checkout --track -b track frotz && test_must_fail git rev-parse --verify track && test_must_fail git symbolic-ref HEAD && - test "z$(git rev-parse master^0)" = "z$(git rev-parse HEAD)" + test "z$(git rev-parse main^0)" = "z$(git rev-parse HEAD)" ' test_expect_success 'detach a symbolic link HEAD' ' - git checkout master && + git checkout main && git config --bool core.prefersymlinkrefs yes && git checkout side && - git checkout master && + git checkout main && it=$(git symbolic-ref HEAD) && - test "z$it" = zrefs/heads/master && - here=$(git rev-parse --verify refs/heads/master) && + test "z$it" = zrefs/heads/main && + here=$(git rev-parse --verify refs/heads/main) && git checkout side^ && - test "z$(git rev-parse --verify refs/heads/master)" = "z$here" + test "z$(git rev-parse --verify refs/heads/main)" = "z$here" ' -test_expect_success \ - 'checkout with --track fakes a sensible -b <name>' ' +test_expect_success 'checkout with --track fakes a sensible -b <name>' ' git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" && git update-ref refs/remotes/origin/koala/bear renamer && @@ -442,22 +426,22 @@ test_expect_success \ test "refs/heads/koala/bear" = "$(git symbolic-ref HEAD)" && test "$(git rev-parse HEAD)" = "$(git rev-parse renamer)" && - git checkout master && git branch -D koala/bear && + git checkout main && git branch -D koala/bear && git checkout --track refs/remotes/origin/koala/bear && test "refs/heads/koala/bear" = "$(git symbolic-ref HEAD)" && test "$(git rev-parse HEAD)" = "$(git rev-parse renamer)" && - git checkout master && git branch -D koala/bear && + git checkout main && git branch -D koala/bear && git checkout --track remotes/origin/koala/bear && test "refs/heads/koala/bear" = "$(git symbolic-ref HEAD)" && test "$(git rev-parse HEAD)" = "$(git rev-parse renamer)" ' -test_expect_success \ - 'checkout with --track, but without -b, fails with too short tracked name' ' - test_must_fail git checkout --track renamer' +test_expect_success 'checkout with --track, but without -b, fails with too short tracked name' ' + test_must_fail git checkout --track renamer +' setup_conflicting_index () { rm -f .git/index && @@ -601,18 +585,17 @@ test_expect_success 'checkout --conflict=diff3' ' ' test_expect_success 'failing checkout -b should not break working tree' ' - git reset --hard master && - git symbolic-ref HEAD refs/heads/master && + git reset --hard main && + git symbolic-ref HEAD refs/heads/main && test_must_fail git checkout -b renamer side^ && - test $(git symbolic-ref HEAD) = refs/heads/master && + test $(git symbolic-ref HEAD) = refs/heads/main && git diff --exit-code && git diff --cached --exit-code - ' test_expect_success 'switch out of non-branch' ' - git reset --hard master && - git checkout master^0 && + git reset --hard main && + git checkout main^0 && echo modified >one && test_must_fail git checkout renamer 2>error.log && ! grep "^Previous HEAD" error.log |