Jump to navigation Jump to search
Other languages:
This is a very short (tl;dr) how-to guide to using Git and Gerrit for MediaWiki development. For a tutorial which includes explanations, see Gerrit/Tutorial .

Get the code: (Replace gerrituser by your UNIX shell username as shown in your Gerrit settings)

For MediaWiki core:
git clone ssh://<username> mediawiki
Or, for an extension:
git clone ssh://<username><extension>.git
Or, for a skin:
git clone ssh://<username><skin-name>.git

Write and send new code:

git review -s # This sets up git review on the new cloned repository.
git checkout master
git pull
git checkout -b <meaningful-branch-name> # Branch naming tips are available.
# Now write some code. See the Git commands "add", "rm" and "mv" to add, remove or rename files. When the code is tested and you're ready:
git commit --all # In the Gerrit world, you should do this only once per branch! Remember to follow the commit message guidelines.
git show HEAD # Make sure that you are sending what you want to send. Press "q" to quit.
git review -R # This sends your code to Gerrit.

Add potential change reviewers:

On Gerrit, click your change to open it. Under "Reviewers", click the "Add Reviewer" button. Write a reviewer name in the input box. If you don't know who to invite for reviewing, try the maintainer for the component you've edited, or ask on IRC (#wikimedia-dev connect).

If the reviewer asks you to make a change, make it and amend your commit:

git review -d <change ID or URL of patch> # e.g. 1234 in or
# Make the needed changes to the source files. See the Git commands "add", "rm" and "mv" to add, remove or rename files.
git commit --all --amend # You can do this more than once. You can change the commit message, but make sure to leave the "Change-Id" line intact.
git review -R # This creates a new patch set in the same Gerrit change, and sends an invitation to review the code again.

To review other people's code, just follow the same steps to amend a change described above, using the corresponding <change ID>.