The Xen hypervisor is now officially in git.
There’s a single repo with a branch corresponding to each old xen*.hg tree:
New git branch Old mercurial tree master xen-unstable.hg stable-4.0 xen-4.0-testing.hg stable-4.1 xen-4.1-testing.hg stable-4.2 xen-4.2-testing.hg staging staging/xen-unstable.hg staging-4.0 staging/xen-4.0-testing.hg staging-4.1 staging/xen-4.1-testing.hg staging-4.2 staging/xen-4.2-testing.hg
Previously many (if not most) of the committers were using git themselves, and sometimes even inviting git-using contributors to provide their patch series as a public git branch.
While git’s user interface does have its critics (which include me!), its rich functionality, flexibility and performance are making it the power user’s dvcs of choice. Even if you accidentally shoot yourself in the foot (or vaporise your leg) due to some ill-considered command line syntax, there will be a way to recondense the vapour cloud back into a leg and stick it back on. As a friend of mine said recently, while you might either love or hate Marmite, with git many people both love and hate it.
So, anyway, after consultation and coordination, on Thursday we made the switch.
What used to be the official mercurial trees are now readonly mirrors. Contributors and downstreams who prefer to use mercurial can continue to use these, and of course submit patches using mercurial rather than git. So non-committers can indeed ignore this if they want to.
However, one benefit of officially switching to git is that there is now one very officially blessed git history. This means that it will be somewhat easier for git-using contributors to share patch series. But the main benefits are to committers.
The automatic testing system has needed some reeducation to cope, and is still suffering from some recidivism. The push gate for Xen 4.1 broke when it tried to push, and the bisector has been very confused. But this and any other problems should be sorted soon.
Personally, with my committer hat on, I’m already enjoying the convenience of having a single git tree containing all the Xen branches I deal with. And I’ve found that git’s tools for extracting patches from email and applying them are an improvement over what I was using before.