You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

Before Committing

How to Commit 

  1. 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.
  2. For each commit, you should also update the CHANGES.txt, including which release this JIRA will go in and add details to the INCOMPATIBLE CHANGES section if it is an incompatible change
  3. Any patch that is applied and committed should have been previously uploaded to JIRA by the author. In certain scenarios, when fixing minor nits, the committer can make a change, upload the patch with the minor modification to JIRA and then commit the modified patch.

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 (<Contributor> via <committer id>)' // or just (<committerid>) if the committer is the 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 and ensure that the log contains just the new commit. It should not contain any "Merge" related messages.
git push origin master:master // push local master to remote master
 
// cherry-pick to another branch (example 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. 

Update the JIRA with the details to which branches the patch was committed. Please be sure to thank the author of the patch as well as any reviewers.

And then resolve the JIRA with the required Fix Version set. The Fix Version is based on the final branch of commit. For example, a commit to branch-0.5 will imply that the fix version is the next unreleased version of 0.5.x. A commit to master only implies that the Fix Version should be set to the next major release ( for now, 0.x are considered major releases ).  (Do not mark the JIRA as Closed. This will be done by the Release Manager after a release with the changes has been published )

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.

  • No labels