@Greenpickle: Yes, that will leave the .git files. Which isn't really that much of a pain.
But I've found that the best way to upgrade is with the shell. It can be done completely painlessly, and the switch can take only seconds.
For starters, upload the new wiki files and put them in a directory named something like new_wiki. Next, create an exact copy of your LocalSettings.php, and add this at the bottom:
$wgReadOnly= "We are currently updating our MediaWiki version and have therefore disabled editing. Please check back in a few minutes!";
Then, make a shell script! It'll look something like this:
#!/bin/bash
#MediaWiki upgrade script
#Start by copying the images from the old version to the new
cp -r /var/www/wiki/images/ /var/www/new_wiki/
#Next, backup LocalSettings.php
cp /var/www/wiki/LocalSettings.php /var/www/wiki/LocalSettings.bak
#Then put the new file over the current LocalSettings
mv -f /var/www/wiki/NewLocalSettings.php /var/www/wiki/LocalSettings.php
#We'll also give the new wiki directory a copy of our LocalSettings and .htaccess (if applicable)
cp /var/www/wiki/LocalSettings.php /var/www/new_wiki/LocalSettings.php
cp /var/www/wiki/.htaccess /path/to/new_wiki/.htaccess
#Now, we're going to rename the wiki directory (to save the old files in case something goes horribly wrong)
mv /var/www/wiki/ /var/www/old_wiki/
#And then put the new files in place.
mv /var/www/new_wiki/ /var/www/wiki/
#Run the database update
php /var/www/wiki/maintenance/update.php
#Unlock the database
mv -f /var/www/old_wiki/LocalSettings.bak /var/www/wiki/LocalSettings.php
This is for a Linux server, of course. And the paths may differ. I just used /var/www/ as an example. If your server has multiple sites, your wiki is probably stored in a home directory of a user, like /home/xwiki/public_html/wiki/
Anyways, the script looks like it does a lot (and it does), but there is literally no quicker way to do something than with a shell script. It enters commands to the machine immediately, so when it finishes one operation, it quickly moves on to the next. Without a doubt the best way to minimize downtime. Hope this helps!