Some time ago we at Openbravo used suvbersion
as SCM and around 4 years ago we moved to mercurial
. The main reason for this movement was the problems we had managing big projects, especially taking care of branches and doing merges between them.
The main difference between these two SCM is the paradigm they use. Mercurial is a distributed SCM
whereas subversion is centralized. From our point of view, distributed SCMs have a lot of advantages: you have in local all the repository history so it is much faster and it is also more flexible.
When we did this migration, we evaluated different distributed SCMs, including git. Both git and mercurial are distributed and basically they manage code in similar way. We decided in favor of mercurial because (in that moment) it was easier to use in Windows environments (Openbravo developers use linux boxes, but there are many clients using Windows) and the set of commands it includes was smaller than the one in git being easier to start working with it, specially if coming from subversion.
Having said that, there is no problem on using git (or any other SCM) to manage your code, it is just a matter of what you feel more comfortable with. The only thing is Openbravo repositories
are in mercurial, so in case you want to work directly with Openbravo code (to have latest development version or to contribute), you still have to use it.
I personally don't have much experience with git and have some with mercurial. I'm quite happy with mercurial and I haven't had any major issue with it. I think with both of them you can do almost the same things.
I hope this clarifies a little bit your doubts.