# phpman > man > SVN-BISECT(1)

[SVN-BISECT(1)](https://www.chedong.com/phpMan.php/man/SVN-BISECT/1/markdown)                          General Commands Manual                         [SVN-BISECT(1)](https://www.chedong.com/phpMan.php/man/SVN-BISECT/1/markdown)



## NAME
       svn-bisect - Bisect Subversion revisions to find a regression

## SYNOPSIS
       **svn-bisect** **start** [_good_rev_ [_bad_rev_]]

       **svn-bisect** {**good**|**bad**} [_rev_]

       **svn-bisect** **run** _command_

### svn-bisect reset

### svn-bisect status

## DESCRIPTION
       **svn-bisect**  helps  to automate finding a bug or behavior change in a **Subversion** working copy.
       Given an initial “good” revision, with the desired or original behavior, and  a  newer  “bad”
       revision, with the undesired or modified behavior, **svn-bisect** will do a binary search through
       the revision range to find which revision caused the change.

       **svn-bisect** must be initialized in a working copy, with **svn-bisect** **start**.  It also needs to be
       given  at  least one _good_ revision (the baseline) and one _bad_ revision (known modified behav‐
       ior) revision.

       Sub-commands:

       **start**  Initializes or reinitializes **svn-bisect**; optionally takes _good_ and _bad_ revision param‐
              eters.

       **good** _rev_

       **bad** _rev_
              Tells  **svn-bisect**  that  a  revision  is _good_ or _bad_, defining or narrowing the search
              space.  If not specified, _revision_ defaults to the current  revision  in  the  working
              copy.   **svn-bisect** will then update to a revision halfway between the new _good_ and _bad_
              boundaries.  If this update crosses a point where a branch was created, it switches in
              or out of the branch.

       **reset**  Resets the working copy to the revision and branch where **svn-bisect** **start** was run.  In
              the simple case this is equivalent to **rm** **-r** **.svn-bisect;** **svn** **update**, but not if it has
              crossed  branches,  and  not  if you did not start at the **HEAD** revision.  In any case,
              **svn-bisect** never keeps track of mixed-revision working copies, so do not  use  **svn-bi**‐‐
              **sect** in a working copy that will need to be restored to mixed revisions.

       **status** Prints a brief status message.

       **run** _command_
              Runs  the  bisection  in  a  loop.  You must have already defined initial _good_ and _bad_
              boundary conditions.  Each iteration through the loop runs _command_ as a shell  command
              (a  single argument, quoted if necessary) on the chosen revision, then marks the revi‐
              sion as _good_ or _bad_, based on the exit status of _command_.

## EXAMPLES
       Assume you are trying to find which revision between 1250 and 1400 caused the **make** **check** com‐
       mand to fail.

           svn-bisect start 1250 1400
           svn-bisect run 'make check'
           svn-bisect reset

## ENVIRONMENT
       SVN    The Subversion command-line program to call (default **svn**).

## FILES
       .svn-bisect
              The directory containing state information, removed after a successful bisection.

## SEE ALSO
       [**git-bisect**(1)](https://www.chedong.com/phpMan.php/man/git-bisect/1/markdown).

## AUTHOR
       Written by Robert Millan and Peter Samuelson, for the Debian Project (but may be used by oth‐
       ers).



                                             2009-10-22                                [SVN-BISECT(1)](https://www.chedong.com/phpMan.php/man/SVN-BISECT/1/markdown)
