Before Committing
- Before committing a patch of one JIRA, you should first get +1 from at least 1 other committer.
- You should work on this repository which is writable https://git-wip-us.apache.org/repos/asf/tez.git
How to Commit
- First you need to ask yourself, which branch you need to commit into ? Usually you should commit it to master, if there's one release based on another branch, you should also commit into that branch ( use cherry-pick as below ). If you are not sure about this , send a message to the Tez developer mailing list,
- For each commit, you should also update the CHANGES.txt, including which release this JIRA will go in and whether it is an INCOMPATIBLE CHANGES
Usually you will create a separate branch for your JIRA you are working, you can also work on master directly if you think the JIRA is pretty simple. Here I assume you are working on a separate branch. e.g TEZ-100
git pull origin master // pull master each time before you commit git branch TEZ-100 git checkout TEZ-100 ... // work on jira, don't forget update CHANGES.txt git commit m 'TEZ-100. JIRA Title (author)' // please follow this format of commit message git log // check whether the commit is succeeded git checkout master git merge TEZ-100 git log // check whether the merge is succeeded git push origin master:master // push local master to remote master // cherry-pick to another branch (branch-0.5) git log // copy the hash value of the commit you want to cherry-pick git checkout branch-0.5 git cherry-pick -x ${HashValue} // don't forget the "-x" git log // check whether the cherry-pick is succeeded, you should see logs like this, the last line will only show when you add "-x" // commit eb054c8cd26144d83b6b3d91c8d5d3dd882f6ae0 // Author: Hitesh Shah <hitesh@apache.org> // Date: Sat Oct 18 09:35:15 2014 -0700 // TEZ-1683. Do ugi::getGroups only when necessary when checking ACLs. (hitesh) // (cherry picked from commit 83b0c3db9777dc4ebe76963571d4be4ce6985873) // Resolve the conflict if the cherry-pick fails sometimes // After you resolve the conflict, call the following command git cherry-pick --continue git push origin branch-0.5:branch-0.5 // push local branch-0.5 to remote branch-0.5
After Committing
When you complete the committing, you'd better to check the repository https://git-wip-us.apache.org/repos/asf?p=tez.git;a=summary whether the commit is pushed correctly.
Then add comments to the JIRA which branch you committed.
And then resolve the JIRA (Don't close it, release manager will close it after it is released )
Your first commit
Once you become Tez Committer, you should have commit access to tez repository. You should first create a JIRA ticket for adding yourself to team list and take this as your first commit.
The instructions of how to update Tez website is here Updating the Tez Website
The first time you commit, you may need to enter username and password. For the subsequent commits, you don't need to do that.