merge-base-many: add trivial tests based on the documentation

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano 2008-07-29 23:51:41 -07:00
parent 99f1c04be0
commit a7a6692177

View File

@ -108,4 +108,52 @@ test_expect_success 'compute merge-base (all)' \
'MB=$(git merge-base --all PL PR) && 'MB=$(git merge-base --all PL PR) &&
expr "$(git name-rev "$MB")" : "[0-9a-f]* tags/C2"' expr "$(git name-rev "$MB")" : "[0-9a-f]* tags/C2"'
# Another set to demonstrate base between one commit and a merge
# in the documentation.
test_expect_success 'merge-base for octopus-step (setup)' '
test_tick && git commit --allow-empty -m root && git tag MMR &&
test_tick && git commit --allow-empty -m 1 && git tag MM1 &&
test_tick && git commit --allow-empty -m o &&
test_tick && git commit --allow-empty -m o &&
test_tick && git commit --allow-empty -m o &&
test_tick && git commit --allow-empty -m A && git tag MMA &&
git checkout MM1 &&
test_tick && git commit --allow-empty -m o &&
test_tick && git commit --allow-empty -m o &&
test_tick && git commit --allow-empty -m o &&
test_tick && git commit --allow-empty -m B && git tag MMB &&
git checkout MMR &&
test_tick && git commit --allow-empty -m o &&
test_tick && git commit --allow-empty -m o &&
test_tick && git commit --allow-empty -m o &&
test_tick && git commit --allow-empty -m o &&
test_tick && git commit --allow-empty -m C && git tag MMC
'
test_expect_success 'merge-base A B C' '
MB=$(git merge-base --all MMA MMB MMC) &&
MM1=$(git rev-parse --verify MM1) &&
test "$MM1" = "$MB"
'
test_expect_success 'criss-cross merge-base for octopus-step (setup)' '
git reset --hard MMR &&
test_tick && git commit --allow-empty -m 1 && git tag CC1 &&
git reset --hard E &&
test_tick && git commit --allow-empty -m 2 && git tag CC2 &&
test_tick && git merge -s ours CC1 &&
test_tick && git commit --allow-empty -m o &&
test_tick && git commit --allow-empty -m B && git tag CCB &&
git reset --hard CC1 &&
test_tick && git merge -s ours CC2 &&
test_tick && git commit --allow-empty -m A && git tag CCA
'
test_expect_success 'merge-base B A^^ A^^2' '
MB0=$(git merge-base --all CCB CCA^^ CCA^^2 | sort) &&
MB1=$(git rev-parse CC1 CC2 | sort) &&
test "$MB0" = "$MB1"
'
test_done test_done