macOS
brew install hg-fast-exportlocal Homebrew formula metadata
brew
Fast Mercurial to Git converter. Version 260405 via Homebrew; verified 2026-06-18.
install
brew install hg-fast-exportlocal Homebrew formula metadata
overview
Fast Mercurial to Git converter
history
hg-fast-export is a Mercurial-to-Git history converter built around Git's `git-fast-import` mechanism. It exists for projects that need to migrate Mercurial repositories into Git while preserving branches, tags, authors, commit messages, and incremental import state as far as the two systems allow.
The project began as a set of Mercurial export scripts written by Rocco Rutte with help from Git and Mercurial community channels. The README says most `hg-*` scripts are MIT-licensed, while `hg-reset.py` is GPLv2 because it copies code from Mercurial; Frej Drejhammar is listed as the maintainer.
Its core design is intentionally streaming. The README says hg-fast-export does not require a two-pass mechanism or prior repository analysis; it feeds Mercurial changesets into `git-fast-import`, relying on Mercurial's append-only storage model and linear ordering of changesets already seen by the converter.
Over time the converter accumulated migration features around the hard parts of real repositories: author maps, branch and tag maps, default-branch renaming, non-UTF-8 metadata conversion, filename encoding overrides, content filters, Mercurial largefiles handling, Git LFS strategies, plugin hooks, and reset support for restarting from an earlier import state.
hg-fast-export became one of the standard command-line answers to the Mercurial-to-Git migration problem. Its README points users to the GitHub issue tracker for support, documents Git for Windows bash as a known-working Windows environment, and notes that incremental imports are supported for tracking Mercurial repositories over time.
The package gained extra relevance during the wider migration away from Mercurial hosting toward Git hosting. The input package facts record Homebrew packaging, and the formula keeps the tool one install away for macOS and Linux users doing repository conversion work.
The basic workflow is to create an empty Git repository, run `hg-fast-export.sh -r <local-hg-repo>`, then check out the imported branch. The README stresses that remote Mercurial repositories must first be cloned locally because the Mercurial API and remote access protocol do not allow hg-fast-export to operate directly over HTTP or SSH.
Complex migrations often add an authors map with `-A`, branch and tag maps with `-B` and `-T`, a default-branch name with `-M`, encoding flags, content filters, or plugins. Large repositories can use the bundled Git LFS import path to write LFS pointers during conversion rather than doing a separate full history rewrite afterward.
For package nerds, hg-fast-export is a classic migration utility: small surface, sharp edges, and deep dependence on two VCS data models. It matters because repositories are historical artifacts; preserving their history during a VCS migration is not just a one-time command, it is a careful mapping of authors, branches, tags, encodings, large files, and naming rules.
It is also notable because it wraps Git's plumbing rather than reimplementing Git storage. That keeps the tool scriptable and packageable, but makes its limitations visible: no direct remote Mercurial import, branch-name collisions, unnamed heads, case-insensitive filesystem traps, and the need for explicit mapping files in messy histories.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
hg-fast-export.py | cli | global executable | |
hg-fast-export.sh | cli | global executable | |
hg-reset.py | cli | global executable | |
hg-reset.sh | cli | global executable | |
hg2git.py | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/frej/fast-export
install metadata
| Package key | brew:hg-fast-export |
|---|---|
| Version | 260405 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/hg-fast-export |
| Homepage | https://repo.or.cz/fast-export.git |
| Repository | https://github.com/frej/fast-export |
| Upstream docs | https://github.com/frej/fast-export#readme |
| License | GPL-2.0-or-later |
| Source archive | https://github.com/frej/fast-export/archive/refs/tags/v260405.tar.gz |
| Last updated | 2026-06-18T09:25:52+09:00 |
| Pulse | updated |
| Dependencies | mercurial, python@3.14 |
| Bottle | available (on all) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | hg-fast-export |
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.