hg-git is broken with Mercurial from the `default` branch (6.4)
The test suite is currently broken with the default
branch — for once, this isn't just test-related breakage, but a proper failure. Changes related to peers and schemes genuinely broke hg-git, but changing how Mercurial detects remotes, and passes on paths, etc. Quick attempts at fixing this have so far been in vain, with one bug revealing another.
See:
Essentially, the bugs are in hggit/schemes.py
, i.e. how to instantiate the various types of repository — hg-git shoves itself in the middle of an awful lot of Mercurial things to:
- Optionally handle local paths and file URIs as Git repositories
- Detect Git SCP-style “URIs” as not local
- Intercept HTTP repositories ending with “.git” — hgsubversion used to do the same thing back in the day, and it's always been a load of hacks
😕 …
My current inclination is that this might be a good time to clean up the integration with Mercurial's infrastructure. Can we do it simpler? It would be awesome if Mercurial actually supported multiple peer/repository types for schemes, so that we could simplify and improve the handling of HTTP URLs, for example.