Dear Wiki user, You have subscribed to a wiki page or wiki category on "Hadoop Wiki" for change notification.
The "HowToCommitWithGit" page has been changed by karthikkambatla: https://wiki.apache.org/hadoop/HowToCommitWithGit?action=diff&rev1=24&rev2=25 Patches should be rejected which do not adhere to the guidelines in HowToContribute and to the CodeReviewChecklist. Committers should always be polite to contributors and try to instruct and encourage them to contribute better patches. If a committer wishes to improve an unacceptable patch, then it should first be rejected, and a new patch should be attached by the committer for review. - == Commit == + == Commit individual patches == - Hadoop uses git for version control. The writable repo is at - TODO + Hadoop uses git for version control. The writable repo is at - https://git-wip-us.apache.org/repos/asf/hadoop.git ==== Initial setup ==== We try to keep our history all linear and avoid merge commits. To this end, we highly recommend using git pull --rebase. In general, it is a good practice to have this ''always'' turned on. If you haven't done so already, you should probably run the following: @@ -40, +40 @@ ==== Committing a patch ==== When you commit a patch, please follow these steps: 1. '''CHANGES.txt:''' Add an entry in CHANGES.txt, at the end of the appropriate section. This should include the JIRA issue ID, and the name of the contributor. - 1. '''Commit locally:''' Commit the change locally to the appropriate branch (should be ''master'' if it is not a feature branch) using {{{git commit -a -m <commit-message>}}}. The commit message should include the JIRA issue id, along with a short description of the change and the name of the contributor if it is not you. ''Note:'' Be sure to get the issue id right, as this causes JIRA to link to the change in git (use the issue's "All" tab to see these). Verify all the changes are included in the commit using {{{git status}}}. If there are any remaining changes (previously missed files), please commit them and squash these commits into one using {{{git rebase -i}}}. + 1. '''Commit locally:''' Commit the change locally to the appropriate branch (should be ''trunk'' if it is not a feature branch) using {{{git commit -a -m <commit-message>}}}. The commit message should include the JIRA issue id, along with a short description of the change and the name of the contributor if it is not you. ''Note:'' Be sure to get the issue id right, as this causes JIRA to link to the change in git (use the issue's "All" tab to see these). Verify all the changes are included in the commit using {{{git status}}}. If there are any remaining changes (previously missed files), please commit them and squash these commits into one using {{{git rebase -i}}}. 1. '''Pull latest changes from remote repo:''' Pull in the latest changes from the remote branch using {{{git pull --rebase}}} (--rebase is not required if you have setup git pull to always --rebase). Verify this didn't cause any merge commits using {{{git log [--pretty=oneline]}}} 1. '''Push changes to remote repo:''' Build and run a test to ensure it is all still kosher. Push the changes to the remote (main) repo using {{{git push <remote> <branch>}}}. + 1. '''Backporting to other branches:''' If the changes were to trunk, we might want to apply them to other appropriate branches. - 1. If the changes were to master, cherry-pick the changes to other appropriate branches via {{{git cherry-pick -x <commit>}}}. The -x option records the source commit. Make sure to resolve any conflicts. + 1. Cherry-pick the changes to other appropriate branches via {{{git cherry-pick -x <commit-hash>}}}. The -x option records the source commit, and reuses the original commit message. Resolve any conflicts. + 1. If the conflicts are major, it is preferable to produce a new patch for that branch, review it separately and commit it. When committing an edited patch to other branches, please follow the same steps and make sure to include the JIRA number and description of changes in the commit message. 1. Resolve the issue as fixed, thanking the contributor. Always set the "Fix Version" at this point, but please only set a single fix version, the earliest release in which the change will appear. '''Special case'''- when committing to a ''non-mainline'' branch (such as branch-0.22 or branch-0.23 ATM), please set fix-version to either 2.x.x or 3.x.x appropriately too. This How-to-commit [[http://www.youtube.com/watch?v=txW3m7qWdzw&feature=youtu.be|video]] has guidance on the commit process, albeit using svn. Most of the process is still the same, except that we now use git instead. @@ -71, +73 @@ }}} Changes to website (''via svn up'') might take up to an hour to be reflected on Apache Hadoop site. - - == Backporting commits to previous branches == - - If a patch needs to be backported to previous branches, follow these steps. - 1. Commit the changes to trunk and note down the revision number, say 4001. (Revision number is displayed as response to your ''svn commit'' command). - 2. Check out the desired branch and execute this command from the root directory. {{{ - svn merge -r 4000:4001 https://svn.apache.org/repos/asf/hadoop/common/trunk . - # Now resolve any merge conflicts. - # If major edits are needed, produce a new patch and upload it to the JIRA. - svn diff CHANGES.txt # get all JIRA numbers included in this merge - svn commit -m "merge <list all JIRA numbers here>" - }}} - - Please be sure to include JIRA number(s) in the commit message for merge commits. Sometimes developers just put something like "merge -r 4000:4001" in the merge message, which fails to trigger the JIRA/Subversion integration, so the JIRA doesn't record the branch commit. It is important to link to the JIRA number, so that when looking at the JIRA it will be clear that this patch has been merged to this branch. == Patches that break HDFS, YARN and MapReduce ==
