Download from Git


 * Starting with MediaWiki 1.18.2, MediaWiki core and many extensions use Git for version control rather than Subversion.

Git is distributed version control software that allows users to download the very latest version of a branch, without having to wait for someone to get around to packaging it. MediaWiki will release faster, and it'll be easier for you to update your installation, roll back an upgrade, or submit patches. (Of course always remember official stable releases are less risky.)

See Git for more details, particularly for making contributions. Below are some quick directions for a couple common tasks.

Prerequisites
You must have Git installed before you can use it. There are many different ways to acquire Git, depending on your operating system. For source and official binaries, check out http://git-scm.com. For alternative ways to install Git, use your favorite search engine to find instructions for your operating system.

Download


You can currently download MediaWiki core (phase3 from SVN) using Git, as well as any extension currently installed on the Wikimedia Foundation server cluster. By July 2013, all extensions will either be available using Git or move to alternate version control hosts.

Specific MediaWiki versions
First, clone the MediaWiki core.

Enter in the following on your command line: git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git

If you have a Wikimedia Labs/Git/Gerrit account: git clone ssh://@gerrit.wikimedia.org:29418/mediawiki/core.git


 * View latest source code

WMF branches
WMF Branches are used to track the MediaWiki versions used on the Wikimedia Foundation server cluster. The latest may not be entirely stable, but they receive very quick bug fixes and are generally stable enough - after all, these are what major projects such as Wikipedia are using. Once a REL* branch is considered 'stable', we 'tag' it and turn it into a tarball release.

To see what branches are available, you switch into your MediaWiki clone and issue the following command: git branch -r | sort -V

Major releases are denoted by 'origin/REL ', e.g. 'origin/REL1_18'. To switch to a particular release branch: git checkout origin/REL

MediaWiki tags (stable version)
Alternatively, specific stable versions of MediaWiki are tracked using 'tags'. These are analogous to the tarball releases. You can see the versions available with: git tag -l | sort -V Using non GNU sort command, such as on Mac OS X, you have to rely on the good old separators: git tag -l | sort -n -t. -k1 -k2 -k3` 

To use a specific tag: git checkout

Latest development version of MediaWiki
To clone a copy of the latest version of MediaWiki in development, just use the following command (same as above): git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git

Keeping up to date
If you using a particular branch or the development version of MediaWiki, picking up the latest changes is really easy. Change into your MediaWiki clone directory and issue the pull command: git pull All of the latest changes for the branch you are using will be applied.

Switching to a different version
Switching to a different version of MediaWiki is far simpler with Git than with SVN. Each of our versions are tracked as branches or tags. In order to switch to one of these, all you have to do is 'checkout' the particular branch or tag you want from within your MediaWiki clone directory: git checkout Or git checkout The changes will be applied automatically and you will be all set to go.

Download
To download an extension from Git, clone it like this:

REPONAME should be replaced with the name of the extension you want to download, without spaces. For example, for Extension:Proofread Page, it would be ProofreadPage.

To get any extension: git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/.git

If you have a Wikimedia Labs/Git/Gerrit account: git clone ssh://@gerrit.wikimedia.org:29418/mediawiki/extensions/.git

You can see the latest source code by going to here: https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/extensions/.git;a=tree;h=refs/heads/master;hb=master