Moving from mercurial to git?

Dear all,

I know the move to github has been discussed before, multiple times. Some of the reasons not to switch to github (that there’s no clear benefit, that the T&Cs are not acceptable, etc.) seem very reasonable to us.

I am proposing to open a separate thread for a slightly separate discussion: the move from mercurial to git.

For many reasons, we initially preferred mercurial too (we as in our company: individual people had individual preferences).

We are currently using SDL for several games. We have had our own mercurial mirrors of all SDL2 projects on bitbucket for years now, and we use them to investigate how to implement certain features before we contact the original authors with our proposed solutions. We never relied on the github mirror because we didn’t know whether it would always be up to date with the upstream. Also, we weren’t sure that mercurial and git would not diverge towards paths that would make the automatic conversion incompatible. We would not want to rely on conversion tools like git-hg.

For better or worse, git seems to have won the VCS “battle” for now. It is not just a trend, it is here to stay. Mercurial support on bitbucket will soon be going away. It would seem reasonable to expect most other services and tools to follow suit. Mercurial will be less and less convenient to use for everybody, and git will be more and more convenient. As the world turned towards git, we saw the change almost unavoidable. Over the last 2 months, we have migrated all our repos to git.

Using git does not mean at all using github. Projects can still be self-hosted: you can use gitlab, gitolite, or several other solutions. We, for example, have mostly moved our of github and bitbucket, but find it convenient to rely on a solution with support for issue tracking.

Would the SDL development team be willing to consider this?

Thanks,

Alex

Backend Software Developer
Keera Studios

4 Likes

I’d like to toss in my support of a move from hg to git. There’s a lot more tooling available for git nowadays than for hg, as well as a lot more options for hosting, especially with Atlassian/BitBucket dropping Mercurial support.

If ease-of-use at the command line is still an issue, might an alternate git command-line client help (such as Gitless, https://gitless.com/ ), or use of the hg-git plugin (https://hg-git.github.io/)?

2 Likes

This is a hard “no” according to Ryan:

https://bugzilla.libsdl.org/show_bug.cgi?id=4956#c3

And it’s hard to disagree. The argument for VCS change typically goes like this: if only this was on github, more people would contribute. To me it sounds super odd that someone capable of contributing to a complex project would be unable to figure out how to adapt to a different VCS and is hampered by the one currently in use. Instead of their workflow changing for a project, the entire core team has to adapt to theirs. For a hypothetical benefit, no less.

Well, we are certainly not voting for moving to github, or even any specific cloud hosting system.

As I explained, it’s not an argument of HG vs git from a technical perspective (hg is powerful and easy to learn, especially for people who come from SVN). It’s merely an argument from a tooling and convenience perspective: how convenient is it to be the odd one out, and rather go with the flow and focus more of our energy on helping create games and contribute to open source libraries.

Of course, one cannot spend all their time adapting to trends. It’s something we delayed for several years, and took us months to actually complete for our more than 200 repos. We would not propose it lightly.

It is perfectly understandable that the core dev team sees little benefit in changing tools if they have a workflow that works for them.

2 Likes