SVN-BISECT(1)

πŸ“¦
version 1.14.5 Β· 3 versions
, in debian bookworm, debian trixie, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– 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 reinitializes svn-bisect. optionally takes good and bad revision parameters, so you can set the whole thing up in one go. iconic behavior.
  • good rev
  • bad rev β€” tells svn-bisect that 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. then svn-bisect updates 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 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 didn't start at the HEAD revision.
⚠️ also, 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. 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 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. 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 (default svn).

πŸ“ 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 πŸ’œ

git-bisect(1).

(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. βœ¨πŸŽ€πŸ¦‹