Tag Archive: error

Today I had the mammoth task of checking through 512 git commits to find a piece of code that broke something.

Usually i would git log, look back however many commits, and then do a git reset –hard COMMIT_NUMBER, then check if it worked. If it did, I would git pull back to the HEAD again, and try a resetting back to a more recent commit, until I found the bad code.

Never again! Git bisect to the rescue!

Find any good commit in the past, and note the commit number. Find any bad commit where the code is broken, and note the commit number.

Now, do the following:

git bisect start
git bisect good 514d83c
git bisect bad b27f38e


Git checks out the middle commit between the good and bad ones. At this point I reloaded my page to see if the code was working or not. The code was working, so I then told git that it was good:

git bisect good


Again the code was working, so as you can see I ran it again. Each time, git bisect jumps half way, iterating and narrowing down the options. Keep doing this and checking your code until it breaks, then say:

git bisect bad

Here’s the rest of the output:


Now we have the exact commit number, and can do a git diff to find out what you did wrong! 🙂

Once you have the commit in question, tell git bisect that you are finished:

git bisect reset

I am amazed that I’m only just finding out about this awesome feature of Git! I’m sure you’ll love it too, try it!

Have fun!

Here’s one you might have had. “Lost connection to MySQL server at ‘reading initial communication packet’ “.

If  you get this, then I assume that you are connecting to another machine on the network, a virtual machine, or a remote server.

It’s a pretty simple fix. Edit your /etc/mysql/my.cnf (path may differ depending on your setup), and change the line that says bind-address = to:

bind-address =

Save it, then restart mysql.

sudo service mysql restart

Job done!

Strict PHP Pains

Hola amigos!

If you’ve upgraded your PHP recently then you’ll notice it’s a lot stricter about things. Good, I say. But there will be a painful transition as people will need to learn more and program less sloppy!
This post will be updated as I come across any new php 5.3+ strict error warnings on my travels.

Todays error message:

A non well formed numeric value encountered

This was in one of my view helpers for converting Unix time to something more humanly readable.

return date("H:m", $time);

Fixed using strtotime:

return date("H:m", strtotime($time));

Stay tuned for more programming woes!