#!/bin/sh # # Copyright (c) 2005 Junio C Hamano # test_description='Merge base computation. ' . ./test-lib.sh T=$(git-write-tree) M=1130000000 Z=+0000 export GIT_COMMITTER_EMAIL=git@comm.iter.xz export GIT_COMMITTER_NAME='C O Mmiter' export GIT_AUTHOR_NAME='A U Thor' export GIT_AUTHOR_EMAIL=git@au.thor.xz doit() { OFFSET=$1; shift NAME=$1; shift PARENTS= for P do PARENTS="${PARENTS}-p $P " done GIT_COMMITTER_DATE="$(($M + $OFFSET)) $Z" GIT_AUTHOR_DATE=$GIT_COMMITTER_DATE export GIT_COMMITTER_DATE GIT_AUTHOR_DATE commit=$(echo $NAME | git-commit-tree $T $PARENTS) echo $commit >.git/refs/tags/$NAME echo $commit } # Setup... E=$(doit 5 E) D=$(doit 4 D $E) F=$(doit 6 F $E) C=$(doit 3 C $D) B=$(doit 2 B $C) A=$(doit 1 A $B) G=$(doit 7 G $B $E) H=$(doit 8 H $A $F) test_expect_success 'compute merge-base (single)' \ 'MB=$(git-merge-base G H) && expr "$(git-name-rev "$MB")" : "[0-9a-f]* tags/B"' test_expect_success 'compute merge-base (all)' \ 'MB=$(git-merge-base --all G H) && expr "$(git-name-rev "$MB")" : "[0-9a-f]* tags/B"' test_expect_success 'compute merge-base with show-branch' \ 'MB=$(git-show-branch --merge-base G H) && expr "$(git-name-rev "$MB")" : "[0-9a-f]* tags/B"' test_done