You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.5 KiB
73 lines
1.5 KiB
#!/bin/sh |
|
|
|
test_description='--ancestry-path' |
|
|
|
# D---E-------F |
|
# / \ \ |
|
# B---C---G---H---I---J |
|
# / \ |
|
# A-------K---------------L--M |
|
# |
|
# D..M == E F G H I J K L M |
|
# --ancestry-path D..M == E F H I J L M |
|
# |
|
# D..M -- M.t == M |
|
# --ancestry-path D..M -- M.t == M |
|
|
|
. ./test-lib.sh |
|
|
|
test_merge () { |
|
test_tick && |
|
git merge -s ours -m "$2" "$1" && |
|
git tag "$2" |
|
} |
|
|
|
test_expect_success setup ' |
|
test_commit A && |
|
test_commit B && |
|
test_commit C && |
|
test_commit D && |
|
test_commit E && |
|
test_commit F && |
|
git reset --hard C && |
|
test_commit G && |
|
test_merge E H && |
|
test_commit I && |
|
test_merge F J && |
|
git reset --hard A && |
|
test_commit K && |
|
test_merge J L && |
|
test_commit M |
|
' |
|
|
|
test_expect_success 'rev-list D..M' ' |
|
for c in E F G H I J K L M; do echo $c; done >expect && |
|
git rev-list --format=%s D..M | |
|
sed -e "/^commit /d" | |
|
sort >actual && |
|
test_cmp expect actual |
|
' |
|
|
|
test_expect_success 'rev-list --ancestry-path D..M' ' |
|
for c in E F H I J L M; do echo $c; done >expect && |
|
git rev-list --ancestry-path --format=%s D..M | |
|
sed -e "/^commit /d" | |
|
sort >actual && |
|
test_cmp expect actual |
|
' |
|
|
|
test_expect_success 'rev-list D..M -- M.t' ' |
|
echo M >expect && |
|
git rev-list --format=%s D..M -- M.t | |
|
sed -e "/^commit /d" >actual && |
|
test_cmp expect actual |
|
' |
|
|
|
test_expect_success 'rev-list --ancestry-patch D..M -- M.t' ' |
|
echo M >expect && |
|
git rev-list --ancestry-path --format=%s D..M -- M.t | |
|
sed -e "/^commit /d" >actual && |
|
test_cmp expect actual |
|
' |
|
|
|
test_done
|
|
|