Project

General

Profile

Development cycle » History » Revision 4

Revision 3 (Tom Clegg, 06/17/2011 03:38 PM) → Revision 4/14 (Tom Clegg, 08/12/2011 03:01 PM)

h1. Development cycle 

 h2. Getting the code base 

  git clone git@git.clinicalfuture.com:pgp-enroll.git 

 h2. Writing and contributing code 

 Start a branch like username/master or username/rails3 

  git branch example/rails3 
 git checkout example/rails3 

 Do something trivial like 

 * add app/views/pages/specimen_collection.html.erb 
 * add link to it in app/views/pages/home.html.erb 

 Commit it.    If you refer to the issue# in the comment, redmine will notice this and do smart things (e.g., link to the commit from the issue page). 

  git add ... 
 git commit -m 'description of stuff (closes #123)' 

 Push it 

  git push 

 Generate a pull request 

  git request-pull e68ab19^ git@git.clinicalfuture.com:pgp-enroll.git e68ab19 

 Send the pull request to someone like Ward 

 h2. Merging code from other contributors/branches 

 Fetch latest code in Add other developers branches developer branch if you don't have it yet 

  git fetch pull 

 List remote branches 

  git branch -a 

 Switch to the other branch 

  git checkout origin/example/rails3 

 (git will complain about being in a detached head state, but that's fine - just don't commit to this state) 

 Now look around, test 

  git log 

 Switch to production branch (set up with @git checkout --track origin/rails3@ if you haven't already) and make sure it's up-to-date 

  git checkout rails3 
 git pull origin rails3 

 Cherry-pick a commit 

  git cherry-pick e68ab19 

 Or merge the entire remote tree (this will fetch and merge but not yet commit) 

  git merge --no-commit origin/tomc/rails3 
 
 When you're happy,  

  git commit 

 Or rewind 

  git reset --hard rails3 

 Finally, push 

  git push