view en/examples/bisect @ 654:b08f6a61bf15

Merge
author Bryan O'Sullivan <bos@serpentine.com>
date Mon, 09 Feb 2009 22:59:50 -0800
parents 51b5d56744c5 91adcea08b33
children 7226e5e750a6
line wrap: on
line source

#!/bin/bash

if  hg -v | head -1 | grep -e "version 0.*"
then
#On mercurial 1.0 and later bisect is a builtin
echo '[extensions]' >> $HGRC
echo 'hbisect =' >> $HGRC
fi

# XXX There's some kind of horrible nondeterminism in the execution of
# bisect at the moment.  Ugh.

#$ ignore: .*

#$ name: init

hg init mybug
cd mybug

#$ name: commits

buggy_change=22

for (( i = 0; i < 35; i++ )); do
  if [[ $i = $buggy_change ]]; then
    echo 'i have a gub' > myfile$i
    hg commit -q -A -m 'buggy changeset'
  else
    echo 'nothing to see here, move along' > myfile$i
    hg commit -q -A -m 'normal changeset'
  fi
done

#$ name: help

hg help bisect

#$ name: search.init

hg bisect init

#$ name: search.bad-init

hg bisect bad

#$ name: search.good-init

hg bisect good 10

#$ name: search.step1

if grep -q 'i have a gub' *
then
  result=bad
else
  result=good
fi

echo this revision is $result
hg bisect --$result

#$ name: search.mytest

mytest() {
  if grep -q 'i have a gub' *
  then
    result=bad
  else
    result=good
  fi

  echo this revision is $result
  hg bisect $result
}
  
#$ name: search.step2

mytest

#$ name: search.rest

mytest
mytest
mytest

#$ name: search.reset

hg bisect reset

#$ name:

exit 0