Machine Learning on Git: Hercules and His Labours
summary
A Go tool called Hercules computes line burndown using incremental blame on top of go-git, handling fuzzy renames, Myers diff, and interval trees to track which lines survive across years; Linux-scale repos run in about one hour versus days for the original Python tool. File-pair co‑occurrence becomes embeddings via SVD plus t-SNE to plot 3D clusters. Performance hotspots: file diff ~50% and tree comparison ~45% of runtime; memory vs speed trade-offs determine disk or in‑RAM modes.
AI-written summary · about
chapters (19)
- 0:00Introduction and setup
- 1:10Limitations of GitHub analytics
- 2:56Line burndown analysis explained
- 5:01Hercules project origins
- 6:51Design goals for Hercules
- 8:19Git commit traversal challenges
- 11:40Naive vs incremental blame
- 13:06Git snapshots and file changes
- 15:41Handling fuzzy renames
- 19:24Diff algorithms and line intervals
- 22:44Performance optimizations
- 24:51Ownership plot analysis
- 26:36Overrides analysis
- 27:40Couples analysis and ML
- 31:13Go project structure lessons
- 33:43CLI tool challenges
- 35:52Go vs other languages
- 36:56Hercules features summary
- 37:45Q&A session
related talks
25mMachine Learning for source code analysis
37mMachine Learning on Source Code
27mLeveraging Git for ML Experiment Management
01h 17mMaking MLOps uncool again
35mBetter C++ using Machine Learning on Large Projects
48mDeveloper Insights: ML and analytics on src/
28mDelivering AI on Code: Live Demo of source{d}
32mMachine Learning Models Versioning Using Open Source Tools
