Help: bisect

hg bisect [-gbsr] [-U] [-c CMD] [REV]

recherche de "changesets" par dichotomie

Cette commande aide à trouver les "changesets" étant à l'origine de problèmes. Pour l'utiliser, marquez comme étant mauvaise la première révision pour laquelle vous avez relevé les symptômes, puis comme bonne la dernière révision connue pour être exempte du problème. Bisect va alors mettre à jour votre répertoire de travail à une révision à tester (à moins que -U/--noupdate n'ait été spécifié). Une fois vos tests réalisés, indiquez si le problème était présent ou non. Bisect recommencera alors pour une autre révision candidate jusqu'à être en mesure d'annoncer la révision fautive.

Vous pouvez aussi passer une révision en argument lors du marquage afin d'éviter l'étape manuelle de mise à jour du répertoire de travail à cette révision.

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:

  • start a bisection with known bad revision 34, and good revision 12:
    hg bisect --bad 34
    hg bisect --good 12
    
  • advance the current bisection by marking current revision as good or bad:
    hg bisect --good
    hg bisect --bad
    
  • mark the current revision, or a known revision, to be skipped (e.g. if that revision is not usable because of another issue):
    hg bisect --skip
    hg bisect --skip 23
    
  • skip all revisions that do not touch directories "foo" or "bar":
    hg bisect --skip "!( file('path:foo') & file('path:bar') )"
    
  • forget the current bisection:
    hg bisect --reset
    
  • use 'make && make tests' to automatically find the first broken revision:
    hg bisect --reset
    hg bisect --bad 34
    hg bisect --good 12
    hg bisect --command "make && make tests"
    
  • see all changesets whose states are already known in the current bisection:
    hg log -r "bisect(pruned)"
    
  • see the changeset currently being bisected (especially useful if running with -U/--noupdate):
    hg log -r "bisect(current)"
    
  • see all changesets that took part in the current bisection:
    hg log -r "bisect(range)"
    
  • you can even get a nice graph:
    hg log --graph -r "bisect(range)"
    

See 'hg help revisions.bisect' for more about the 'bisect()' predicate.

Returns 0 on success.

options:

-r --reset réinitialiser l'état de la recherche par dichotomie
-g --good marquer la révision comme "bonne"
-b --bad marquer la révision comme "mauvaise"
-s --skip ne pas considérer la révision
-e --extend extend the bisect range
-c --command CMD utiliser une commande pour tester l'état des révisions
-U --noupdate ne pas mettre à jour à la révision cible

global options ([+] can be repeated):

-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
--color TYPE when to colorize (boolean, always, auto, never, or debug)
--config CONFIG [+] set/override config option (use 'section.name=value')
--debug enable debugging output
--debugger start debugger
--encoding ENCODE set the charset encoding (défaut: UTF-8)
--encodingmode MODE set the charset encoding mode (défaut: 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
--pager TYPE when to paginate (boolean, always, auto, or never) (défaut: auto)