views:

51

answers:

1

Because of how files are uploaded from local machine to Google servers, where we can only initiate an update that put the files on the server on the same state as the one on the local machine, I afraid that when working as a team, some of the team members don't have some specific files, and when they update it to the server, they will effectively delete some files on the server.

Any suggestions how to manage a Google App Engine project in a team?

+6  A: 

The first thing to note is that if you have missing files, then you are either not using a good version control system or your developers might need to take time out to go through a tutorial on your particular VCS.

There is a huge risk of breaking things if you have multiple developers deploying to the live site. App engine does have a method of mitigating this risk to some degree with application versions, but if developers are required to deploy to live as part of the workflow then things are almost guaranteed to go wrong at some point (i.e. someone forgets to change the version number in app.yaml).

I would recommend, at a minimum:

  1. Get a good VCS and make sure the developers know how to use it effectively
  2. Developers should develop and test locally using dev_appserver.py from the SDK. Given the remote API, sqlite backend, etc, there is no reason why this isn't feasible. If you need the live data, create something representative that you can use locally. Even behaviour that is radically different on the SDK and live (e.g. parallelism) is hardly ever a problem during development.
  3. Have developers commit to a repository, and have some particular person (ideally, with help from scripts to prevent human error) be responsible for deploying a new, non-default version of the app
  4. Test the new deployment well before making it the new default version for your users
sje397
I have found http://bitbucket.org/ is great when developing as a team.
jonmiddleton