HN Hall of Fame Weekly email

Show HN: ugit – Learn Git Internals by Building Git in Python

www.leshenko.net Books & learning Tutorials & guides Software engineering Candidate
Screenshot of www.leshenko.net captured 2026-07-20
Page preview · captured 2026-07-20

Resurfaced independently across 4 calendar years, with breakout response in 3 of them.

submissions
4
submitters
4
observed span
2020–2026
peak thread · 30 comments
309 pts
latest 20+ return · 2023-05-13
162 pts

Submission timeline

2007–2026

One slot for every year since HN launched. Height is that year's peak points; orange marks a 100+ point or 50+ comment breakout. Select a bar to open its strongest thread.

First comments on top threads

HN comment order

Looks neat! This reminds me heavily of the excellent Building Git by James Coglan[1]. From a cursory glance though, it doesn't seem to support reading packfiles. This was the big thing that prevented me from using a fully custom Git implementation when I wrote my git churn calculator[2]. For larger repositories, it seems that almost all files are stored in packfiles, rather than the conceptually simpler "loose" format. For me, the most valuable resource was reading the Git / libgit2…

I really love the idea, but it's sent me down the Python packaging rabbit hole because the very first page's recommendation to use `python3 setup.py develop --user` doesn't work without some customization that I have yet to figure out. First, it seems to (maybe?) work better with a venv running, which I didn't have. Ok, I can create one. Next, `SetuptoolsDeprecationWarning: setup.py install is deprecated`, although I can live with that for now. Next, I'm provided with a long list…

I particularly like the iterated development approach to teaching on this site. That is, one starts with some minimal working code, states a goal, and then modifies the code to accomplish that goal --- repeatedly. This is a very powerful way to go through a codebase (when it is possible).

The first top-level comment from each of the four biggest threads, in HN’s own order. Excerpts are shortened; open a comment for full context.

Breakout years
3

100+ points or 50+ comments

Total points
597

reference only — not used in Hall rules or ranking

Total comments
68

reference only — not used in Hall rules or ranking

Every submission

DateTitle as submittedByPointsComments
2020-09-18Show HN: ugit – Learn Git Internals by Building Git in PythonFirst breakout · Best threadnikital30930
2021-10-03Ugit - DIY Git in Pythonrohithkp12415
2023-05-13DIY Git in PythonLatest 20+ point returnauraham16223
2026-03-11ugit: DIY Git in Pythontosh20