Git utilities

Git submodule declaration audit

Reconcile .gitmodules declarations with supplied staged gitlinks.

Your inputs

Start with an example

Capture: git config --no-includes --file .gitmodules --null --list. Open its binary output locally or paste hexadecimal bytes.

Capture: git ls-files --stage --full-name --abbrev=64 -z. Use the same intended repository state; no sparse, recursive, debug, eol or format options.

Your inputs stay in your browser.

Your result

Example result

How it works

Decode UTF-8 NUL-framed native reports without changing path bytes. Match stage-0 mode-160000 entries to exact single path declarations. Retain repeated metadata and shared mappings as ambiguous, and keep unmerged stages without selecting a commit.

The example contains three staged gitlinks: vendor/lib has a relative URL, missing has no URL declaration, and unmapped has no matching declaration. The retired declaration has no path in the supplied index.

Limits

Up to 4 million combined bytes, 50000 records per report, 10000 subsections and a 4 million-byte report. Empty inventories are valid. Require native canonical keys, full consistent 40/64-digit IDs, valid UTF-8 and terminating NULs. Binary-to-hex loading preserves CR/LF and NUL data. This is a supplied-report comparison; capture provenance, Git safety/cache precedence, HEAD, worktrees, active/initialized state, object existence and remote URL resolution are not checked.