users@jersey.java.net

[Jersey] SVN, GIT or MERCURIAL for Jersey 2.0?

From: Marek Potociar <marek.potociar_at_oracle.com>
Date: Mon, 11 Apr 2011 14:30:45 +0200

Hey Folks,

For Jersey 2.x we are considering to switch our VCS from SVN into Git or Mercurial. Sticking to SVN is still an option
too. FWIW, here's my take on the topic:

- Functionality:

SVN meets most of our existing needs today, I do miss the agile nature of DVCS though and ability to fix a recent commit.

I don't have a clear DVCS winner. Mercurial is compact and easier to learn, esp. if one comes from the SVN background.
It has superior branching and merging support compared to SVN. It's branching concept however seems to be seriously
flawed as it is virtually impossible to delete named branches. Also, it is not as flexible as Git and configuring it's
extensions can be painful.

Git is faster than Mercurial, super flexible, and "unix-like" set of coherent tools sharing a common platform rather
being one compact piece of software. It is thus bendable to most esoteric work flows. Also it's merging algorithm is
...wait for it... LEGENDARY! :) Learning to get full use of Git however requires time (and practice).

- Documentation:

SVN and Mercurial both seem to provide superior documentation compared to Git.

- Tooling:

SVN has a great tooling support and so does Git. I don't have a significant experience with Mercurial, but I suppose it
will be on par with Git and SVN.

- Adoption:

SVN is very popular. Also Git appears to gain larger portion of mind share every day. Git community is very active and
visible, e.g. github.org is especially vibrant. It has almost 10x larger community than bitbucket.org for Mercurial.
Mercurial community seems to be both smaller and "quieter".

So, what would you, members of the community, prefer to use going forward?

[ ] SVN
[ ] Git
[ ] Mercurial

Please cast your votes!

Thanks,
Marek