For effective teamwork we prefer the following approach (which we use internally):\n\n> Every developer has its (his/her) own repository database ? this can be   a local database or a ?private? database on a shared DBMS.\n\n> Thus, the developers are not restricted in their work and several   developers are able to work in parallel (even on the same component).\n\n> Once developers are ready to submit a change (which can involve several    components ? also from several applications), the components are       exported into XML export files:\n\n  > One directory for each application containing:\n    > one XML export file for each component\n    > one XML export file for the application properties (using ?-               appsource? flag of ?w4gldev backupapp out)\n\n> The export files are under control of an SCM (Software Configuration       Management) like ?git? (Bitbucket)\n> Once the developer wants to submit the changes to the repository of the    SCM (changed/added/deleted files), there is a ?Code Review? process        going on.\n\n  > The file submission into the central repository will only happen after     reviews and approval by peers/authorized users (?Pull Request? in          git/Bitbucket).\n  > Other developers can get the new component versions from the SCM           repositiory after the change has been merged.\n  > The build of a daily build or release of the application(s) will be        done using the applications/component export files contained in the        SCM repository\n\n    > This could even be done using a newly created database, into which         all the required export files are imported before doing makeimage.