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
1.0.0-rc.3 from a generated demo repository, at the
revision 26104a6e.
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.
| # | Warrior | Share | Lines | |
|---|---|---|---|---|
| 1 | Captain Drusk drusk@greycloaks.realm legend | 37.1% | 76 | ███████░░░░░░░░░░░░░ |
| 2 | Gorvek of Bonereach gorvek@bonereach.realm line breaker | 27.8% | 57 | ██████░░░░░░░░░░░░░░ |
| 3 | Sarn the Faceless sarn@kell.realm conqueror | 26.8% | 55 | █████░░░░░░░░░░░░░░░ |
| 4 | Gorvek of Bonereach gorvek@kell.realm peasant | 8.3% | 17 | ██░░░░░░░░░░░░░░░░░░ |
Brutal Barbarian Rankings
A ranking by conquest rather than by volume. Every metric counts lines still alive in the analysed revision.
| # | Warrior | Score | Lines | Scars | Terr | Solo | Types | Anc | Mass | Camp |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Captain Drusk drusk@greycloaks.realm | 304.08 | 76 | 69 | 2 | 2 | 1 | 76 | 0 | 2 |
| 2 | Gorvek of Bonereach gorvek@bonereach.realm | 277.25 | 57 | 43 | 5 | 4 | 3 | 55 | 0 | 4 |
| 3 | Sarn the Faceless sarn@kell.realm | 49.89 | 55 | 0 | 2 | 2 | 3 | 0 | 0 | 3 |
| 4 | Gorvek of Bonereach gorvek@kell.realm | 45.5 | 17 | 0 | 1 | 1 | 1 | 17 | 0 | 1 |
- 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 11 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.
| # | Warrior | Lines | Median | Spread (p10–p90) | Half-life | New → old |
|---|---|---|---|---|---|---|
| 1 | Captain Drusk drusk@greycloaks.realm | 76 | 3y 3m | 3y 3m – 3y 3m | > 3y 5m | █ |
| 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 Ruun ruun@thurn.realm | 0 | — | — – — | 2y 0m |
In the terminal o changes the order: median, mean and lines, and 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.
-
Gorvek of Bonereach
gorvek@bonereach.realm
- ← gorvek@kell.realm — the same name
The merge screen offers these one at a time, and taking one writes it
into .mailmap; --write-mailmap writes them all
at once. 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.