[PATCH] Add command `git bisect state` that checks if the current bisection process has reached the first bad commit.
From: Mattias Andrée <hidden>
Date: 2016-06-15 22:58:26
This can be used for automated bisection without a check script. Signed-off-by: Mattias Andrée <redacted> --- Documentation/git-bisect.txt | 13 +++++++++++++ git-bisect.sh | 11 ++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/Documentation/git-bisect.txt b/Documentation/git-bisect.txt
index f986c5c..ca8c09d 100644
--- a/Documentation/git-bisect.txt
+++ b/Documentation/git-bisect.txt@@ -25,6 +25,7 @@ on the subcommand: git bisect visualize git bisect replay <logfile> git bisect log + git bisect state git bisect run <cmd>... This command uses 'git rev-list --bisect' to help drive the
@@ -104,6 +105,18 @@ For example, `git bisect reset HEAD` will leave you on the current bisection commit and avoid switching commits at all, while `git bisect reset bisect/bad` will check out the first bad revision. +Bisect state +~~~~~~~~~~~~~~~~ + +To see the bisection process has finnished, issue the following command: + +------------ +$ git bisect state +------------ + +Exit successfully (i.e., with return code 0), if and only if the current +bisection has reached the first bad or possible first bad commit. + Bisect visualize ~~~~~~~~~~~~~~~~
diff --git a/git-bisect.sh b/git-bisect.sh
index 9f064b6..6ddda34 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh@@ -1,6 +1,6 @@ #!/bin/sh -USAGE='[help|start|bad|good|skip|next|reset|visualize|replay|log|run]' +USAGE='[help|start|bad|good|skip|next|reset|visualize|replay|log|run|state]' LONG_USAGE='git bisect help print this long help message. git bisect start [--no-checkout] [<bad> [<good>...]] [--] [<pathspec>...]
@@ -23,6 +23,8 @@ git bisect log show bisect log. git bisect run <cmd>... use <cmd>... to automatically bisect. +git bisect state + check if the bisection is complete. Please use "git help bisect" to get the full man page.'
@@ -491,6 +493,11 @@ bisect_log () { cat "$GIT_DIR/BISECT_LOG" } +bisect_complete_state () { + cat "$GIT_DIR/BISECT_LOG" | tail -n 1 | grep -E '^# (possible |)first bad commit:' > /dev/null + exit $? +} + case "$#" in 0) usage ;;
@@ -519,6 +526,8 @@ case "$#" in bisect_log ;; run) bisect_run "$@" ;; + state) + bisect_complete_state ;; *) usage ;; esac
--
1.8.3.4