Files
swaits fe6efb87a8 chore: repoint URLs at git.swaits.com and bump for release
Rewrites remaining github.com / git.sr.ht references to git.swaits.com,
translating GitHub URL shapes to Gitea's (/blob/<ref>/ -> /src/branch/<ref>/,
/tree/<tag> -> /src/tag/<tag>, /actions/workflows/X -> /actions?workflow=X,
/edit/ -> /_edit/).

Left pointing at GitHub on purpose: pull-request links (PRs were not migrated)
and GitHub-only surfaces Gitea lacks (security advisories, discussions).
2026-08-31 17:58:31 -06:00

2.1 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

0.1.0 - 2026-04-30

Added

  • Initial release.
  • Cargo binary literally named git (via [[bin]] name = "git") that shadows the real git on PATH.
  • Default-safe passthrough: outside a jj worktree, or with no intercept marker, every invocation is forwarded to the real git via exec() — preserving signals, exit code, and TTY ownership.
  • Intercept gate fires only when inside a .jj worktree (honoring git -C <path>) and either FUCKGIT_INTERCEPT=1 or an AI-agent marker env (currently CLAUDECODE) is set.
  • Redirect output: prints the matching jj subcommand plus live jj help <sub> output to stderr; exits with status 2.
  • Mapping table for 27 common git subcommands (status, log, commit, add, checkout, switch, restore, branch, merge, rebase, pull, push, fetch, clone, init, diff, show, reset, revert, cherry-pick, stash, tag, blame, remote, bisect, config, reflog).
  • Plumbing allowlist (rev-parse, symbolic-ref, for-each-ref, cat-file, update-ref, hash-object, ls-files, ls-tree, merge-base, show-ref, name-rev, var, credential, check-ref-format, version) for transparent passthrough so tooling keeps working.
  • Safety env passthroughs: GIT_DIR, GIT_EXEC_PATH (hook context); CARGO (cargo subprocess).
  • Top-level argv pre-pass handles -C <path>, -c <kv>, --git-dir[=<path>], --work-tree[=<path>], --namespace, --config-env, --exec-path, --paginate/--no-pager, --bare, --version/-v, --help/-h.
  • Escape hatches: FUCKGIT_PASSTHROUGH=1 env var, --fucking-git flag (stripped before exec).
  • Self-recursion guard via FUCKGIT_DEPTH env counter (aborts at depth ≥ 2).
  • Linux and macOS support. Zero runtime dependencies.