hg bisect [-gbsr] [-U] [-c CMD] [REV]
subdivision search of changesets
This command helps to find changesets which introduce problems. To use, mark the earliest changeset you know exhibits the problem as bad, then mark the latest changeset which is free from the problem as good. Bisect will update your working directory to a revision for testing (unless the -U/--noupdate option is specified). Once you have performed tests, mark the working directory as good or bad, and bisect will either update to another candidate changeset or announce that it has found the bad revision.
As a shortcut, you can also use the revision argument to mark a revision as good or bad without checking it out first.
If you supply a command, it will be used for automatic bisection. The environment variable HG_NODE will contain the ID of the changeset being tested. The exit status of the command will be used to mark revisions as good or bad: status 0 means good, 125 means to skip the revision, 127 (command not found) will abort the bisection, and any other non-zero exit status means the revision is bad.
Some examples:
hg bisect --bad 34 hg bisect --good 12
hg bisect --good hg bisect --bad
hg bisect --skip hg bisect --skip 23
hg bisect --skip '!( file("path:foo") & file("path:bar") )'
hg bisect --reset
hg bisect --reset hg bisect --bad 34 hg bisect --good 12 hg bisect --command 'make && make tests'
hg log -r "bisect(pruned)"
hg log -r "bisect(current)"
hg log -r "bisect(range)"
hg log --graph -r "bisect(range)"
See "hg help revsets" for more about the "bisect()" keyword.
Returns 0 on success.
options:
-r | --reset | reset bisect state |
-g | --good | mark changeset good |
-b | --bad | mark changeset bad |
-s | --skip | skip testing changeset |
-e | --extend | extend the bisect range |
-c | --command CMD | use command to check changeset state |
-U | --noupdate | do not update to target |
global options:
-R | --repository REPO | repository root directory or name of overlay bundle file |
--cwd DIR | change working directory | |
-y | --noninteractive | do not prompt, automatically pick the first choice for all prompts |
-q | --quiet | suppress output |
-v | --verbose | enable additional output |
--config CONFIG [+] | set/override config option (use 'section.name=value') | |
--debug | enable debugging output | |
--debugger | start debugger | |
--encoding ENCODE | set the charset encoding (default: ascii) | |
--encodingmode MODE | set the charset encoding mode (default: strict) | |
--traceback | always print a traceback on exception | |
--time | time how long the command takes | |
--profile | print command execution profile | |
--version | output version information and exit | |
-h | --help | display help and exit |
--hidden | consider hidden changesets |
[+] marked option can be specified multiple times