First, you clone web2py from Google Code: hg clone https://web2py.googlecode.com/hg/ web2py
Then, to update web2py, you go in to the "web2py" directory and issue these two commands: $ hg pull $ hg update This will not touch "applications/yourapp". Then, my "init" app is a second mercurial repository that is totally independent from the web2py repository. You have two options here: you can either configure the copy on your hard drive to be the main repository or specify some other server to be the central repository. I use Bitbucket as my main repository. I "hg pull" to my hard drive and I also "hg pull" to my Ubuntu server. I'm not sure exactly how to deploy to GAE. As a version control newbie as well, and on a Mac, I've had good times with MacHG. But it's also useful to learn the command line. The tutorial I like is hginit.com