Update: Doh! Sorry for flooding everyone’s feed readers with my epic post. Evidently WordPress ignored my “more” tag. I think I ran into this problem before…
Update 2: Retracted the meaningless Google Trends point. Thanks to commenters for pointing out how meaningless it was. I still feel like git has a much stronger web presence than bzr or hg, but its just another one of the many “gut feelings” in this post.
The DVCS wars have been raging for a while now, and in case you haven’t been keeping score, git is winning. Admittedly I have no proof and don’t even know if proof is possible, but I have some good evidence of git’s march toward VCS dominance:
- Git dominates every other DVCS by an order of magnitude among Debian packages (that link to their upstream repository).
- A recent survey of Gnome developers found an overwhelming support for Git over other VCSes.
Git dominates Google trends.Speaking of Google, they have 4 Tech Talks on Git, and absolutely none for bzror hg. Update: hg has one – see comments.- Why Git is Better than X – More than the site, the lack of popular counter-argument sites springing up leads me to believe hg and bzr don’t have nearly as fanatical of supporters.
Also note some of the major upstream projects using each DVCS:
Communities
Git seems to be attracting the most diverse communities as well:
Git: Linux Kernel, X.org/FreeDesktop, Ruby on Rails
Bazaar: Ubuntu, Ubuntu, Ubuntu
Mercurial: Pythonistas, projects that need better Windows support than Git offers
Once again I don’t really have any stats to back up these assertions, they’re just my biased observations.
Personally…
I tried learning Git soon after it was first released and failed like so many others. Unlike many of those others, I never went back to give it another shot.
Next I learned Bazaar and felt comfortable in it almost immediately. Now I use Bazaar as my preferred VCS and quite like it mainly because it works well and was very easy to learn. I know its not the fastest, but its so far from being a bottleneck in my development process I don’t notice.
I learned Mercurial for work and use it at least as much as Bazaar, but I’m not sure why anyone would use it over Bazaar. I think people who learned Mercurial first think the same thing about Bazaar.
And perhaps thats part of why Git is winning. It seems fundamentally different from the other two which is probably why its the only 1 of the 3 I haven’t learned.
THE FUTURE!!!!!!!11
I actually don’t plan on learning git any time soon. My time for playing with new technology is currently taken up testing nginx, spawning, and FastCGI.
I suspect thats the norm as well: people who already know a DVCS probably aren’t looking to migrate between them. The few that are, are probably moving to Git.
I think we’ll see the current trend of Git’s lead widening over bzr and hg as well.
However, I don’t see the war ending anytime soon. The fact of the matter is all 3 of them are great and the weaker DVCSes have already fallen prey to evolutionary forces (monotone, darcs, etc).
Flamebait
What are your thoughts on my completely contrived DVCS War? Which do you prefer? How many do you use? Are my assumptions about popularity (in particular the various communities around each) accurate?
I wish Ohloh or cia.vc gave VCS usage statistics, although I’m not even sure they record that data.
Tags: bzr, dvcs, git, hg, version control
git doesn’t need _better_ windows support – that would imply it has at least some form of windows support – and it doesn’t have any!
I forced myself to learn before there was this great book ( http://www.amazon.com/Pragmatic-Version-Control-Using-Git/dp/1934356158/ ) and now I’m addicted to the speed, cheap branches and GitHub.
I haven’t used any of the other DVCS, but then again I haven’t found a compelling reason why I should.
Anyways, nothing really useful to add it seems.
@john
http://code.google.com/p/msysgit/
or
http://www.cygwin.com/
If you have fun using git, you should also try InDefero http://www.indefero.net this is a clone of GoogleCode with more features and a git backend for the source. I really like it, but I am biased, I coded it
@john: before opening mouth, use google.
http://kylecordes.com/2008/03/22/git-windows-works/
http://code.google.com/p/msysgit/downloads/list
Doesn’t Hg used by OpenSolaris too ? I am using bzr for community project, because there was some request to use Launchpad, and hg for personnal projects or “/etc” versioning on my servers. I don’t use git, but this is because I do not need it.
I have always been partial to hg (“pythonista”), but the very polished github (for intstance the Pages-feature) and active projects there made me use both. Don’t know if I would switch completely, depends if bitbucket-like services catches up in time. General impression: learing_time&curve hg < learning time&curve of git.
If you want to compare Git and Mercurial (hg), just compare:
http://whygitisbetterthanx.com/ (mentioned in your post)
vs.
http://whyhgisbetterthanx.com/
I must say that I agree with the latter!
Forget about your Google trends link.
Git or Mercurial have both “common names”. Too short for Git, too confusing for Mercurial.
So I looked at the google trends link…
First, in the “picked up news” I can read things like “Mercurial brilliance in the am” or “New Git-R-Done beer named for comedian”. Doesn’t look they’re about open source software at all.
And then, I saw trends by regions. I look like “Git” is especially searched in turkey, “by an order of magnitude” !
So I use google search engine configured for turkey only. And I quickly found that all the links were about that : http://tr.wikipedia.org/wiki/Git
So, it look like Google trends can’t help anything here…
(Moreover, the fact that hg is as used as Mercurial while Git is only used as Git make Google trends biased)
I’m suspicious of the Google Trends results for two reasons.
1. Look at the breakdown by language. git and hg are close in all languages except Turkish where git dominates by a huge margin. Perhaps ‘git’ means something in Turkish?
2. The news reference volume is almost certainly meaningless; the listed news articles are almost all unrelated to DVCS.
@Kent: Yeah I probably shouldn’t have included them. I wanted to some how quantify git’s web presence. Perhaps linking to searches for “X project hosting” would have been more meaningful as thats what first led me to notice how much more popular git was. Git has a few extremely popular public hosting options. I had a difficult time even getting bitbucket to show up in search results.
In hindsight I should have just left the Google bullet point out. Sorry!
@John Bolt: Ha! I love the hg web site. Very clever. However, I would argue whygitisbetterthanx.com is actually a pretty useful little site. Its a great summary of high-level differences between the most popular VCSes.
Anyone have comments on the communities aspect? Sounds like “hg is for Pythonistas” and “bzr is for Ubuntu/Launchpad” have been confirmed a bit…
@Loïc d’Anterroches
Wow, this looks really slick, how have not seen this before?
The poor decision to remove support for “more…” in WordPress RSS feeds was made some time ago; see this support topic for more details:
http://wordpress.org/support/topic/179357
I installed this plugin last week, and turned off all of its features *except* for its honoring of the “more” tag when building your RSS view, and now my feed looks great:
http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/
Enjoy!
If you’re, like me, on Windows and using a DVCS to work on a SVN repository, stay away from Git. Git-SVN is ABSURDLY slow on Windows, and the latest msysgit version doesn’t include git-svn.
Oh, I forgot to mention the Google Tech Talk about Mercurial:
http://video.google.com/videoplay?docid=-7724296011317502612
Yes, it’s time to learn Git.
I’ve used both Mercurial and Git to manage about 100 KSLOC worth of code on about 10 projects. I usually end up as the version control lead on projects, so I get to know these tools pretty well.
I’ve used Mercurial for over a year. It’s a solid, well-designed, beautifully-documented and very friendly program.
I’ve used Git for half a year. I regularly find it infuriating, confusing, poorly-documented, inconsistent, and until recently, also frequently broken.
However, I’ve chosen to do almost all my work in Git these last months because:
1. Git’s history rewriting features are fantastic — especially the interactive rebase — and are very useful for producing clear, succinct commits. Mercurial’s rebase is poorly done and mostly useless.
2. Git’s named branches work the way I want. Mercurial’s named branches is poorly done and mostly useless, e.g., you can’t delete or rename branches, so you’re constantly having to spawn new directories for doing feature-per-branch development to get around these limitations on named branches, which is obnoxious. The Mercurial 1.1 “bookmarks” feature helps somewhat but isn’t in the same league.
3. Git’s bidirectional SVN support works like it’s supposed to. This is vital for the many projects I collaborate on that have stuck with Subversion. Mercurial’s SVN support is import-only, which means there’s no way to commit a series of changesets back.
Just by themselves, these three features make all of Git’s annoyances worth it.
@Silas, this is a fairly new project, just started it this summer.
For the people who prefer Mercurial over git, do not worry, InDefero supports both of them and even Subversion (nice to share documents with Windows users).
[...] michael schurter good good study, day day up « Time to Learn Git? [...]
Indeed, it is time to learn Git! Thanks for showing up to tonight’s Refresh Portland. I hope it was helpful.
[quote]The DVCS wars have been raging for a while now, and in case you haven’t been keeping score, git is winning.[/quote]
The only thing winning atm is the git rabid users base.
BTW, you just forgot to mention OpenOffice, Python Programming lang, Go Programming Lang, Dovecot IMAP Server, Vim and Xen Virtualization which are some majors open sources projects I know are using mercurial.
@Igal Koshevoy
Learnning Git is easy, you may not have read this free online book:
http://progit.org/book/
with it I am finally familiar with Git in 2 days.