bisect: cleanup whitespace errors in git-bisect.sh.
All leading whitespace is now encoded with tabs. After this patch, the following is true: RAW=$(cat git-bisect.sh | md5sum) && ROUNDTRIP=$(cat git-bisect.sh | expand -i - | unexpand --first-only - | md5sum) && LEADING=$(sed -n "/^ */p" < git-bisect.sh | wc -l) && test $RAW = $ROUNDTRIP && test $LEADING = 0 && test -z "$(git diff -w HEAD~1 HEAD)" Signed-off-by: Jon Seymour <jon.seymour@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
88d78911ac
commit
6021be866f
254
git-bisect.sh
254
git-bisect.sh
|
@ -2,27 +2,27 @@
|
||||||
|
|
||||||
USAGE='[help|start|bad|good|skip|next|reset|visualize|replay|log|run]'
|
USAGE='[help|start|bad|good|skip|next|reset|visualize|replay|log|run]'
|
||||||
LONG_USAGE='git bisect help
|
LONG_USAGE='git bisect help
|
||||||
print this long help message.
|
print this long help message.
|
||||||
git bisect start [--no-checkout] [<bad> [<good>...]] [--] [<pathspec>...]
|
git bisect start [--no-checkout] [<bad> [<good>...]] [--] [<pathspec>...]
|
||||||
reset bisect state and start bisection.
|
reset bisect state and start bisection.
|
||||||
git bisect bad [<rev>]
|
git bisect bad [<rev>]
|
||||||
mark <rev> a known-bad revision.
|
mark <rev> a known-bad revision.
|
||||||
git bisect good [<rev>...]
|
git bisect good [<rev>...]
|
||||||
mark <rev>... known-good revisions.
|
mark <rev>... known-good revisions.
|
||||||
git bisect skip [(<rev>|<range>)...]
|
git bisect skip [(<rev>|<range>)...]
|
||||||
mark <rev>... untestable revisions.
|
mark <rev>... untestable revisions.
|
||||||
git bisect next
|
git bisect next
|
||||||
find next bisection to test and check it out.
|
find next bisection to test and check it out.
|
||||||
git bisect reset [<commit>]
|
git bisect reset [<commit>]
|
||||||
finish bisection search and go back to commit.
|
finish bisection search and go back to commit.
|
||||||
git bisect visualize
|
git bisect visualize
|
||||||
show bisect status in gitk.
|
show bisect status in gitk.
|
||||||
git bisect replay <logfile>
|
git bisect replay <logfile>
|
||||||
replay bisection log.
|
replay bisection log.
|
||||||
git bisect log
|
git bisect log
|
||||||
show bisect log.
|
show bisect log.
|
||||||
git bisect run <cmd>...
|
git bisect run <cmd>...
|
||||||
use <cmd>... to automatically bisect.
|
use <cmd>... to automatically bisect.
|
||||||
|
|
||||||
Please use "git help bisect" to get the full man page.'
|
Please use "git help bisect" to get the full man page.'
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ bisect_autostart() {
|
||||||
# TRANSLATORS: Make sure to include [Y] and [n] in your
|
# TRANSLATORS: Make sure to include [Y] and [n] in your
|
||||||
# translation. The program will only accept English input
|
# translation. The program will only accept English input
|
||||||
# at this point.
|
# at this point.
|
||||||
gettext "Do you want me to do it for you [Y/n]? " >&2
|
gettext "Do you want me to do it for you [Y/n]? " >&2
|
||||||
read yesno
|
read yesno
|
||||||
case "$yesno" in
|
case "$yesno" in
|
||||||
[Nn]*)
|
[Nn]*)
|
||||||
|
@ -74,38 +74,38 @@ bisect_start() {
|
||||||
#
|
#
|
||||||
has_double_dash=0
|
has_double_dash=0
|
||||||
for arg; do
|
for arg; do
|
||||||
case "$arg" in --) has_double_dash=1; break ;; esac
|
case "$arg" in --) has_double_dash=1; break ;; esac
|
||||||
done
|
done
|
||||||
orig_args=$(git rev-parse --sq-quote "$@")
|
orig_args=$(git rev-parse --sq-quote "$@")
|
||||||
bad_seen=0
|
bad_seen=0
|
||||||
eval=''
|
eval=''
|
||||||
mode=''
|
mode=''
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
arg="$1"
|
arg="$1"
|
||||||
case "$arg" in
|
case "$arg" in
|
||||||
--)
|
--)
|
||||||
shift
|
shift
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
--no-checkout)
|
--no-checkout)
|
||||||
mode=--no-checkout
|
mode=--no-checkout
|
||||||
shift ;;
|
shift ;;
|
||||||
--*)
|
--*)
|
||||||
die "$(eval_gettext "unrecognised option: '\$arg'")" ;;
|
die "$(eval_gettext "unrecognised option: '\$arg'")" ;;
|
||||||
*)
|
*)
|
||||||
rev=$(git rev-parse -q --verify "$arg^{commit}") || {
|
rev=$(git rev-parse -q --verify "$arg^{commit}") || {
|
||||||
test $has_double_dash -eq 1 &&
|
test $has_double_dash -eq 1 &&
|
||||||
die "$(eval_gettext "'\$arg' does not appear to be a valid revision")"
|
die "$(eval_gettext "'\$arg' does not appear to be a valid revision")"
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
case $bad_seen in
|
case $bad_seen in
|
||||||
0) state='bad' ; bad_seen=1 ;;
|
0) state='bad' ; bad_seen=1 ;;
|
||||||
*) state='good' ;;
|
*) state='good' ;;
|
||||||
|
esac
|
||||||
|
eval="$eval bisect_write '$state' '$rev' 'nolog' &&"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
eval="$eval bisect_write '$state' '$rev' 'nolog' &&"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
done
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -207,18 +207,18 @@ check_expected_revs() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bisect_skip() {
|
bisect_skip() {
|
||||||
all=''
|
all=''
|
||||||
for arg in "$@"
|
for arg in "$@"
|
||||||
do
|
do
|
||||||
case "$arg" in
|
case "$arg" in
|
||||||
*..*)
|
*..*)
|
||||||
revs=$(git rev-list "$arg") || die "$(eval_gettext "Bad rev input: \$arg")" ;;
|
revs=$(git rev-list "$arg") || die "$(eval_gettext "Bad rev input: \$arg")" ;;
|
||||||
*)
|
*)
|
||||||
revs=$(git rev-parse --sq-quote "$arg") ;;
|
revs=$(git rev-parse --sq-quote "$arg") ;;
|
||||||
esac
|
esac
|
||||||
all="$all $revs"
|
all="$all $revs"
|
||||||
done
|
done
|
||||||
eval bisect_state 'skip' $all
|
eval bisect_state 'skip' $all
|
||||||
}
|
}
|
||||||
|
|
||||||
bisect_state() {
|
bisect_state() {
|
||||||
|
@ -316,7 +316,7 @@ bisect_next() {
|
||||||
git bisect--helper --next-all $(test -f "$GIT_DIR/BISECT_HEAD" && echo --no-checkout)
|
git bisect--helper --next-all $(test -f "$GIT_DIR/BISECT_HEAD" && echo --no-checkout)
|
||||||
res=$?
|
res=$?
|
||||||
|
|
||||||
# Check if we should exit because bisection is finished
|
# Check if we should exit because bisection is finished
|
||||||
test $res -eq 10 && exit 0
|
test $res -eq 10 && exit 0
|
||||||
|
|
||||||
# Check for an error in the bisection process
|
# Check for an error in the bisection process
|
||||||
|
@ -355,12 +355,12 @@ bisect_reset() {
|
||||||
case "$#" in
|
case "$#" in
|
||||||
0) branch=$(cat "$GIT_DIR/BISECT_START") ;;
|
0) branch=$(cat "$GIT_DIR/BISECT_START") ;;
|
||||||
1) git rev-parse --quiet --verify "$1^{commit}" > /dev/null || {
|
1) git rev-parse --quiet --verify "$1^{commit}" > /dev/null || {
|
||||||
invalid="$1"
|
invalid="$1"
|
||||||
die "$(eval_gettext "'\$invalid' is not a valid commit")"
|
die "$(eval_gettext "'\$invalid' is not a valid commit")"
|
||||||
}
|
}
|
||||||
branch="$1" ;;
|
branch="$1" ;;
|
||||||
*)
|
*)
|
||||||
usage ;;
|
usage ;;
|
||||||
esac
|
esac
|
||||||
if ! test -f "$GIT_DIR/BISECT_HEAD"
|
if ! test -f "$GIT_DIR/BISECT_HEAD"
|
||||||
then
|
then
|
||||||
|
@ -418,65 +418,65 @@ bisect_replay () {
|
||||||
}
|
}
|
||||||
|
|
||||||
bisect_run () {
|
bisect_run () {
|
||||||
bisect_next_check fail
|
bisect_next_check fail
|
||||||
|
|
||||||
while true
|
while true
|
||||||
do
|
do
|
||||||
command="$@"
|
command="$@"
|
||||||
eval_gettext "running \$command"; echo
|
eval_gettext "running \$command"; echo
|
||||||
"$@"
|
"$@"
|
||||||
res=$?
|
res=$?
|
||||||
|
|
||||||
# Check for really bad run error.
|
# Check for really bad run error.
|
||||||
if [ $res -lt 0 -o $res -ge 128 ]; then
|
if [ $res -lt 0 -o $res -ge 128 ]; then
|
||||||
(
|
(
|
||||||
eval_gettext "bisect run failed:
|
eval_gettext "bisect run failed:
|
||||||
exit code \$res from '\$command' is < 0 or >= 128" &&
|
exit code \$res from '\$command' is < 0 or >= 128" &&
|
||||||
echo
|
echo
|
||||||
) >&2
|
) >&2
|
||||||
exit $res
|
exit $res
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Find current state depending on run success or failure.
|
# Find current state depending on run success or failure.
|
||||||
# A special exit code of 125 means cannot test.
|
# A special exit code of 125 means cannot test.
|
||||||
if [ $res -eq 125 ]; then
|
if [ $res -eq 125 ]; then
|
||||||
state='skip'
|
state='skip'
|
||||||
elif [ $res -gt 0 ]; then
|
elif [ $res -gt 0 ]; then
|
||||||
state='bad'
|
state='bad'
|
||||||
else
|
else
|
||||||
state='good'
|
state='good'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# We have to use a subshell because "bisect_state" can exit.
|
# We have to use a subshell because "bisect_state" can exit.
|
||||||
( bisect_state $state > "$GIT_DIR/BISECT_RUN" )
|
( bisect_state $state > "$GIT_DIR/BISECT_RUN" )
|
||||||
res=$?
|
res=$?
|
||||||
|
|
||||||
cat "$GIT_DIR/BISECT_RUN"
|
cat "$GIT_DIR/BISECT_RUN"
|
||||||
|
|
||||||
if sane_grep "first bad commit could be any of" "$GIT_DIR/BISECT_RUN" \
|
if sane_grep "first bad commit could be any of" "$GIT_DIR/BISECT_RUN" \
|
||||||
> /dev/null; then
|
> /dev/null; then
|
||||||
(
|
(
|
||||||
gettext "bisect run cannot continue any more" &&
|
gettext "bisect run cannot continue any more" &&
|
||||||
echo
|
echo
|
||||||
) >&2
|
) >&2
|
||||||
exit $res
|
exit $res
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $res -ne 0 ]; then
|
if [ $res -ne 0 ]; then
|
||||||
(
|
(
|
||||||
eval_gettext "bisect run failed:
|
eval_gettext "bisect run failed:
|
||||||
'bisect_state \$state' exited with error code \$res" &&
|
'bisect_state \$state' exited with error code \$res" &&
|
||||||
echo
|
echo
|
||||||
) >&2
|
) >&2
|
||||||
exit $res
|
exit $res
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if sane_grep "is the first bad commit" "$GIT_DIR/BISECT_RUN" > /dev/null; then
|
if sane_grep "is the first bad commit" "$GIT_DIR/BISECT_RUN" > /dev/null; then
|
||||||
gettext "bisect run success"; echo
|
gettext "bisect run success"; echo
|
||||||
exit 0;
|
exit 0;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
bisect_log () {
|
bisect_log () {
|
||||||
|
@ -486,33 +486,33 @@ bisect_log () {
|
||||||
|
|
||||||
case "$#" in
|
case "$#" in
|
||||||
0)
|
0)
|
||||||
usage ;;
|
usage ;;
|
||||||
*)
|
*)
|
||||||
cmd="$1"
|
cmd="$1"
|
||||||
shift
|
shift
|
||||||
case "$cmd" in
|
case "$cmd" in
|
||||||
help)
|
help)
|
||||||
git bisect -h ;;
|
git bisect -h ;;
|
||||||
start)
|
start)
|
||||||
bisect_start "$@" ;;
|
bisect_start "$@" ;;
|
||||||
bad|good)
|
bad|good)
|
||||||
bisect_state "$cmd" "$@" ;;
|
bisect_state "$cmd" "$@" ;;
|
||||||
skip)
|
skip)
|
||||||
bisect_skip "$@" ;;
|
bisect_skip "$@" ;;
|
||||||
next)
|
next)
|
||||||
# Not sure we want "next" at the UI level anymore.
|
# Not sure we want "next" at the UI level anymore.
|
||||||
bisect_next "$@" ;;
|
bisect_next "$@" ;;
|
||||||
visualize|view)
|
visualize|view)
|
||||||
bisect_visualize "$@" ;;
|
bisect_visualize "$@" ;;
|
||||||
reset)
|
reset)
|
||||||
bisect_reset "$@" ;;
|
bisect_reset "$@" ;;
|
||||||
replay)
|
replay)
|
||||||
bisect_replay "$@" ;;
|
bisect_replay "$@" ;;
|
||||||
log)
|
log)
|
||||||
bisect_log ;;
|
bisect_log ;;
|
||||||
run)
|
run)
|
||||||
bisect_run "$@" ;;
|
bisect_run "$@" ;;
|
||||||
*)
|
*)
|
||||||
usage ;;
|
usage ;;
|
||||||
esac
|
esac
|
||||||
esac
|
esac
|
||||||
|
|
Loading…
Reference in New Issue