Page 1 of 14

Git, Mercurial or Bazaar - which do you use most?

Posted: Sun Oct 18, 2009 3:00 pm
by sinbad
I've been pondering the use of distributed version control for Ogre development for some time now, because I could see the potential for making it easier to deal with community contributions and generally allowing a more flexible workflow in the wider community (the 'official' repository will remain mostly the same in practice, but contributors will have more options and merging contributions should in theory be easier).

It has really come to a head recently, since Sourceforge's SVN servers have been getting slower and slower in recent weeks. The worst case of this is when I'm trying to deal with significant merges - such as the Google Summer of Code branches - but also when I was changing the license text it took a huge number of attempts to get the commits done, because of timeouts and other connection drops. Also the problems with SVN's way of merging have caused many issues that I've had to fight with - sometimes it screws up the adds/deletes, sometimes it gets confused over the ancestry, especially when you have bidirectional merges, sometimes it corrupts its own checksums or doesn't set mime-type properties correctly because of some weird merge issue. In all, I've probably wasted about 15 hours or more in the last month alone just dealing with problems with the Subversion server and merge errors. In short, I've had enough. I still like Subversion for private projects, but it's clear that it's too slow on shared systems and its merge techniques actually appear to screw up more often than CVS used to. In a public project that keeps getting bigger, it's a liability.

So, that means I want to switch to a DVCS as soon as possible. The question is, which one? I have an evaluation process in the works right now where I'm evaluating the practical usage, but clearly in an open source project it's important to take into account what the community is generally already using. So, I'd like you all to indicate above which of the three systems above you're already using. If you're not already using any of them, please don't vote - I'm looking for practical usage statistics here, not theoretical preferences. If you use more than one, please vote for the one you use the most, or if that's equal, the one you prefer using.

Thanks!

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Sun Oct 18, 2009 3:21 pm
by mirlix
I tried both, git und mercurial. Used each one in one project and after that decided that I liked mercurial more. I testet it only on windows mit tortoise, so I cant say if I woudl have picked git on linux. But on Windows I like tortoisehg more and it was a lot easier to use it and transfer already learned concept from cvs and svn over to hg. With git I always had some sort of stupid eror message I didnt understand or a function didnt do what I expected. Of course I could have taken the time to learn git, but I like to spend my time programming not learning to use my version control tool.

I would just test all alternatives and then decide which you like more.

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Sun Oct 18, 2009 3:55 pm
by _tommo_
I use Mercurial with bitbucket for my team project, and it's the first time i used some versioning system... so eveything i say below could be due to inexperience and mistakes :D

anyway i found it really awkward to manage multiple contributors, its distributed nature works really well with few people that manage isolated chunks of project, but fails too often when you try to manage multiple merges from many trunks by many contributors.
Changes from local commits keep stacking locally, diverging each trunck more and more... so that when you push/pull you have a load of unrelated changes to merge, so we always couple commit+pull effectively emulating SVN.
In particular it is absolutely unpredictable when more than one people make changes to the same file... i found often faster to have the new code via MSN and merging it by hand.
And this with me and my teammate...

Overall i like Bitbucket+HG very much, as that problems are easily avoidable in a small team... but i could not think of the mess you could get with Ogre's workers amount :D

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Sun Oct 18, 2009 3:58 pm
by Duncan Mac Leod
I am a die-hard GIT User since October 2005 (almost 4 years now), so I voted for GIT 8) ...

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Sun Oct 18, 2009 4:14 pm
by jacmoe
Seriously, Sinbad:
This poll is sort of useless :D
We all know that 'everybody uses Git these days' .. :wink:

But, I voted Mercurial, because that's what I use.

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Sun Oct 18, 2009 4:19 pm
by oiking
What about "none"? :-)

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Sun Oct 18, 2009 4:57 pm
by sinbad
jacmoe wrote:Seriously, Sinbad:
This poll is sort of useless :D
We all know that 'everybody uses Git these days' .. :wink:

