Test that the bisect command updates the work tree as expected. To make
that work with the new submodule test framework a git_bisect helper
function is added. This adds a commit after the one given to be switched
to and makes that one the bad commit. The starting point is then given to
bisect as the good commit which makes bisect change the work tree to the
commit in between, which is the commit given.

Signed-off-by: Jens Lehmann <jens.lehm...@web.de>
---


Changes to v1:

*) use "expect" instead of "expected"


 t/t6041-bisect-submodule.sh | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)
 create mode 100755 t/t6041-bisect-submodule.sh

diff --git a/t/t6041-bisect-submodule.sh b/t/t6041-bisect-submodule.sh
new file mode 100755
index 0000000..c6b7aa6
--- /dev/null
+++ b/t/t6041-bisect-submodule.sh
@@ -0,0 +1,32 @@
+#!/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 czf "$TRASH_DIRECTORY/tmp.tgz" * &&
+       GOOD=$(git rev-parse --verify HEAD) &&
+       git checkout "$1" &&
+       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 xzf "$TRASH_DIRECTORY/tmp.tgz" &&
+       git status -su >actual &&
+       ls -1pR * >>actual &&
+       test_cmp expect actual &&
+       git bisect bad $BAD
+}
+
+test_submodule_switch "git_bisect"
+
+test_done
-- 
2.0.0.406.gf4dce28


--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to