foozy@708: #!/bin/bash foozy@708: foozy@708: echo '[extensions]' >> $HGRC foozy@708: #echo 'hgext.bisect =' >> $HGRC foozy@708: foozy@708: # XXX There's some kind of horrible nondeterminism in the execution of foozy@708: # bisect at the moment. Ugh. foozy@708: foozy@708: #$ ignore: .* foozy@708: foozy@708: #$ name: init foozy@708: foozy@708: hg init mybug foozy@708: cd mybug foozy@708: foozy@708: #$ name: commits foozy@708: foozy@708: buggy_change=22 foozy@708: foozy@708: for (( i = 0; i < 35; i++ )); do foozy@708: if [[ $i = $buggy_change ]]; then foozy@708: echo 'i have a gub' > myfile$i foozy@708: hg commit -q -A -m 'buggy changeset' foozy@708: else foozy@708: echo 'nothing to see here, move along' > myfile$i foozy@708: hg commit -q -A -m 'normal changeset' foozy@708: fi foozy@708: done foozy@708: foozy@708: #$ name: help foozy@708: foozy@708: hg help bisect foozy@708: hg bisect help foozy@708: foozy@708: #$ name: search.init foozy@708: foozy@708: hg bisect init foozy@708: foozy@708: #$ name: search.bad-init foozy@708: foozy@708: hg bisect bad foozy@708: foozy@708: #$ name: search.good-init foozy@708: foozy@708: hg bisect good 10 foozy@708: foozy@708: #$ name: search.step1 foozy@708: foozy@708: if grep -q 'i have a gub' * foozy@708: then foozy@708: result=bad foozy@708: else foozy@708: result=good foozy@708: fi foozy@708: foozy@708: echo this revision is $result foozy@708: hg bisect $result foozy@708: foozy@708: #$ name: search.mytest foozy@708: foozy@708: mytest() { foozy@708: if grep -q 'i have a gub' * foozy@708: then foozy@708: result=bad foozy@708: else foozy@708: result=good foozy@708: fi foozy@708: foozy@708: echo this revision is $result foozy@708: hg bisect $result foozy@708: } foozy@708: foozy@708: #$ name: search.step2 foozy@708: foozy@708: mytest foozy@708: foozy@708: #$ name: search.rest foozy@708: foozy@708: mytest foozy@708: mytest foozy@708: mytest foozy@708: foozy@708: #$ name: search.reset foozy@708: foozy@708: hg bisect reset foozy@708: foozy@708: #$ name: foozy@708: foozy@708: exit 0