diff options
Diffstat (limited to 'third_party/git/t/t7601-merge-pull-config.sh')
-rwxr-xr-x | third_party/git/t/t7601-merge-pull-config.sh | 242 |
1 files changed, 0 insertions, 242 deletions
diff --git a/third_party/git/t/t7601-merge-pull-config.sh b/third_party/git/t/t7601-merge-pull-config.sh deleted file mode 100755 index c5c4ea5fc09e..000000000000 --- a/third_party/git/t/t7601-merge-pull-config.sh +++ /dev/null @@ -1,242 +0,0 @@ -#!/bin/sh - -test_description='git merge - -Testing pull.* configuration parsing.' - -. ./test-lib.sh - -test_expect_success 'setup' ' - echo c0 >c0.c && - git add c0.c && - git commit -m c0 && - git tag c0 && - echo c1 >c1.c && - git add c1.c && - git commit -m c1 && - git tag c1 && - git reset --hard c0 && - echo c2 >c2.c && - git add c2.c && - git commit -m c2 && - git tag c2 && - git reset --hard c0 && - echo c3 >c3.c && - git add c3.c && - git commit -m c3 && - git tag c3 -' - -test_expect_success 'pull.rebase not set' ' - git reset --hard c0 && - git pull . c1 2>err && - test_i18ngrep "Pulling without specifying how to reconcile" err -' - -test_expect_success 'pull.rebase not set and pull.ff=true' ' - git reset --hard c0 && - test_config pull.ff true && - git pull . c1 2>err && - test_i18ngrep ! "Pulling without specifying how to reconcile" err -' - -test_expect_success 'pull.rebase not set and pull.ff=false' ' - git reset --hard c0 && - test_config pull.ff false && - git pull . c1 2>err && - test_i18ngrep ! "Pulling without specifying how to reconcile" err -' - -test_expect_success 'pull.rebase not set and pull.ff=only' ' - git reset --hard c0 && - test_config pull.ff only && - git pull . c1 2>err && - test_i18ngrep ! "Pulling without specifying how to reconcile" err -' - -test_expect_success 'pull.rebase not set and --rebase given' ' - git reset --hard c0 && - git pull --rebase . c1 2>err && - test_i18ngrep ! "Pulling without specifying how to reconcile" err -' - -test_expect_success 'pull.rebase not set and --no-rebase given' ' - git reset --hard c0 && - git pull --no-rebase . c1 2>err && - test_i18ngrep ! "Pulling without specifying how to reconcile" err -' - -test_expect_success 'pull.rebase not set and --ff given' ' - git reset --hard c0 && - git pull --ff . c1 2>err && - test_i18ngrep ! "Pulling without specifying how to reconcile" err -' - -test_expect_success 'pull.rebase not set and --no-ff given' ' - git reset --hard c0 && - git pull --no-ff . c1 2>err && - test_i18ngrep ! "Pulling without specifying how to reconcile" err -' - -test_expect_success 'pull.rebase not set and --ff-only given' ' - git reset --hard c0 && - git pull --ff-only . c1 2>err && - test_i18ngrep ! "Pulling without specifying how to reconcile" err -' - -test_expect_success 'merge c1 with c2' ' - git reset --hard c1 && - test -f c0.c && - test -f c1.c && - test ! -f c2.c && - test ! -f c3.c && - git merge c2 && - test -f c1.c && - test -f c2.c -' - -test_expect_success 'fast-forward pull succeeds with "true" in pull.ff' ' - git reset --hard c0 && - test_config pull.ff true && - git pull . c1 && - test "$(git rev-parse HEAD)" = "$(git rev-parse c1)" -' - -test_expect_success 'pull.ff=true overrides merge.ff=false' ' - git reset --hard c0 && - test_config merge.ff false && - test_config pull.ff true && - git pull . c1 && - test "$(git rev-parse HEAD)" = "$(git rev-parse c1)" -' - -test_expect_success 'fast-forward pull creates merge with "false" in pull.ff' ' - git reset --hard c0 && - test_config pull.ff false && - git pull . c1 && - test "$(git rev-parse HEAD^1)" = "$(git rev-parse c0)" && - test "$(git rev-parse HEAD^2)" = "$(git rev-parse c1)" -' - -test_expect_success 'pull prevents non-fast-forward with "only" in pull.ff' ' - git reset --hard c1 && - test_config pull.ff only && - test_must_fail git pull . c3 -' - -test_expect_success 'merge c1 with c2 (ours in pull.twohead)' ' - git reset --hard c1 && - git config pull.twohead ours && - git merge c2 && - test -f c1.c && - ! test -f c2.c -' - -test_expect_success 'merge c1 with c2 and c3 (recursive in pull.octopus)' ' - git reset --hard c1 && - git config pull.octopus "recursive" && - test_must_fail git merge c2 c3 && - test "$(git rev-parse c1)" = "$(git rev-parse HEAD)" -' - -test_expect_success 'merge c1 with c2 and c3 (recursive and octopus in pull.octopus)' ' - git reset --hard c1 && - git config pull.octopus "recursive octopus" && - git merge c2 c3 && - test "$(git rev-parse c1)" != "$(git rev-parse HEAD)" && - test "$(git rev-parse c1)" = "$(git rev-parse HEAD^1)" && - test "$(git rev-parse c2)" = "$(git rev-parse HEAD^2)" && - test "$(git rev-parse c3)" = "$(git rev-parse HEAD^3)" && - git diff --exit-code && - test -f c0.c && - test -f c1.c && - test -f c2.c && - test -f c3.c -' - -conflict_count() -{ - { - git diff-files --name-only - git ls-files --unmerged - } | wc -l -} - -# c4 - c5 -# \ c6 -# -# There are two conflicts here: -# -# 1) Because foo.c is renamed to bar.c, recursive will handle this, -# resolve won't. -# -# 2) One in conflict.c and that will always fail. - -test_expect_success 'setup conflicted merge' ' - git reset --hard c0 && - echo A >conflict.c && - git add conflict.c && - echo contents >foo.c && - git add foo.c && - git commit -m c4 && - git tag c4 && - echo B >conflict.c && - git add conflict.c && - git mv foo.c bar.c && - git commit -m c5 && - git tag c5 && - git reset --hard c4 && - echo C >conflict.c && - git add conflict.c && - echo secondline >> foo.c && - git add foo.c && - git commit -m c6 && - git tag c6 -' - -# First do the merge with resolve and recursive then verify that -# recursive is chosen. - -test_expect_success 'merge picks up the best result' ' - git config --unset-all pull.twohead && - git reset --hard c5 && - test_must_fail git merge -s resolve c6 && - resolve_count=$(conflict_count) && - git reset --hard c5 && - test_must_fail git merge -s recursive c6 && - recursive_count=$(conflict_count) && - git reset --hard c5 && - test_must_fail git merge -s recursive -s resolve c6 && - auto_count=$(conflict_count) && - test $auto_count = $recursive_count && - test $auto_count != $resolve_count -' - -test_expect_success 'merge picks up the best result (from config)' ' - git config pull.twohead "recursive resolve" && - git reset --hard c5 && - test_must_fail git merge -s resolve c6 && - resolve_count=$(conflict_count) && - git reset --hard c5 && - test_must_fail git merge -s recursive c6 && - recursive_count=$(conflict_count) && - git reset --hard c5 && - test_must_fail git merge c6 && - auto_count=$(conflict_count) && - test $auto_count = $recursive_count && - test $auto_count != $resolve_count -' - -test_expect_success 'merge errors out on invalid strategy' ' - git config pull.twohead "foobar" && - git reset --hard c5 && - test_must_fail git merge c6 -' - -test_expect_success 'merge errors out on invalid strategy' ' - git config --unset-all pull.twohead && - git reset --hard c5 && - test_must_fail git merge -s "resolve recursive" c6 -' - -test_done |