I just tried to implement something like this and ran into every obstacle outlined in this blog post (in this order): http://jondavidjohn.com/blog/2012/10/git-pull-from-a-php-script-not-so-simple
So, I have another idea. We already have a script in crontab running every minute, watcher.php. So, I can add an option to automatically install updates and have the watcher install them periodically. But, do I need to expose this as an option or would everyone be okay if this just happened? I would first do a `which git` for the binary location and if nothing is found abort there. I would then check the install location for a .git/HEAD file and if missing abort. The only issue would be a bad update but nothing that could possibly break git pull from updating/fixing itself.
Let me know what you think and we can easily implement something like I mentioned.