summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 3e15c67)
raw | patch | inline | side by side (parent: 3e15c67)
author | Junio C Hamano <junkio@cox.net> | |
Mon, 5 Dec 2005 08:15:24 +0000 (00:15 -0800) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Mon, 5 Dec 2005 08:15:24 +0000 (00:15 -0800) |
Also work-around asciidoc manpage trouble that does not seem to
allow more than one line in the SYNOPSIS section.
Signed-off-by: Junio C Hamano <junkio@cox.net>
allow more than one line in the SYNOPSIS section.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Documentation/git-bisect.txt | patch | blob | history |
index 8a399703dc7d75c8ca3d170e6d18832a7ce8723b..ac4b4965a93fd5087896e8e807f6ad28db566df7 100644 (file)
SYNOPSIS
--------
- 'git bisect' start
- 'git bisect' bad <rev>
- 'git bisect' good <rev>
- 'git bisect' reset [<branch>]
- 'git bisect' visualize
- 'git bisect' replay <logfile>
- 'git bisect' log
+'git bisect' <subcommand> <options>
DESCRIPTION
-----------
+The command takes various subcommands, and different options
+depending on the subcommand:
+
+ git bisect start [<paths>...]
+ git bisect bad <rev>
+ git bisect good <rev>
+ git bisect reset [<branch>]
+ git bisect visualize
+ git bisect replay <logfile>
+ git bisect log
+
This command uses 'git-rev-list --bisect' option to help drive
the binary search process to find which change introduced a bug,
given an old "good" commit object name and a later "bad" commit
The way you use it is:
------------------------------------------------
-git bisect start
-git bisect bad # Current version is bad
-git bisect good v2.6.13-rc2 # v2.6.13-rc2 was the last version
- # tested that was good
+$ git bisect start
+$ git bisect bad # Current version is bad
+$ git bisect good v2.6.13-rc2 # v2.6.13-rc2 was the last version
+ # tested that was good
------------------------------------------------
When you give at least one bad and one good versions, it will
it. Now, let's say that this booted kernel works fine, then just do
------------------------------------------------
-git bisect good # this one is good
+$ git bisect good # this one is good
------------------------------------------------
which will now say
Oh, and then after you want to reset to the original head, do a
------------------------------------------------
-git bisect reset
+$ git bisect reset
------------------------------------------------
to get back to the master branch, instead of being in one of the bisection
During the bisection process, you can say
- git bisect visualize
+------------
+$ git bisect visualize
+------------
to see the currently remaining suspects in `gitk`.
log` shows what you have done so far. You can truncate its
output somewhere and save it in a file, and run
- git bisect replay that-file
+------------
+$ git bisect replay that-file
+------------
if you find later you made a mistake telling good/bad about a
revision.
+If in a middle of bisect session, you know what the bisect
+suggested to try next is not a good one to test (e.g. the change
+the commit introduces is known not to work in your environment
+and you know it does not have anything to do with the bug you
+are chasing), you may want to find a near-by commit and try that
+instead. It goes something like this:
+
+------------
+$ git bisect good/bad # previous round was good/bad.
+Bisecting: 337 revisions left to test after this
+$ git bisect visualize # oops, that is uninteresting.
+$ git reset --hard HEAD~3 # try 3 revs before what
+ # was suggested
+------------
+
+Then compile and test the one you chose to try. After that,
+tell bisect what the result was as usual.
+
+You can further cut down the number of trials if you know what
+part of the tree is involved in the problem you are tracking
+down, by giving paths parameters when you say `bisect start`,
+like this:
+
+------------
+$ git bisect start arch/i386 include/asm-i386
+------------
+
Author
------