LineLord

The Barbarian's Guide to Git Repository Conquest

“What is best in code? To crush the bugs, see them driven from your repository, and to hear the lamentations of their stack traces!” — Gorvek of Bonereach

Every number below was read by LineLord 0.13.0 from a generated demo repository, at the revision b59595a6. Nothing on this page is analysed when you load it — LineLord is a terminal tool, and this is what it reports.

Looking past 1 commit named in .git-blame-ignore-revs, so their lines are credited to whoever wrote them rather than to whoever reformatted them.

Repository Overview

10 of 14 tracked files were read. The rest were set aside: 1 binary, 2 generated, 1 over the threshold. 205 lines still stand, held by 4 warriors.

#WarriorShareLines
1 Captain Drusk drusk@greycloaks.realm legend 37.1% 76 ███████░░░░░░░░░░░░░
2 Gorvek of Bonereach gorvek@bonereach.realm vanquisher 27.8% 57 ██████░░░░░░░░░░░░░░
3 Sarn the Faceless sarn@kell.realm slayer 26.8% 55 █████░░░░░░░░░░░░░░░
4 Gorvek of Bonereach gorvek@kell.realm potter 8.3% 17 ██░░░░░░░░░░░░░░░░░░

Brutal Barbarian Rankings

A ranking by conquest rather than by volume. Every metric counts lines still alive in the analysed revision.

#WarriorScoreLinesScarsTerrSoloTypesAncMassCamp
1 Captain Drusk drusk@greycloaks.realm 304.08 76 692217602
2 Gorvek of Bonereach gorvek@bonereach.realm 277.25 57 435435504
3 Sarn the Faceless sarn@kell.realm 49.89 55 0223003
4 Gorvek of Bonereach gorvek@kell.realm 45.5 17 01111701
Scars
Battle Scars
Terr
Territory Conquered
Solo
Solo Quests
Types
Weapon Mastery
Anc
Ancient Code
Mass
Massive Battles
Camp
Campaigns

Code Longevity

The codebase is 2y 1m old at the middle, 1% of it last touched within ninety days. Oldest line still standing: Makefile:1 — 4y 0m old.

The history was walked over 10 revisions, which is where the half-life comes from: how long until half of a month's work is gone. A dash means the history saw that code only once and knows nothing either way — which is not the same as short-lived.

#WarriorLinesMedian Spread (p10–p90)Half-life New → old
1 Captain Drusk drusk@greycloaks.realm 76 3y 3m 3y 3m – 3y 3m > 3y 4m █
2 Gorvek of Bonereach gorvek@kell.realm 17 2y 1m 2y 1m – 2y 1m > 2y 1m █
3 Gorvek of Bonereach gorvek@bonereach.realm 57 1y 9m 1y 9m – 4y 0m 2y 3m ▁ █▄
4 Sarn the Faceless sarn@kell.realm 55 3m 3m – 3m > 7m ▁ █
5 Brother Nask nask@thurn.realm 0 — — – — 2y 1m

In the terminal m, a and l re-sort by median, mean and lines, and h and s by half-life and survival once the history is walked.

One Warrior, Many Names

An email address is an identity, and nothing is inferred from names. Where two contributors look like one person LineLord says so and nothing was merged — both addresses keep their own place in the ranking, because two entries for one warrior should be a thing you decide about rather than a thing you have to notice.

--write-mailmap, or w on that screen, drafts these into a .mailmap. They are guesses, and the guessing is wrong often enough to matter, so read them before committing them:

Gorvek of Bonereach <gorvek@bonereach.realm> <gorvek@kell.realm>

So are they merged? Not by LineLord, which counts addresses before you write the file and after. But .mailmap is git's own file, and git blame applies it before LineLord sees a single line — so from the next run the two are one warrior, with one row and one share, because git says they are the same person rather than because a heuristic guessed it. The decision lives in a file you wrote, where git shortlog reads it too, and a wrong guess is a line to delete rather than a verdict to argue with.