Git - Bisect
Jump to navigation
Jump to search
# Initiallize repo
cd /g
mkdir /g/tmp
cd tmp
mkdir repo
cd repo/
git init
echo "exit 0" > code.sh
git add code.sh;
git commit -a -m "c0"
# Genereate 10 revision which do not spoil the script
for i in $(seq 10) ; do echo "# round 1 $i" >> code.sh ; git commit -a -m "c$i" ; done
# Spoil the script
echo "exit 1" > code.sh
git commit -a -m "bug revision"
# generate 20 revisions which do not spoil already spoiled script
for i in $(seq 20) ; do echo "# round 2 $i" >> code.sh ; git commit -a -m "c$i" ; done
git bisect start
git bisect bad
# mark first revision as good
git bisect good 6d34b
git bisect run bash code.sh
running bash code.sh Bisecting: 7 revisions left to test after this (roughly 3 steps) [65e896df0fb1a865e8678bc2145f1621b802acfd] c7 running bash code.sh Bisecting: 3 revisions left to test after this (roughly 2 steps) [480515f739bf6dd9a2a6ab47d8626aea805d4880] bug revision running bash code.sh Bisecting: 1 revision left to test after this (roughly 1 step) [52de39416f0f93a1b95f744de05699baa85ab224] c9 running bash code.sh Bisecting: 0 revisions left to test after this (roughly 0 steps) [22ef2aaf18c69aa420534303ceeec2078154357c] c10 running bash code.sh 480515f739bf6dd9a2a6ab47d8626aea805d4880 is the first bad commit commit 480515f739bf6dd9a2a6ab47d8626aea805d4880 Author: Your Name <you@example.com> Date: Tue Dec 4 00:02:09 2012 +0000 bug revision :100644 100644 68d815b9ee3a9b590f2be9db2adfe37d715f964f 379a4c986e3265e08e9da42c56ec747619c56a33 M code.sh bisect run success