llgoyal6/repo-bloatv0.5.0Public
Repo bloat
Finds what makes a git repository permanently expensive to clone.
Read the full description
A clone downloads history, not the working tree, so deleting a large file changes nothing about what every future clone pays: the blob stays reachable from an old commit forever. This walks the whole object store with cat-file --batch-check, ranks the biggest blobs by their real on-the-wire size, names the commit and path that introduced each one, and sorts every one of them into current, superseded, or deleted-yet-still-downloaded. Separates bytes reachable from a branch (every clone pays) from bytes only the reflog or a dangling object still holds (local disk only, reclaimed by git gc). Compares pack size against what a checkout actually writes, and lists files still tracked that should have been ignored, including the ones .gitignore already excludes while the index keeps carrying them. Reports the fix honestly: history can only be removed by a rewrite that changes every commit hash. Read-only, contacts no remote, needs only git and python3.
Before you run it6 local tools
Everything here is checked on your machine when rote inspects the play. This page never learns what you have installed or which credentials you hold.
- ○gitlocal tool
Requires >=2.20.0. Run rote play inspect to check your host; unverified versions remain unknown.
- ○python3local tool
Requires >=3.8.0. Run rote play inspect to check your host; unverified versions remain unknown.
- ○bashlocal tool
Must be on your PATH when used. minimum version undeclared.
- ○mktemplocal tooloptional
Must be on your PATH when used. minimum version undeclared.
- ○rmlocal tooloptional
Must be on your PATH when used. minimum version undeclared.
- ○taillocal tooloptional
Must be on your PATH when used. minimum version undeclared.
Inputs3, 1 required
rote asks for these before running and shows the defaults it will use.
- Root
rootPath to the git repository to weigh (its initialized submodules are included, because a recursive clone downloads their history too)
requiredstringexample.custom value allowed - Top
topHow many of the largest history objects to name per repository
optionalstringdefault15example15custom value allowed - Min mb
min_mbSize in MB at or above which one object in history counts as heavy
optionalstringdefault1custom value allowed
What it changes
No write operations are declared in this version's manifest.
Credentials remain in the recipient's local rote vault; this page and the publisher never receive them.
Runtime details
- rote CLIversion 0.62.0 or newer
- Servicesnone declared
- Digest
sha256:16c867ac772ff6cf515f003e3aab6648ea1b1ccea028a550308afa6934cb9519 - Archive size23107 bytes
- Published2026-09-04T04:32:43.974011+00:00
- Published withrote 0.78.0
Credential values and current readiness remain local. Opening this page never prompts for a credential, opens an authorization browser, or calls a service this play uses.
A play is a published, versioned automation package that runs on your own machine through rote, a free command-line tool. Opening this page installs nothing and runs nothing.