But, I voted Mercurial, because that's what I use.
I'm deliberately avoiding that kind of assumption, since while Git users tend to be more vocal in their advocacy, it doesn't necessarily mean there are actually more of them.
oiking wrote:What about "none"? :-)
You vote for that by not voting at all :)
_tommo_ wrote:Changes from local commits keep stacking locally, diverging each trunck more and more... so that when you push/pull you have a load of unrelated changes to merge, so we always couple commit+pull effectively emulating SVN.
Practical usage issues like this are useful to know about. I have to admit that I started with very much an anti-Git stance, but the more I test scenarios, the more I realise the purpose of some of the more esoteric options it has - such as the ability to alter your local history to consolidate for upstream submission, and the use of purely local branches to better control what gets included in a push. I'm including awkward (but nevertheless realistic) scenarios to make sure I have a good handle on the ease of use of each system for all purposes, not just the simple everyday ones.

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Sun Oct 18, 2009 5:02 pm
by thefreeman
A friend and I were looking at a couple of DVCS a while back to use in an Ogre-based project of ours. We eventually decided to use Git, although we found that both Mercurial and Git support the features we require. However, we had an issue with Mercurial: we happened to have a generated source code file in our project that was quite large, 15MB about, and Mercurial repeatedly crashed :roll: when trying to commit the file. This dismayed us a bit and therefore we settled on Git.

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Sun Oct 18, 2009 5:29 pm
by joew
I voted that we use Git. I transitioned both of our current projects in production from SVN to Git roughly four months ago because we have a few employees that work remote as well as contractors, so the benefits of DVCS were obvious. I chose Git because I had used it in the past with other OS projects in my free time and I found it quite good and met all of our needs. Mind you I've only used Git from the command line on both windows and OSX so I really have zero knowledge of the GUI tools.

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Sun Oct 18, 2009 5:58 pm
by Klaim
I didn't vote because I only started using Mercurial on a new project so I don't have yet relevant experience. I read a lot about Git and Mercurial and would like to try them all as the differences are not totally clear for the moment. I just guess that Git is a bit more "flexible" and that makes it require a bit more knowledge and organisation than Mercurial or Bazaar ( Git looks a lot like C++ but in the source control world...).

Anyway for a new little project I started using Mercurial. In fact I decided to try Mercurial first for the sole reason that Google Code Project Hosting support it at the moment. I didn't want to use Git Hub or Bit Bucket because of the disk space limitations so after getting SourceForge out of the way for performance reasons, I decided to go with Mercurial on Google Code.

For the moment, only the macOs guis for Mercurial made me have big doubt about my choice. As far as you use command line, no problem. But I'll have to work with non-programmer people that works on several platforms on all my projects so I need gui support...

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Sun Oct 18, 2009 6:11 pm
by sinbad
Klaim wrote:For the moment, only the macOs guis for Mercurial made me have big doubt about my choice. As far as you use command line, no problem. But I'll have to work with non-programmer people that works on several platforms on all my projects so I need gui support...
Yes, I've observed this, and it was unexpected. Murky is the best Mac GUI for Mercurial that I've found, but it's still quite limited (no branch or merge commands). GitX is a little better, although it has no merge command (but has branch at least). For some reason the Mac side is a little underdeveloped on all the DVCS's so far, there's definitely a gap in the market for a Versions equivalent.

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Sun Oct 18, 2009 6:45 pm
by xavier
oiking wrote:What about "none"? :-)
Agree with "None of the above" option.

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Sun Oct 18, 2009 6:51 pm
by sinbad
xavier wrote:Agree with "None of the above" option.
I don't really see the point. The purpose of this exercise is to see which out of the 3 main DVCSs more people in the community are already using. Those who aren't using one at all have zero effect on the relative popularity, so why count them? It's like asking vegetarians to vote in a poll to find out which meats are most popular. ;)

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Sun Oct 18, 2009 6:56 pm
by xavier
Poopularity *snicker* ;)

