git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 3/4] bisect: add "--ratio=<ratio>" option to "git bisect skip"

From
Christian Couder <chriscool@tuxfamily.org>
Date
Jun 2, 2009, 20:16 UTC
Message-ID
<20090602201634.3630.25125.chriscool@tuxfamily.org>
In-Reply-To
<20090602200731.3630.33652.chriscool@tuxfamily.org>

This option will be passed to "git bisect--helper" using its "--skip-ratio" option.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
---
 git-bisect.sh |   37 ++++++++++++++++++++++++-------------
 1 files changed, 24 insertions(+), 13 deletions(-)
diff --git a/git-bisect.sh b/git-bisect.sh
index 8969553..176b21d 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -9,7 +9,7 @@ git bisect bad [<rev>]
         mark <rev> a known-bad revision.
 git bisect good [<rev>...]
         mark <rev>... known-good revisions.
-git bisect skip [(<rev>|<range>)...]
+git bisect skip [--ratio=<ratio>] [(<rev>|<range>)...]
         mark <rev>... untestable revisions.
 git bisect next
         find next bisection to test and check it out.
@@ -178,18 +178,27 @@ check_expected_revs() {
 }
 
 bisect_skip() {
-        all=''
-	for arg in "$@"
+	all=''
+	unset BISECT_SKIP_RATIO
+	while [ $# -gt 0 ]
 	do
-	    case "$arg" in
-            *..*)
-                revs=$(git rev-list "$arg") || die "Bad rev input: $arg" ;;
-            *)
-                revs=$(git rev-parse --sq-quote "$arg") ;;
-	    esac
-            all="$all $revs"
-        done
-        eval bisect_state 'skip' $all
+		arg="$1"
+		case "$arg" in
+		--ratio)
+			shift; BISECT_SKIP_RATIO="$1" ;;
+		--ratio=*)
+			BISECT_SKIP_RATIO=$(expr "$arg" : '--ratio=\(.*\)') ;;
+		*..*)
+			revs=$(git rev-list "$arg") ||
+			die "Bad rev input: $arg"
+			all="$all $revs" ;;
+		*)
+			revs=$(git rev-parse --sq-quote "$arg")
+			all="$all $revs" ;;
+		esac
+		shift
+	done
+	eval bisect_state 'skip' $all
 }
 
 bisect_state() {
@@ -270,8 +279,10 @@ bisect_next() {
 	bisect_autostart
 	bisect_next_check good
 
+	skip_ratio="${BISECT_SKIP_RATIO+--skip-ratio=$BISECT_SKIP_RATIO}"
+
 	# Perform all bisection computation, display and checkout
-	git bisect--helper --next-all
+	git bisect--helper --next-all $skip_ratio
 	res=$?
 
         # Check if we should exit because bisection is finished
-- 
1.6.3.GIT
Previous: Christian CouderNext: Christian Couder
Message 4 of 10 in “make it possible to skip away from broken commits”
  1. 0/4 make it possible to skip away from broken commitsChristian Couder, Jun 2, 2009
  2. 1/4 bisect: add parameters to "filter_skipped"Christian Couder, Jun 2, 2009
  3. 2/4 bisect: use the skip ratio to choose a commit away from a skipped commitChristian Couder, Jun 2, 2009
  4. 3/4 bisect: add "--ratio=<ratio>" option to "git bisect skip"Christian Couder, Jun 2, 2009
  5. 4/4 t6030: add test case for "git bisect skip --ratio=x/y"Christian Couder, Jun 2, 2009
  6. Junio C HamanoJun 2, 2009
  7. H. Peter AnvinJun 3, 2009
  8. Christian CouderJun 3, 2009
  9. Junio C HamanoJun 3, 2009
  10. Christian CouderJun 3, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.