For several years now, I have been using git as a means to manage migration of my website from one version of wordpress to the next. I initially was maintaining documentation for myself on how to do this manually, but later I migrated the documentation into an automatic script. I've decided to clean this up a bit and release it to the public as open source.

This has really made managing a wordpress site more bearable. I don't allow FTP connections to my website, since FTP is about as secure as a sign on your digital lawn saying "Please do not hack!" Because of this, the built-in automatic update feature has always been useless to me. Using an ssh connection to the webserver as the backbone, it's possible to do more secure automatic updates than built-in feature can provide. (For more info on security, please read Hardening Wordpress.) In addition, I can sleep better at night since my website's code is both version-controlled and backed up to an external server. This isn't possible with the traditional "update wordpress via svn" method either.

Hopefully this will be as useful to you as it was to me. I've tried to make it reasonably configurable, but feel free to fork it and tweak to taste. You can find the code and documentation for wp-upgrade on Github.