Hi All,I have been using Mercurial as the version control mechanism as prescribed by Openbravo. But offlate I have been hearing rather rave reviews on Git version control and even I tried for few small scale projects and it seems to work really fine.

Can I anyone present their views on using git as the version control mechanism in Openbravo (in local systems, for custom module development).

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.