The current git bisect breakage happens when skipping in the middle of bisect session which is started with --term-new and --term-old arguments. This test expect that HEAD changes after skipping, in other words HEAD before and after skipping must be different. Signed-off-by: Bagas Sanjaya <bagasdotme@xxxxxxxxx> --- NOTE: this patch is not intended for integrating into git.git, but rather this patch is written to demonstrate this breakage. I hope that the test can be added to t6030-bisect-porcelain.sh, and make this patch redundant. t/t6031-bisect-skip.sh | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100755 t/t6031-bisect-skip.sh diff --git a/t/t6031-bisect-skip.sh b/t/t6031-bisect-skip.sh new file mode 100755 index 0000000000..0dfc6f0928 --- /dev/null +++ b/t/t6031-bisect-skip.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +# +# Copyright (c) 2021 Bagas Sanjaya +# + +test_description='Tests git bisect --skip' + +exec </dev/null + +GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main +export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME + +. ./test-lib.sh + +# hash variables +HASH_SKIPPED_FROM= +HASH_SKIPPED_TO= + +# initialize testing repo +init() { + for i in `seq 1 20`; do + echo $i >> test && + git add test && git commit -m $i + done +} + +init + +test_expect_success 'test moving HEAD when skip bisecting' ' + git bisect start --term-new=ok --term-old=whoops HEAD HEAD~9 && + HASH_SKIPPED_FROM=$(git rev-parse --verify HEAD) && + git bisect skip && + HASH_SKIPPED_TO=$(git rev-parse --verify HEAD) && + test $HASH_SKIPPED_FROM != $HASH_SKIPPED_TO +' -- 2.25.1