37 lines
782 B
37 lines
782 B
#!/bin/sh |
|
|
|
test_description='bisect can handle submodules' |
|
|
|
. ./test-lib.sh |
|
. "$TEST_DIRECTORY"/lib-submodule-update.sh |
|
|
|
git_bisect () { |
|
git status -su >expect && |
|
ls -1pR * >>expect && |
|
"$TAR" cf "$TRASH_DIRECTORY/tmp.tar" * && |
|
GOOD=$(git rev-parse --verify HEAD) && |
|
may_only_be_test_must_fail "$2" && |
|
$2 git checkout "$1" && |
|
if test -n "$2" |
|
then |
|
return |
|
fi && |
|
echo "foo" >bar && |
|
git add bar && |
|
git commit -m "bisect bad" && |
|
BAD=$(git rev-parse --verify HEAD) && |
|
git reset --hard HEAD^^ && |
|
git submodule update && |
|
git bisect start && |
|
git bisect good $GOOD && |
|
rm -rf * && |
|
"$TAR" xf "$TRASH_DIRECTORY/tmp.tar" && |
|
git status -su >actual && |
|
ls -1pR * >>actual && |
|
test_cmp expect actual && |
|
git bisect bad $BAD |
|
} |
|
|
|
test_submodule_switch_func "git_bisect" |
|
|
|
test_done
|
|
|