Marco Schuster wrote:
Why doesn't Wikimedia switch to git for version control?
Why it should?
It's way more powerful than svn...
That is *very* questionable.
Subversion uses a client-server model, while Git uses a distributed model. That alone doesn't make Git any more powerful than Subversion, just different.
It is very common these days people who think that Git is the best VCS in the world, just because it was created by The Almighty Omnipotent Supreme Being Linus Torvalds, and then they try to persuade every single project using other VCSes to switch to a "superior" system. They ignore the technical aspects of each VCS, and force the same trousers to fit on everyone.
Git has many deficiencies compared to Subversion, that Git proponents usually ignore either because they never used anything else, or because they hold very strong emotions towards anything that Torvalds says.
I have used lots of different VCSes, from CVS to half all those distributed VCSes that popped up the last two years, and in my not-so-humble opinion, Subversion is still a very good match against most of them.
MediaWiki is using Subversion for some time now, and it is serving their developers fine. Converting everything to Git just because "it's way more powerful" is just stupid. Not only it would require a lot of additional manpower to convert the repository (because neither git-svnimport nor git-svn do a good job at converting, without very good babysitting), it would require all developers to learn to use a new different tool.
I think about something like the linux-wireless devs do: They base on linux tree, and add their code to their own repo; but if something gets changed in Linux kernel repo, it gets into linux-wireless automatically => you can check out a full kernel from linux wireless.
Git was designed to serve the kernel developers, so it makes a lot of sense to use Git for the linux-wireless project. But MediaWiki is not Linux. Each project has its own needs.
So why don't we make one git repo for the main code, and for every extension/project/whatever another one, which bases on the MW repo?
No, that wouldn't fit nice on MediaWiki.
In MediaWiki repository, since 1.10, branches and tags carry both MediaWiki core (phase3) and extensions directories, so you go into, e.g. REL1_11 branch, you have both core and extensions that are supposed to be compatible with each other.
In Git, you would be either forced to use a single repository for each extension, what would kill this single branch convenience; or have a huge repository for everything, being forced to download the entire repository even if the only thing you need is the core, since Git doesn't allow partial checkouts.
If you really want to use Git, nothing prevents you from using git-svn on your computer to access MediaWiki repository. Or better yet, use SVK, that plugs really nice to the Subversion repository, is distributed, and properly supports Subversion features.
And the following articles make a very good read: http://blog.red-bean.com/sussman/?p=20 http://blog.red-bean.com/sussman/?p=79 http://svn.haxx.se/dev/archive-2007-06/0780.shtml