The Great Modularization This substantial rewrite splits each git-teleport subcommand into its own executable. It also splits the single-page documentation file into a multi-page website with mdbook. We now require git>=1.8.3. ENHANCEMENTS * CLI-BREAKING: Removed `teleportw` wrapper script * CLI-BREAKING: Drop the "commit" command. This operation is now performed automatically with each "bundle" * CLI-BREAKING: Deprecated `git teleport update` alias removed * CLI-BREAKING: The entire `refs/` namespace is **no longer mirrored**. Instead, only the following refs are mirrored: - `refs/heads/*` - `refs/tags/*` - `refs/notes/*` - the `GTELEPORT_MIRROR_REFS` environment variable This is necessary to fix Gitlab→Gitlab transfers. See issue #3. * CLI: Permit `bootstrap`ing into an existing repository. A subdirectory is created instead. * CLI: `pack` now supports `--full`, `--no-save`, and `--offline`. The `--full` command is the preferred way to generate full-history bundles. The `--no-save` command can be used to generate differential bundles. * CLI: Add `setup` command for automatically adding git-teleport to the `$PATH`. * Status text is now printed to stderr exclusively. stdout is reserve for `--porcelain` integration with other scripts. * Quality-of-life improvements for developers, including a Makefile-based task system and better CI jobs. FIXES * Discontinue direct fetches during `unpack`. All repositories are now updated via a local cache and a `push` instead of a `fetch`. Direct-fetching is somewhat dangerous and does not work if `safe.directory` restrictions are in force. * The `latest/` symlink is now `-r` relative. * Reduce use of external commands. This improves speed * Substantially revised error messages * Replace obsolete shebang syntax