I definitely suggest using version control instead. SSH in to your server and "hg clone" web2py from Google Code. Then whenever you want to do an update, SSH in to server and "hg pull; hg update". You can "hg update" to specific changesets (ie, roll back if something broke)(this is not fool proof since there are occasionally changes that make it hard or impossible to go back).
I then started using Fabric which makes it a bit easier by not needing to SSH in to the server and you can set up multi-step tasks to execute uniformly. I do pretty much the same thing with my apps which are hosted at Bitbucket. At some point I might start creating new directories with clean new code and then switching via symbolic links. But my current scheme works fine and is easy.