The developer has it own fork of the project, on which implements new features and bug fixes, when finished, it will be contributed to the main tree through a "Pull request", where a gate keeper will accept the changes or request for further changes. Once the "Pull request" is accepted, it will be merge into the main tree, which will go into production.
- Upstream: The main git tree of AEIST Mobile Backoffice (github.com/JoaoVasques/AEISTMobile-BackOffice)
- Fork: A clone of upstream in github, each developer has its own fork.
-
Developer forks in github AEIST Mobile Backoffice project to its own github fork.
-
Clones his/her github fork in the development computer (folder - $PROJECT).
-
Set up upstream repository as upstream to fecth and merge changes into master (http://help.github.com/fork-a-repo/)
-
Install Google App Engine for Python (https://developers.google.com/appengine/downloads)
-
Run:
dev_appserver.py $PROJECT
Remember never to commit to master, as otherwise you will not be able to fetch and merge correctly.
Note: It is very important that the developer never commits to master branch directly.
This process is started when a new feature or bug fix need to be added.
- Developer creates new branch in local (from master branch, usually).
- Commits changes in local to the feature branch.
- Pushes the new branch to the github fork after the first commit (git push origin branchname)
- Keep committing and pushing to github fork until feature complete. Time to time also fetch and merge from upstream, and perhaps rebase your branch (http://learn.github.com/p/rebasing.html) or merge from master.
- Creates "Pull request" to master branch in upstream.
- Gatekeeper checks the change. If accepted it will be merge to uptream, otherwise continue.
- Keep committing and pushing to fork until gatekeeper request completed. Go to 6.
In general the branch names will be:
engname/module/changedescription
as for example:
joaovasques/recreativa/new-event-image
http://www.python.org/dev/peps/pep-0008/
These are two good references:
https://github.com/erlang/otp/wiki/Writing-good-commit-messages
http://lbrandy.com/blog/2009/03/writing-better-commit-messages/
Do not include many different unrelated changes in the same commit. Try to do not make very small commits like fixing a semicolon.
Test your code before committing.
Do not include code of different modules of the software unless the changes are completely related.
Read github.com documentation at http://help.github.com for more!!