Overview of git-sizer metrics
mastergit-sizer computes various size metrics to identify potential performance bottlenecks in a Git repository. It flags issues such as:
- Overall Repository Size: Checks if the repo is unwieldy (ideally < 1 GiB, problematic > 5 GiB).
- Reference Count: Monitors the number of branches and tags (aim for a few tens of thousands at most).
- Object Count: Identifies if too many objects are slowing down history traversal and garbage collection.
- Gigantic Blobs: Flags excessively large individual files.
- Large Text File Deltas: Detects frequent changes to large text files (e.g., logs, XML) that make reconstruction expensive.
- Gigantic Trees: Identifies directories with too many entries, which makes tree creation and traversal expensive.
- File Repetition: Detects if the same or similar files are repeated at different paths within a single commit (potential "git bombs").
- Path Lengths: Flags absurdly long path names.
- Bizarre Structures: Detects annotated tag chains, massive octopus merges, or gigantic commit log messages.