svn-bisect(1)
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 behavior) revision.
Sub-commands:
- start Initializes or reinitializes svn-bisect; optionally takes good
- and bad revision parameters.
- 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-bisect 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 revision 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 command to fail.
- svn-bisect start 1250 1400
svn-bisect run 'make check'
svn-bisect reset
FILES
- .svn-bisect
- The directory containing state information, removed after a successful bisection.
SEE ALSO
AUTHOR
- Written by Robert Millan and Peter Samuelson, for the Debian Project
(but may be used by others).