view ja/examples/bisect @ 834:896ab6eaf1c6

merged
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Fri, 10 Jul 2009 02:32:17 +0900
parents en/examples/bisect@7226e5e750a6 en/examples/bisect@019040fbf5f5
children
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 --reset

#$ 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