Git


 * See Download from Git if you want to checkout the MediaWiki repository for installation and/or development.

Instead of using Subversion for developing MediaWiki, we're now using Git. See "Wikimedia engineering moving from Subversion to Git" for a summary and see Git conversion for details.

If you had a Subversion account, you probably have a Git account - try to log in, and if you have trouble, speak up in.

Has MediaWiki migrated to Git?
Yes; see our plan for Git conversion for February and March 2012. There are some outstanding Git migration issues as to how to lay out the repositories and what effect it will have on some automated and semi-automated workflows.


 * TL;DR — a quick cheatsheet for basic tasks regarding mediawiki development using git/gerrit
 * Tutorial — a step-by-step tutorial explaining how to work with our system (basics, collaborating, and troubleshooting)
 * Workflow — Workflow for core and for any extensions or other tools that choose to use Git, Gerrit, git-review, etc.
 * Git/Tips — Tips for working with Git
 * Gerrit — Gerrit how-to's and tutorials
 * Gerrit project ownership — Getting privileges to merge new code in
 * Extensions queue — queue for moving extensions from Subversion to Git
 * Git/New repositories — How to set up a new Wikimedia Git repository for your extension
 * Conversion — Schedule for our Subversion-to-Git migration
 * Issues — Outstanding Git conversion issues
 * Git/Code review/guide - Guide for reviewers

The core has been migrated to Gerrit and can now be cloned either through HTTPS (read-only) or using SSH (writable).

Anonymous access (read-only): git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git

Authenticated access (writable): git clone ssh://@gerrit.wikimedia.org:29418/mediawiki/core.git

Browse the Git Tree for MediaWiki Dev.

In the case that you see "The requested URL returned error: 403" or "error: The requested URL returned error: 403 while accessing https://gerrit.wikimedia.org/r/p/mediawiki/core.git" you need to check your git client version git --version and upgrade to at least git 1.7, versions 1.7.9.2 and 1.7.9.6 are known to work.

Extensions
A list of extensions (as well as other repositories) can be viewed in in Gerrit. The repositories can be accessed by the following url pattern (the url is also shown on the gitweb overview of the repository (example for the Cite extension):



Separate
To check out an extension, clone the repository with your Git client of choice, or use the command line interface:

Universal
There is also a meta repository "mediawiki/extensions.git" where all repositories in the  namespace are tracked as git submodules. This is (obviously) a very large amount of data (if downloaded completely).

Before you can do this, you'll have to remove the default (empty) extensions directory. If you have anything in here, rename it temporarily and later merge the contents into the new extensions directory.

To set it up clone  https://gerrit.wikimedia.org/r/p/mediawiki/extensions.git :

Now you can either manually initialize extensions you need (this is an easy way to check out extensions once set up):

Or to get all 400+ extensions:

Go get a cup of coffee; it'll take a while to check out all the repos initially.

If you went with the meta-repo approach (which you probably checked out outside the mediawiki/core directory), be sure to put symlinks in place from within the extensions directory of your MediaWiki install to the individual extensions in your meta-repo clone.