I am a satisfied user of mercurial, and I would like to use it to work with some repos on github. I have installed hg-git
(still having connectivity problems but that's not the question) and looked at the documentation and various questions here on SO, but I am still unsure how complete a solution it provides.
Are there important features of git / github for which hg
+hg-git
support is unavailable, limited, or problem-prone? I use branching and merging, tags, and occasionally mercurial's commit --amend
command. I do not really need bookmarks, subrepos, custom hooks, or mercurial patch queues.
Are there problems or limitations because of the different branching models of git
and hg
? (This six-year old question suggests that it was a less than seamless experience at the time.)
On the hg-git
site I read that "In theory, the changeset IDs should not change [in hg -> git -> hg conversion], although this may not hold true for complex histories." How worried should I be about this? Could it happen if I am just synchronizing (both directions) between github
and a single hg
repo?
I am looking at two use cases:
A) Using hg
as a github client for a large-ish project, with lots of branches, that is normally developed by git users (master
branch, etc.)
B) Using github
to host my own (smaller) projects that I develop with mercurial.
I'm not expecting a 100% complete replacement. I have and use git
, I just prefer to work with hg
on a day to day basis. I do most of my work on OS X, if that matters.
hg-git
, such as git-lfs
. Repositories using large files will not work. There are corner cases such as octopus merges (merges with more than two ancestors) that will cause trouble on the Mercurial side as well as they do not have an equivalent in Mercurial. However in a day-to-day work it is rare to come across these limitations. In most cases hg-git will just work perfectly fine.