OPTIONS_SPEC=
. git-sh-setup
. git-sh-i18n
-require_work_tree
_x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
orig_args=$(git rev-parse --sq-quote "$@")
bad_seen=0
eval=''
- mode=''
+ if test "z$(git rev-parse --is-bare-repository)" != zfalse
+ then
+ mode=--no-checkout
+ else
+ mode=''
+ fi
while [ $# -gt 0 ]; do
arg="$1"
case "$arg" in
die "$(eval_gettext "unrecognised option: '\$arg'")" ;;
*)
rev=$(git rev-parse -q --verify "$arg^{commit}") || {
- test $has_double_dash -eq 1 &&
- die "$(eval_gettext "'\$arg' does not appear to be a valid revision")"
- break
+ test $has_double_dash -eq 1 &&
+ die "$(eval_gettext "'\$arg' does not appear to be a valid revision")"
+ break
}
case $bad_seen in
0) state='bad' ; bad_seen=1 ;;
start_head=$(cat "$GIT_DIR/BISECT_START")
if test "z$mode" != "z--no-checkout"
then
- git checkout "$start_head" --
+ git checkout "$start_head" --
fi
else
# Get rev from where we start.
if test $# = 0
then
if test -n "${DISPLAY+set}${SESSIONNAME+set}${MSYSTEM+set}${SECURITYSESSIONID+set}" &&
- type gitk >/dev/null 2>&1
+ type gitk >/dev/null 2>&1
then
set gitk
else
*)
usage ;;
esac
- if ! test -f "$GIT_DIR/BISECT_HEAD"
+
+ if ! test -f "$GIT_DIR/BISECT_HEAD" && ! git checkout "$branch" --
then
- if ! git checkout "$branch" --
- then
- die "$(eval_gettext "Could not check out original HEAD '\$branch'.
+ die "$(eval_gettext "Could not check out original HEAD '\$branch'.
Try 'git bisect reset <commit>'.")"
- fi
fi
bisect_clean_state
}