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

[PATCH 7/8] Make O(n) algorithm the default implementation of --bisect [rev 2]

From
Jon Seymour <jon.seymour@gmail.com>
Date
Jul 2, 2005, 05:38 UTC
Message-ID
<20050702053812.11560.qmail@blackcubes.dyndns.org>

This patch makes the O(n) the default implementation of the git-rev-list --bisect switch.

The original O(n^2) algorithm is still available as --bisect-orig.

It is left around to provide a quick and simple way to verify the accuracy of the O(n) algorithm.

A subsequent patch is supplied to remove support for --bisect-orig completely.

Signed-off: Jon Seymour <jon.seymour@gmail.com>
---
Linus: you may choose to defer application of this patch if you are
not confident that the O(n) algorithm is good.
[rev 2]
  * included necessary change to t/t6002... that was accidentally
    ommitted on the first attempt.
The patch series to be applied is now:

[PATCH 1/8] Factor out useful test case infrastructure from t/t6001... into t/t6000-lib.sh [PATCH 2/8] Introduce unit tests for git-rev-list --bisect [PATCH 3/8] Add a topological sort procedure to commit.c [rev 3] [PATCH 4/8] This patch introduces a O(n) bisection algorithm to git. [PATCH 5/8] Removes DEBUG code from rev-list.c and -DDEBUG from Makefile [PATCH 6/8] Move bisection algorithms into commit.c [PATCH 7/8] Make O(n) algorithm the default implementation of --bisect [rev 2] [PATCH 8/8] Removes support for O(n^2) algorithm from git-rev-list completely [rev 2] [PATCH] Change the sed seperator in t/t6000-lib.sh ---

 rev-list.c                 |    5 +++--
 t/t6002-rev-list-bisect.sh |    2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)
203e690e7d7a2aa75f0336744dc6b4455ad51844
diff --git a/rev-list.c b/rev-list.c
--- a/rev-list.c
+++ b/rev-list.c
@@ -16,6 +16,7 @@ static const char rev_list_usage[] =
 		      "  --min-age=epoch\n"
 		      "  --header\n"
 		      "  --pretty\n"
+                      "  --bisect\n"
 		      "  --merge-order [ --show-breaks ]";
 
 static int bisect_list = 0;
@@ -365,11 +366,11 @@ int main(int argc, char **argv)
 			show_parents = 1;
 			continue;
 		}
-		if (!strcmp(arg, "--bisect-by-cut")) {
+		if (!strcmp(arg, "--bisect")) {
 			bisect_by_cut_option = 1;
 			continue;
 		}
-		if (!strcmp(arg, "--bisect")) {
+		if (!strcmp(arg, "--bisect-orig")) {
 			bisect_list = 1;
 			continue;
 		}
diff --git a/t/t6002-rev-list-bisect.sh b/t/t6002-rev-list-bisect.sh
--- a/t/t6002-rev-list-bisect.sh
+++ b/t/t6002-rev-list-bisect.sh
@@ -241,7 +241,7 @@ EOF
 }
 
 test_sequence "--bisect"
-test_sequence "--bisect-by-cut"
+test_sequence "--bisect-orig"
 
 #
 #
------------
Message 1 of 1 in “Make O(n) algorithm the default implementation of --bisect [rev 2]”
  1. 7/8 Make O(n) algorithm the default implementation of --bisect [rev 2]Jon Seymour, Jul 2, 2005

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.