Alex headshot

AlBlue’s Blog

Macs, Modularity and More

Distributed version control at Eclipse?

Eclipsecon Conference 2009 Eclipse

There's an on-going discussion on distributed version control for Eclipse at bug 257706. The discussion (and title) are heavily GIT focussed, but it's evolved into a more generic discussion on DVCS requirements on the whole.

There's clearly a chicken-and-egg thing with tool support for DVCS and the availability of the DVCS, not to mention the load on the resource-constrained admins of the Eclipse foundation servers. But it's bringing the discussion to a group of interested people about the pros/cons of those features generically.

One thing that a DVCS would do is to assist in on-going development of code which tracks the latest versions of Eclipse but which might not be held up by the committers resource availability to review. It would also help in the development of new code (say, objectiveclipse) which could allow concurrent development of new features which are not yet approved but whilst still tracking underlying changes to the platform itself.

The other point (raised by Doug in the CDT community talk) is that actually, all the commercial companies who ship on top of the Eclipse platform almost certainly have their own (internal) forks of the Eclipse codebase. Using DVCS upstream would facilitate a one-way (or two-way) interaction between up-stream and down-stream consumers of the platform.

Having a DVCS is more a question of when, rather than if, but there are discussions suggesting that an existing version control system is deprecated to take the resource. Since CVS is old and crufty, it's quite likely that that will ultimately be deprecated in favour of SVN, which in turn will be likely deprecated in favour of a DVCS in the distant future.

There's a bunch of different DVCS implementations - Git and Hg for example - and there's clearly going to be preferences one way or the other. Git probably has the momentum in some of the free software implementations (not the least of which is because it's used by the Linux kernel) but the Eclipse plugins for each DVCS have their own quirks. However, there are SVN-to-git mappers, so using something like that might be worthwhile; in fact, Apache have recently released, a read-only Git clone of the Apache SVN repository's projects. It's probably the case that Git will win out in the DVCS implementation choice at Eclipse, but it's far from likely that this will happen in the near future (although perhaps a review of the board after sufficient interest and post the July release trains might happen). Add your comments/thoughts/votes to bug 257706!

Those attending EclipseCon 2009 should consider attending Git BoF tonight, Wednesday for a general discussion about Git and DVCS in Eclipse.