Svn branch commit

This script commits the local changes to both the current branch and to the trunk.
It passes all command line arguments (except for this one) to svn commit.

If the script gets part way through and runs into a problem, the state is saved.
So, when the script is run again in the same directory it will pick up where it
left off. For example, if the script is run and merge conflicts are found in the
trunk, you can resolve the conflicts and then just rerun this script. To stop this
behavior remove the status file .branch_commit_status.

The process involves many steps since we need to switch back and forth between
the branch and the trunk in order to commit onto both.

Under the hood, this is what his happening:

svn commit -m "<message>" 
# Note svn revision
svn switch ^/trunk/<package>
svn merge -c <revision> ^/branches/<branch>/<package>
svn commit -m "Merging revision <revision> from branch <branch> \n <message>" 
svn switch ^/branches/branch/<package>