SVN-BISECT(1)
π SVN-BISECT(1) π
okay bestie, sit down, hydrate, and let me tell you about svn-bisect β the manual page for the tool that hunts down regressions in Subversion revisions so you don't have to do it by hand like some kind of Victorian orphan. it's in the General Commands Manual section, it's giving detective energy, and it literally ate π
β¨ 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 π¦
okay so picture this: something in your Subversion working copy changed and you have zero clue which revision did it. svn-bisect is here to save you. you give it an initial "good" revision β the one that still has the behavior you want, the original, the untouched, the pre-glow-up β and a newer "bad" revision β the one with the undesired or modified behavior, the one that's giving chaos. then svn-bisect does a binary search through that revision range to find exactly which revision caused the change. no cap, it's that efficient π₯
before anything else, svn-bisect has to be initialized inside a working copy, using svn-bisect start. and it also needs you to hand it at least one good revision (that's your baseline, your reference point, your anchor πΈ) and one bad revision (known modified behavior, the villain of the story π).
the sub-commands, bestie π
startβ initializes or reinitializessvn-bisect. optionally takesgoodandbadrevision parameters, so you can set the whole thing up in one go. iconic behavior.good revbad revβ tellssvn-bisectthat a revision is good or bad, which defines or narrows the search space. if you don't specify the revision, it defaults to the current revision in the working copy. thensvn-bisectupdates to a revision halfway between the new good and bad boundaries. and heads up: if that update crosses a point where a branch was created, it switches in or out of the branch. the way it justβ¦ handles branches?? obsessed.resetβ resets the working copy to the revision and branch wheresvn-bisect startwas run. in the simple case this is equivalent torm -r .svn-bisect; svn update, but not if it has crossed branches, and not if you didn't start at theHEADrevision.
β οΈ also, in any case,svn-bisectnever keeps track of mixed-revision working copies. so do not usesvn-bisectin a working copy that will need to be restored to mixed revisions. that's a whole mess and we are not doing that π
statusβ prints a brief status message. short. sweet. a little vibe check for your bisection β¨run commandβ runs the bisection in a loop. you must have already defined initial good and bad boundary conditions first, no skipping steps bestie. each iteration through the loop runscommandas 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 ofcommand. it's literally self-driving. main character energy fr fr.
π EXAMPLES π
say you're trying to find which revision between 1250 and 1400 caused the make check command to fail. here's the whole serve:
svn-bisect start 1250 1400
svn-bisect run 'make check'
svn-bisect reset
that's it. that's the whole thing. three lines and the bug is found. periodt π
πΈ ENVIRONMENT πΈ
SVNβ the Subversion command-line program to call (defaultsvn).
π FILES π
.svn-bisectβ the directory containing state information. it gets removed after a successful bisection, which is honestly so satisfying, like cleaning your room but automated π§
π SEE ALSO π
(yes, its cousin. the family reunion is happening and everyone's invited.)
π AUTHOR π
Written by Robert Millan and Peter Samuelson, for the Debian Project (but may be used by others). absolute legends, we stan π«Ά
and that's the whole page bestie!! π this one was dated 2009-10-22, it lives in the General Commands Manual, and the manual name is SVN-BISECT(1). go find that regression. slay. β¨ππ¦
π¦ where this page comes from
- debian bookworm: subversion-tools 1.14.2-4+deb12u1 Β· Apache-2.0
- debian trixie: subversion-tools 1.14.5-3 Β· Apache-2.0
- ubuntu jammy: subversion-tools 1.14.1-3build4 Β· Apache-2.0
- ubuntu jammy: subversion-tools 1.14.1-3ubuntu0.22.04.1 Β· Apache-2.0
- ubuntu noble: subversion-tools 1.14.3-1build4 Β· Apache-2.0
- ubuntu questing: subversion-tools 1.14.5-3
- ubuntu resolute: subversion-tools 1.14.5-6build1 Β· Apache-2.0
- ubuntu stonking: subversion-tools 1.14.5-6build2 Β· Apache-2.0
- Copyright 2009 by Peter Samuelson
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms