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).
2.1 KiB
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 realgitonPATH. - Default-safe passthrough: outside a jj worktree, or with no intercept marker, every invocation is forwarded to the real
gitviaexec()— preserving signals, exit code, and TTY ownership. - Intercept gate fires only when inside a
.jjworktree (honoringgit -C <path>) and eitherFUCKGIT_INTERCEPT=1or an AI-agent marker env (currentlyCLAUDECODE) is set. - Redirect output: prints the matching
jjsubcommand plus livejj help <sub>output to stderr; exits with status2. - 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=1env var,--fucking-gitflag (stripped before exec). - Self-recursion guard via
FUCKGIT_DEPTHenv counter (aborts at depth ≥ 2). - Linux and macOS support. Zero runtime dependencies.