I would think that this is less about "which meat should I sell" and more about "should I sell meat at all" -- if a vast portion of the Ogre userbase doesn't use a DVCS at all, that would seem relevant to me. The poll seems to presuppose that everyone uses one flavor or another.

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Sun Oct 18, 2009 7:00 pm
by Klaim
I think it only presupose that Sinbad decided to go with DVCS anyway.

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Sun Oct 18, 2009 7:04 pm
by sinbad
xavier wrote:Poopularity *snicker* ;)
Fixed it, but too late obviously. Darn, there goes all chance of making a serious point ;)
I would think that this is less about "which meat should I sell" and more about "should I sell meat at all" -- if a vast portion of the Ogre userbase doesn't use a DVCS at all, that would seem relevant to me. The poll seems to presuppose that everyone uses one flavor or another.
No, I'm sure there are plenty of people who have never used any DVCSs (me included not that long ago), I'm only asking those people to sit this one out. I'm interested in guaging how many people would already be familiar with each of the potential options above. For people who have never used any of them, they're all going to be new to learn anyway, so it doesn't matter which of the 3 we picked in that case. I'm fairly new to them too, I'm already evaluating the 'ease of learning' through the process of learning them myself.
I think it only presupose that Sinbad decided to go with DVCS anyway.
Yes. I've reached the conclusion from recent massively frustrating problems that SVN has a number of technical limitations in a shared & multi-branch environment (even though it works fine for me on dedicated servers for private projects) that make it worth changing, and for an open source project a DVCS makes the most sense. Not only does it match the development approach that typically goes on, they're also all open source themselves.

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Sun Oct 18, 2009 10:30 pm
by reptor
I would just like to comment that I hope what comes is a long-term solution. So take your time in making the decision.

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Mon Oct 19, 2009 6:38 am
by a4z
can't vote for others so write it here
I have started to use this on for my personal projects
http://www.fossil-scm.org
still in development, but mature enough to host sqlite.
suites perfect to my need for personal in house projects

don't know if this is an option for ogre, could be but I don' know, think not if you are not interested in try / test evaluate something new
but could be interesting for small teams, lone and/or indie developers so I put the url here

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Mon Oct 19, 2009 10:41 am
by sinbad
reptor wrote:I would just like to comment that I hope what comes is a long-term solution. So take your time in making the decision.
So do I! That's why I've been pondering this for so long and taking the time to run through real use cases in each tool. Community usage is definitely a factor too, which is why I'm running this poll.

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Mon Oct 19, 2009 6:34 pm
by jacmoe
I am not surprised to see Git floating to the top.
Most participants in this poll are power users, and probably not using Git in a larger project.
IMO, Git is great for a one person 'team', or very small teams. Git is fun, it has lots of coolness factor.
Like Ruby on Rails, also very cool..
Too bad Mercurial doesn't have any killer GUI apps. :wink:

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Mon Oct 19, 2009 7:21 pm
by tau
I find GIT close to SVN in terms of user friendly interface/tools, switched to Git few month ago, had no issues, love the distributed background commits.

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Mon Oct 19, 2009 7:24 pm
by Devil N
My impression is that in general a lot of people will choose Git not based on merit, but merely because it was initiated and advocated by Linus Torvalds. That's also the reason why I'm not too impressed - as much respect as I have for the man, Linus can sometimes be a real pompous elitist bastard and his condescending statements on other version control systems put me off of using Git. It also seems that Git often strays from the norm just for the sake of being different, and I'm not a big fan of that kind of mentality either.

I have not used any DVCS systems in practice so far, so I won't vote on this poll, but my impression is that Mercurial is a much more down-to-earth system designed to be used by real users, not only power users and free software idealists. It's just too bad the GUI support leaves some to be desired.

P.S. I know this opinion is highly biased and not based on any solid arguments, just pointing out that emotional value can be an important deciding factor.

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Mon Oct 19, 2009 9:06 pm
by betajaen
I use Git for NxOgre because of Github.

