Skip to content

chore: untrack hoot.exe + hoot-test, expand .gitignore - #64

Open
oth-body wants to merge 1 commit into
masterfrom
chore/untrack-built-binaries
Open

chore: untrack hoot.exe + hoot-test, expand .gitignore#64
oth-body wants to merge 1 commit into
masterfrom
chore/untrack-built-binaries

Conversation

@oth-body

@oth-body oth-body commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Summary

Issue #50 was closed in July 2026 with the title "Remove binary from git and add .gitignore" — but the binaries were never actually untracked. This PR does what #50 claimed to do.

What this fixes

26 MB of build artifacts were tracked in master:

  • hoot.exe — 13,054,464 bytes (Windows build of hoot)
  • hoot-test — 13,012,992 bytes (Linux binary built by hoot_test.go's TestMain for black-box tests)

That's 26 MB bloating every clone, every git fetch, every CI checkout, and every PR diff stat — for files that have no business being in source control.

How

  1. git rm --cached hoot.exe hoot-test — files stay on disk for anyone with a pre-existing clone, but stop syncing future changes.
  2. Rewrote .gitignore (was just .aider*) to cover:
    • All common Go build outputs: hoot, hoot.exe, hoot-test, hoot-test.exe, hoot-cli, plus *.exe/*.so/*.dylib for renamed/relocated binaries
    • Test artifacts: *.test, *.out, coverage.txt, coverage.html, *.coverprofile
    • Go workspace files: go.work, go.work.sum
    • Standard IDE scratch files: .aider*, .idea/, .vscode/, *.swp, *.swo, .DS_Store
    • Dependency caches: vendor/
    • Local config overrides: .env, .env.local, *.local

No history rewrite

The binaries are still in past commits for anyone who needs to bisect through them. This is the minimum surgical change — stop the bleeding from here. If you want a clean history later, git filter-repo (or BFG) can purge the blob references; that's a separate, more invasive change that requires coordination with all clones.

Conflict check

Related but not in this PR

Issue #50 ("Remove binary from git and add .gitignore") was closed in
July 2026, but the binaries were never actually untracked. As of this
commit:
  - hoot.exe   — 13,054,464 bytes (Windows build of hoot)
  - hoot-test  — 13,012,992 bytes (Linux binary built by hoot_test.go's
                                TestMain for black-box tests)
are still tracked in master.

26 MB of build artifacts bloating every clone, every fetch, every CI
checkout, and every PR diff stat.

Fix:
  - git rm --cached hoot.exe hoot-test (files stay on disk; anyone with
    a pre-existing clone keeps their copy, just stops syncing future
    changes to them)
  - rewrite .gitignore to cover all common Go build outputs (hoot,
    hoot.exe, hoot-test, hoot-test.exe, hoot-cli variants; *.test/.out
    coverage files; vendor/; standard IDE scratch files; .env locals)

The binaries are obsolete anyway: GoReleaser (#43) handles releases
on tagged commits, and `go build -o hoot` is documented in the README.

No history rewrite — the binaries are still in past commits for anyone
who needs to bisect through them. This is the minimum surgical change
to stop the bleeding from here.

No conflict with #61, #62, #63 (silent-failures-hoot, publish-error-
surfacing, tipping-path-hardening) or any other open branch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant