playrote.play.v1

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.

  • Published 4 Sep 2026
  • Downloads 0
  • Needs rote 0.62.0+
  • Digest sha256:16c867ac772f…
  • Reference lgoyal6/repo-bloat@0.5.0

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.

  • Rootroot

    Path to the git repository to weigh (its initialized submodules are included, because a recursive clone downloads their history too)

    requiredstringexample .custom value allowed
  • Toptop

    How many of the largest history objects to name per repository

    optionalstringdefault 15example 15custom value allowed
  • Min mbmin_mb

    Size in MB at or above which one object in history counts as heavy

    optionalstringdefault 1custom 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
  • Digestsha256: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.