Simple as that really.

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Tue Oct 20, 2009 10:46 am
by sinbad
Devil N wrote:My impression is that in general a lot of people will choose Git not based on merit, but merely because it was initiated and advocated by Linus Torvalds. That's also the reason why I'm not too impressed - as much respect as I have for the man, Linus can sometimes be a real pompous elitist bastard and his condescending statements on other version control systems put me off of using Git. It also seems that Git often strays from the norm just for the sake of being different, and I'm not a big fan of that kind of mentality either.
I had precisely the same impression, and I came to Git at first with a very negative attitude, versus Mercurial for example because of this. The rhetoric orbiting Git completely put me off and made me very biased against it when I started this process. That plus the fact that the Git faithful seemed to be very anti-Windows and full cross-platform support is fundamental to me (in practice, this hasn't actually been an issue for me so far).

That said, now that I've worked through real examples with it (and still trying more), it's working well and I can see the purpose behind some of the decisions, even if I still think they could have taken a more conciliatory approach to users of other systems by not needlessly changing the meaning of terms (like revert / reset). Concepts that concerned me before (like isolated local branches and history alteration) now make sense, and can be very useful when used in the right contexts - which usually boils down to 'never use them upstream of anyone else'. Things that I used to view as dangerous I now see as very useful.

Much like Linux, I think Git has only done itself harm with the hard-line rhetoric used by some of its advocates. The messages from Mercurial and Bazaar were far more appealing to a pragmatic person like me, but I'm glad that I took the time to dig below what the communities have been saying to try them in practice. I'm writing up my impressions as I go and will publish one or more articles about it later on (including the results of this poll), hopefully explaining my eventual decision.

Re: Git, Mercurial or Bazaar - which do you use most?

Posted: Tue Oct 20, 2009 11:49 am
by betajaen
Don't forget that Git is quite popular with the Mac crowd now, particularly the Rails/Ruby developers. When writing the wiki code for NxOgre.org using sinatra as a framework, one of the amazing examples was creating a wiki using git as a backend for tracking and history. The implementation was really simple, and now NxOgre.org uses a Git backend to manage revisions of the pages - the actual ruby code for NxOgre.org is one file.

Github is the biggest reason why I switched to Git in NxOgre. Previously, I used Subversion for the reason that Ogre does and everyone else did at the time. I suppose I switched to Git for the same reason. The problem with Subversion was that I wasn't making enough commits, usually they would be a month old and in huge updates. Unfortunately NxOgre users at the time, got used to this and declared these releases as stable point releases.

The problem I was having with Subversion that I didn't have a repostiory that I could play with my hands, it was on server somewhere in the middle of America. Setting up a local SVN server was difficult and interfered with my workflow. Git on the other hand, I have the master repo. It's on my harddrive, there's no extra software running. No intrusive background process.

Instead; All the needed information contained in the ".git" directory in the NxOgre directory. I didn't have to install TortoiseSVN. I have a shortcut in the NxOgre folder to load up Git GUI. It automatically recognises my changes, I select which files to commit and a short message of the changes. I click the commit button to commit to the local repository then I click "Push" to commit the changes to GitHub. It uses SSH and my public key for authentication, so no passwords. It's so easy my Cat could do it.

Git is easier to me than Subversion. It encourages myself to do small updates in code, for small commits. It also allows me to go of somewhere and make a pigs ear of a branch without effecting the users or directory structure (the new Detritus branch). GitHub is excellent, it allows me to track back in time. It allows users to reference a commit and show the changes for that commit only - which is brilliant for debugging. Not only that it formats my textile files for me. I wrote python script to scan the source code, strip out the comments and generate the API documentation for me - like how doyxgen does it, but faster and can be run from a batch file. People don't usually have a textile parser on their computer, but Github does.

Don't get me wrong. I'm not a Git fanboy, I don't hate Subversion. I just find Git less intrusive on my computer, it fits into my workflow better and I like Github.