# 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  para‐
              meters.

       **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)
