I assume that you have only one application and you keep it separate from
web2py:
$HOME/workspace/my-project/src <-- your application folder
$HOME/workspace/my-project/web2py <-- web2py folder
To upgrade web2py to a desired version you can run then the following
script. It pulls the changes from the repository
and applies them to web2py folder. The it copies the global configuration
files (which has been overwritten during update) from
the application src folder (yaml files are only needed for GAE apps).
Finally, it creates symbolic link to your application from
within the web2py folder.
#!/bin/bash
TAG="R-1.99.7"
cd $HOME/workspace/my-project
# update files from repo
cd web2py
hg pull
hg update -C $TAG
cd ..
# copy config files
cp -p src/private/*.yaml web2py/.
cp -p src/private/routes.py web2py/.
# link to my application
if [ ! -d "web2py/applications/init" ]
then
cd web2py/applications/
ln -s ../../src init
fi
Notice that your application will be linked as init. If you have more than
one application per web2py instance, adjust the script
to link all applications. Also, you will need mercurial installed to run
the script (sudo apt-get install mercurial).
And one more thing, this is perfectly normal that you need to mange the
changes carefully. So there is no need to be bitter.
BTW, there was an attempt by Jose to package web2py for Debian. It's pretty
good but stays a bit behind the upstream:
http://packages.debian.org/sid/python-web2py