mercurialtortoisehghgsubversionhg-git

Interoperability of Mercurial 6 with other VCSes


Some years ago, Mercurial | TortoiseHG could exchange data bidirectionally easy with at least 2 Big Brothers:

Current (6.0 versions of family) state - the ordinary users have none:

Are there any comments, additions, clarifications, recommendations on how to do it (if what I am doing is wrong)?

Addition after some testing: special verson tortoisehg-6.0hggit-x64.msi from Matt Harbison at least allow using hg-git with ssh-transport (not http yet) and can be recommended for every-day usage by ordinary user.


Solution

  • So, as a current maintainer of hg-git and former contributor to hgsubversion, I think I can provide some context here.

    Regarding hgsubversion, the short answer that it is either dead or — at best — extremely dormant. Personally, I have not interacted with a Subversion repository in years, and that's a common experience. No-one has been sufficiently motivated to fix bugs, keep it working, and — last, but not least — make it work with Python 3.

    For hg-git, a period of semi-dormant state meant that the TortoiseHg maintainers stopped bundling it. We now keep up with Mercurial releases, and I've requested that they reverse that decision. I believe they bundle Dulwich, but as I don't use Windows, I can't say for sure. That said, it's quite reasonable to want to use hg-git with TortoiseHg, and if you run into any specific issues, I'd suggest you file a bug with them — or perhaps add a comment to the bug I linked earlier.

    Generally speaking, you should be able to use 0.10.x version of hg-git with most versions of TortoiseHg, as I believe they bundle Dulwich. In that case, enabling the extension should be as simple as:

    hg clone -u 0.10.x http://foss.heptapod.net/mercurial/hg-git /path/to/repo
    

    And then adding the following to your .hgrc:

    [extensions]
    hggit = /path/to/repo/hggit
    

    Once TortoiseHg moves to Python 3.x, the default branch of hg-git will work with it again.

    EDIT: I was wrong; they don't bundle Dulwich, it seems. On the bug for this, one of the maintainers posted a link to a packaged installer that includes hg-git & Dulwich. The next release, 6.1, should fix this. Please consider testing the installer, and report to the TortoiseHg maintainers whether it works as expected.

    EDIT²: Please note that only SSH works with that installer, as they ran into some issues bundling urllib3, which is necessary for HTTP support.