summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 61f01a5)
raw | patch | inline | side by side (parent: 61f01a5)
author | Linus Torvalds <torvalds@osdl.org> | |
Tue, 30 Aug 2005 18:04:39 +0000 (11:04 -0700) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Tue, 30 Aug 2005 18:57:28 +0000 (11:57 -0700) |
When testing bisection and using gitk to visualize the result, it was
obvious that the termination condition was broken.
We know what the bad entry is only when the bisection ends up telling us
to test the known-bad entry again.
Also, add a safety net: if somebody marks as good something that includes
the known-bad point, we now notice and complain, instead of writing an
empty revision to the new bisection branch.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
obvious that the termination condition was broken.
We know what the bad entry is only when the bisection ends up telling us
to test the known-bad entry again.
Also, add a safety net: if somebody marks as good something that includes
the known-bad point, we now notice and complain, instead of writing an
empty revision to the new bisection branch.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
git-bisect-script | patch | blob | history |
diff --git a/git-bisect-script b/git-bisect-script
index 0c5c10750e34f76327df0f57ce26417b18dd8963..649b7026eb8b69045144da4bec6cdb4879f23c7a 100755 (executable)
--- a/git-bisect-script
+++ b/git-bisect-script
good=$(git-rev-parse --sq --revs-only --not \
$(cd "$GIT_DIR" && ls refs/bisect/good-*)) &&
rev=$(eval "git-rev-list --bisect $good $bad") || exit
- nr=$(eval "git-rev-list $rev $good" | wc -l) || exit
- if [ "$nr" -le "1" ]; then
+ if [ -z "$rev" ]; then
+ echo "$bad was both good and bad"
+ exit 1
+ fi
+ if [ "$rev" = "$bad" ]; then
echo "$rev is first bad commit"
git-diff-tree --pretty $rev
exit 0
fi
+ nr=$(eval "git-rev-list $rev $good" | wc -l) || exit
echo "Bisecting: $nr revisions left to test after this"
echo "$rev" > "$GIT_DIR/refs/heads/new-bisect"
git checkout new-bisect || exit