diff options
Diffstat (limited to 'third_party/git/t/t3421-rebase-topology-linear.sh')
-rwxr-xr-x | third_party/git/t/t3421-rebase-topology-linear.sh | 378 |
1 files changed, 0 insertions, 378 deletions
diff --git a/third_party/git/t/t3421-rebase-topology-linear.sh b/third_party/git/t/t3421-rebase-topology-linear.sh deleted file mode 100755 index 4a9204b4b649..000000000000 --- a/third_party/git/t/t3421-rebase-topology-linear.sh +++ /dev/null @@ -1,378 +0,0 @@ -#!/bin/sh - -test_description='basic rebase topology tests' -. ./test-lib.sh -. "$TEST_DIRECTORY"/lib-rebase.sh - -# a---b---c -# \ -# d---e -test_expect_success 'setup' ' - test_commit a && - test_commit b && - test_commit c && - git checkout b && - test_commit d && - test_commit e -' - -test_run_rebase () { - result=$1 - shift - test_expect_$result "simple rebase $*" " - reset_rebase && - git rebase $* c e && - test_cmp_rev c HEAD~2 && - test_linear_range 'd e' c.. - " -} -test_run_rebase success --apply -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase success -p - -test_expect_success 'setup branches and remote tracking' ' - git tag -l >tags && - for tag in $(cat tags) - do - git branch branch-$tag $tag || return 1 - done && - git remote add origin "file://$PWD" && - git fetch origin -' - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* is no-op if upstream is an ancestor" " - reset_rebase && - git rebase $* b e && - test_cmp_rev e HEAD - " -} -test_run_rebase success --apply -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase success -p - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* -f rewrites even if upstream is an ancestor" " - reset_rebase && - git rebase $* -f b e && - test_cmp_rev ! e HEAD && - test_cmp_rev b HEAD~2 && - test_linear_range 'd e' b.. - " -} -test_run_rebase success --apply -test_run_rebase success --fork-point -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase failure -p - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* -f rewrites even if remote upstream is an ancestor" " - reset_rebase && - git rebase $* -f branch-b branch-e && - test_cmp_rev ! branch-e origin/branch-e && - test_cmp_rev branch-b HEAD~2 && - test_linear_range 'd e' branch-b.. - " -} -test_run_rebase success --apply -test_run_rebase success --fork-point -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase success -p - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* fast-forwards from ancestor of upstream" " - reset_rebase && - git rebase $* e b && - test_cmp_rev e HEAD - " -} -test_run_rebase success --apply -test_run_rebase success --fork-point -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase success -p - -# f -# / -# a---b---c---g---h -# \ -# d---gp--i -# -# gp = cherry-picked g -# h = reverted g -# -# Reverted patches are there for tests to be able to check if a commit -# that introduced the same change as another commit is -# dropped. Without reverted commits, we could get false positives -# because applying the patch succeeds, but simply results in no -# changes. -test_expect_success 'setup of linear history for range selection tests' ' - git checkout c && - test_commit g && - revert h g && - git checkout d && - cherry_pick gp g && - test_commit i && - git checkout b && - test_commit f -' - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* drops patches in upstream" " - reset_rebase && - git rebase $* h i && - test_cmp_rev h HEAD~2 && - test_linear_range 'd i' h.. - " -} -test_run_rebase success --apply -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase success -p - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* can drop last patch if in upstream" " - reset_rebase && - git rebase $* h gp && - test_cmp_rev h HEAD^ && - test_linear_range 'd' h.. - " -} -test_run_rebase success --apply -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase success -p - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* --onto drops patches in upstream" " - reset_rebase && - git rebase $* --onto f h i && - test_cmp_rev f HEAD~2 && - test_linear_range 'd i' f.. - " -} -test_run_rebase success --apply -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase success -p - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* --onto does not drop patches in onto" " - reset_rebase && - git rebase $* --onto h f i && - test_cmp_rev h HEAD~3 && - test_linear_range 'd gp i' h.. - " -} -test_run_rebase success --apply -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase success -p - -# a---b---c---j! -# \ -# d---k!--l -# -# ! = empty -test_expect_success 'setup of linear history for empty commit tests' ' - git checkout c && - make_empty j && - git checkout d && - make_empty k && - test_commit l -' - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* keeps begin-empty commits" " - reset_rebase && - git rebase $* j l && - test_cmp_rev c HEAD~4 && - test_linear_range 'j d k l' c.. - " -} -test_run_rebase failure --apply -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase failure -p - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* --no-keep-empty drops begin-empty commits" " - reset_rebase && - git rebase $* --no-keep-empty c l && - test_cmp_rev c HEAD~2 && - test_linear_range 'd l' c.. - " -} -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase success -p - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* --keep-empty keeps empty even if already in upstream" " - reset_rebase && - git rebase $* --keep-empty j l && - test_cmp_rev j HEAD~3 && - test_linear_range 'd k l' j.. - " -} -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase success -p -test_run_rebase success --rebase-merges - -# m -# / -# a---b---c---g -# -# x---y---bp -# -# bp = cherry-picked b -# m = reverted b -# -# Reverted patches are there for tests to be able to check if a commit -# that introduced the same change as another commit is -# dropped. Without reverted commits, we could get false positives -# because applying the patch succeeds, but simply results in no -# changes. -test_expect_success 'setup of linear history for test involving root' ' - git checkout b && - revert m b && - git checkout --orphan disjoint && - git rm -rf . && - test_commit x && - test_commit y && - cherry_pick bp b -' - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* --onto --root" " - reset_rebase && - git rebase $* --onto c --root y && - test_cmp_rev c HEAD~2 && - test_linear_range 'x y' c.. - " -} -test_run_rebase success --apply -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase success -p - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* without --onto --root with disjoint history" " - reset_rebase && - git rebase $* c y && - test_cmp_rev c HEAD~2 && - test_linear_range 'x y' c.. - " -} -test_run_rebase success --apply -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase failure -p - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* --onto --root drops patch in onto" " - reset_rebase && - git rebase $* --onto m --root bp && - test_cmp_rev m HEAD~2 && - test_linear_range 'x y' m.. - " -} -test_run_rebase success --apply -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase success -p - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* --onto --root with merge-base does not go to root" " - reset_rebase && - git rebase $* --onto m --root g && - test_cmp_rev m HEAD~2 && - test_linear_range 'c g' m.. - " -} - -test_run_rebase success --apply -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase failure -p - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* without --onto --root with disjoint history drops patch in onto" " - reset_rebase && - git rebase $* m bp && - test_cmp_rev m HEAD~2 && - test_linear_range 'x y' m.. - " -} -test_run_rebase success --apply -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase failure -p - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* --root on linear history is a no-op" " - reset_rebase && - git rebase $* --root c && - test_cmp_rev c HEAD - " -} -test_run_rebase success '' -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase failure -p - -test_run_rebase () { - result=$1 - shift - test_expect_$result "rebase $* -f --root on linear history causes re-write" " - reset_rebase && - git rebase $* -f --root c && - test_cmp_rev ! a HEAD~2 && - test_linear_range 'a b c' HEAD - " -} -test_run_rebase success '' -test_run_rebase success -m -test_run_rebase success -i -test_have_prereq !REBASE_P || test_run_rebase success -p - -test_done |