diff options
Diffstat (limited to 't/t3201-branch-contains.sh')
-rwxr-xr-x | t/t3201-branch-contains.sh | 150 |
1 files changed, 103 insertions, 47 deletions
diff --git a/t/t3201-branch-contains.sh b/t/t3201-branch-contains.sh index 40251c9f8f..349a810cee 100755 --- a/t/t3201-branch-contains.sh +++ b/t/t3201-branch-contains.sh @@ -2,6 +2,9 @@ test_description='branch --contains <commit>, --no-contains <commit> --merged, and --no-merged' +GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main +export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME + . ./test-lib.sh test_expect_success setup ' @@ -10,51 +13,52 @@ test_expect_success setup ' git add file && test_tick && git commit -m initial && + git branch -M main && git branch side && echo 1 >file && test_tick && - git commit -a -m "second on master" && + git commit -a -m "second on main" && git checkout side && echo 1 >file && test_tick && git commit -a -m "second on side" && - git merge master + git merge main ' -test_expect_success 'branch --contains=master' ' +test_expect_success 'branch --contains=main' ' - git branch --contains=master >actual && + git branch --contains=main >actual && { - echo " master" && echo "* side" + echo " main" && echo "* side" } >expect && test_cmp expect actual ' -test_expect_success 'branch --contains master' ' +test_expect_success 'branch --contains main' ' - git branch --contains master >actual && + git branch --contains main >actual && { - echo " master" && echo "* side" + echo " main" && echo "* side" } >expect && test_cmp expect actual ' -test_expect_success 'branch --no-contains=master' ' +test_expect_success 'branch --no-contains=main' ' - git branch --no-contains=master >actual && + git branch --no-contains=main >actual && test_must_be_empty actual ' -test_expect_success 'branch --no-contains master' ' +test_expect_success 'branch --no-contains main' ' - git branch --no-contains master >actual && + git branch --no-contains main >actual && test_must_be_empty actual ' @@ -73,7 +77,7 @@ test_expect_success 'branch --no-contains=side' ' git branch --no-contains=side >actual && { - echo " master" + echo " main" } >expect && test_cmp expect actual @@ -81,9 +85,9 @@ test_expect_success 'branch --no-contains=side' ' test_expect_success 'branch --contains with pattern implies --list' ' - git branch --contains=master master >actual && + git branch --contains=main main >actual && { - echo " master" + echo " main" } >expect && test_cmp expect actual @@ -91,7 +95,7 @@ test_expect_success 'branch --contains with pattern implies --list' ' test_expect_success 'branch --no-contains with pattern implies --list' ' - git branch --no-contains=master master >actual && + git branch --no-contains=main main >actual && test_must_be_empty actual ' @@ -100,7 +104,7 @@ test_expect_success 'side: branch --merged' ' git branch --merged >actual && { - echo " master" && + echo " main" && echo "* side" } >expect && test_cmp expect actual @@ -109,9 +113,9 @@ test_expect_success 'side: branch --merged' ' test_expect_success 'branch --merged with pattern implies --list' ' - git branch --merged=side master >actual && + git branch --merged=side main >actual && { - echo " master" + echo " main" } >expect && test_cmp expect actual @@ -124,18 +128,18 @@ test_expect_success 'side: branch --no-merged' ' ' -test_expect_success 'master: branch --merged' ' +test_expect_success 'main: branch --merged' ' - git checkout master && + git checkout main && git branch --merged >actual && { - echo "* master" + echo "* main" } >expect && test_cmp expect actual ' -test_expect_success 'master: branch --no-merged' ' +test_expect_success 'main: branch --no-merged' ' git branch --no-merged >actual && { @@ -147,22 +151,22 @@ test_expect_success 'master: branch --no-merged' ' test_expect_success 'branch --no-merged with pattern implies --list' ' - git branch --no-merged=master master >actual && + git branch --no-merged=main main >actual && test_must_be_empty actual ' test_expect_success 'implicit --list conflicts with modification options' ' - test_must_fail git branch --contains=master -d && - test_must_fail git branch --contains=master -m foo && - test_must_fail git branch --no-contains=master -d && - test_must_fail git branch --no-contains=master -m foo + test_must_fail git branch --contains=main -d && + test_must_fail git branch --contains=main -m foo && + test_must_fail git branch --no-contains=main -d && + test_must_fail git branch --no-contains=main -m foo ' test_expect_success 'Assert that --contains only works on commits, not trees & blobs' ' - test_must_fail git branch --contains master^{tree} && + test_must_fail git branch --contains main^{tree} && blob=$(git hash-object -w --stdin <<-\EOF Some blob EOF @@ -171,44 +175,96 @@ test_expect_success 'Assert that --contains only works on commits, not trees & b test_must_fail git branch --no-contains $blob ' +test_expect_success 'multiple branch --contains' ' + git checkout -b side2 main && + >feature && + git add feature && + git commit -m "add feature" && + git checkout -b next main && + git merge side && + git branch --contains side --contains side2 >actual && + cat >expect <<-\EOF && + * next + side + side2 + EOF + test_cmp expect actual +' + +test_expect_success 'multiple branch --merged' ' + git branch --merged next --merged main >actual && + cat >expect <<-\EOF && + main + * next + side + EOF + test_cmp expect actual +' + +test_expect_success 'multiple branch --no-contains' ' + git branch --no-contains side --no-contains side2 >actual && + cat >expect <<-\EOF && + main + EOF + test_cmp expect actual +' + +test_expect_success 'multiple branch --no-merged' ' + git branch --no-merged next --no-merged main >actual && + cat >expect <<-\EOF && + side2 + EOF + test_cmp expect actual +' + +test_expect_success 'branch --contains combined with --no-contains' ' + git checkout -b seen main && + git merge side && + git merge side2 && + git branch --contains side --no-contains side2 >actual && + cat >expect <<-\EOF && + next + side + EOF + test_cmp expect actual +' + +test_expect_success 'branch --merged combined with --no-merged' ' + git branch --merged seen --no-merged next >actual && + cat >expect <<-\EOF && + * seen + side2 + EOF + test_cmp expect actual +' + # We want to set up a case where the walk for the tracking info # of one branch crosses the tip of another branch (and make sure # that the latter walk does not mess up our flag to see if it was # merged). # -# Here "topic" tracks "master" with one extra commit, and "zzz" points to the -# same tip as master The name "zzz" must come alphabetically after "topic" +# Here "topic" tracks "main" with one extra commit, and "zzz" points to the +# same tip as main The name "zzz" must come alphabetically after "topic" # as we process them in that order. test_expect_success 'branch --merged with --verbose' ' - git branch --track topic master && + git branch --track topic main && git branch zzz topic && git checkout topic && test_commit foo && git branch --merged topic >actual && cat >expect <<-\EOF && - master + main * topic zzz EOF test_cmp expect actual && git branch --verbose --merged topic >actual && cat >expect <<-EOF && - master $(git rev-parse --short master) second on master - * topic $(git rev-parse --short topic ) [ahead 1] foo - zzz $(git rev-parse --short zzz ) second on master - EOF - test_i18ncmp expect actual -' - -test_expect_success 'branch --contains combined with --no-contains' ' - git branch --contains zzz --no-contains topic >actual && - cat >expect <<-\EOF && - master - side - zzz + main $(git rev-parse --short main) second on main + * topic $(git rev-parse --short topic ) [ahead 1] foo + zzz $(git rev-parse --short zzz ) second on main EOF test_cmp expect actual - ' test_done |