I haven't done any rockbox hacking in a while (other than changing the keymap
on new releases to work around the broken REC button on my X5) but I have
served as lead developer on two projects in my company in the last several
years. I transitioned one of those projects from Subversion to Mercurial and
I thought my experiences might be helpful to this discussion.
First, the benefits of a DVCS in our case was significant, given that we were
not always able to work on our network. There are other benefits as well but
I won't go into them here (there's plenty of that on the web). There are
definitely some good reasons to switch to a DVCS and it's certainly
worthwhile to consider it for rockbox.
Disclaimers: When I switched my project to Mercurial I only considered git
and Mercurial so my comments apply mainly to them. (However, from what I
hear Bazaar is also quite good and very similar.) I chose Mercurial
obviously and I've now been using it exclusively both at work and on my
personal stuff for several years so I obviously have a bias and I also may
not be aware of recent advances in git.
Some folks have implied that git has a leg up because it's more popular and
more people know it. I don't think that's a real issue. The feature set AND
command set of both tools (and Bazaar as well, I believe) are so similar that
anyone switching between them can be up to speed in minutes. There's also a
good amount of support for Mercurial in tools and web sites, etc. (there
certainly isn't enough of a deficiency to make this a significant issue). I
don't think that git's popularity is a wise reason for choosing it over
The transition of the actual repository data is pretty easy and doesn't take
very long. In my case I did a one time import from Subversion into
Mercurial. All history came through, etc., and we've never looked back.
Some folks are rightly concerned about gui tools. While Mercurial doesn't
have as many tools as git or Subversion, it does have the excellent
TortoiseHG tool (a port of TortoiseSVN) which works on both Windows and Linux
(and elsewhere). It integrates with Windows Explorer and Gnome Nautilus
(which, of course, can also be run under KDE, etc.) and the latest versions
now have an excellent stand-alone "workbench" tool that can track multiple
repositories. Other tools (like IDEs and meld) have Mercurial support and
more are adding support. I have certainly not felt burdened by a lack of
tools (gui or otherwise).
Mercurial and TortoiseHG are written in Python so obviously they can go
anywhere that Python can and should work right out of the box. (Meld,
incidentally, is also written in Python; significant given how important a
diff/merge tool is.)
Command line Mercurial works well pretty much everywhere, including Cygwin (I
think it can also be used from the Windows command prompt but I haven't tried
Mercurial is also very well documented for end users.
Lastly, I'll mention the reasons that I chose Mercurial over git. These may
not be important to everyone but, obviously, they were to me (and I think
others will likely agree). There were essentially two reasons that made the
difference for me: (1) given the brash way in which Linus introduced git to
the world and continues to promote it, I perceive it as having a certain
level of political baggage which I just don't want to be bothered with; and
(2) Mercurial appeared to follow a superior design and development process;
it just seemed better thought-out and planned and I like that it consistently
uses Python (whereas git seems to be a bit of a mishmash).
One other thing which, admittedly, is a bit silly: I kinda like the notion of
using the chemical symbol for Mercury (hg) as the command name (not to
mention it's easy to type)... ;)
So, anyway, to each his own and all that and I hope this was helpful someone,
Received on 2011-06-02