Tech Done Right · Episode 59
· April 2019
Building Git with James Coglan
with James Coglan
Duration: 41:09
Our guest today is James Coglan. James has written an extraordinary programming book called _Building Git_. In it, he describes the inner workings of the Git source control tool by re-implementing a substantial part it in Ruby, including commits, diffs, branching, and networking. Along the way he shows not just how Git works, but also details of some of the algorithms it uses. There’s also a lot about building complex systems generally. And it has some great examples of test-driven development. James and I also talk about implementing in a high-level language like Ruby, versus a lower-level language like C. It’s a unique book, and I’ve been looking forward to talking to James about it for some time.
Show Notes
Building Git With James Coglan
TableXI is now offering training for developers and products teams! For more info, email workshops@tablexi.com.
Guest
James Coglan: Author of Building Git and JavaScript Testing Recipes. More at jcoglan.com/.
Summary
Our guest today is James Coglan. James has written an extraordinary programming book called Building Git. In it, he describes the inner workings of the Git source control tool by re-implementing a substantial part it in Ruby, including commits, diffs, branching, and networking. Along the way he shows not just how Git works, but also details of some of the algorithms it uses. There’s also a lot about building complex systems generally. And it has some great examples of test-driven development. James and I also talk about implementing in a high-level language like Ruby, versus a lower-level language like C. It’s a unique book, and I’ve been looking forward to talking to James about it for some time.
Notes
01:58 - Reimplementing Git
04:17 - Examples and Understanding Git Internals
06:32 - Building Complex Systems in General
09:10 - How the Design of the Code Emerges
11:51 - Test-Driven Development
15:16 - Implementing Git and Ruby
22:37 - Surprises
26:29 - Making UI Changes
29:30 - Gaps Remaining in Functionality and Performance
32:04 - Contribution and Implementations in Other Languages
- Gary Bernhardt's Screencasts
34:25 - Lower-level Language vs Higher-level Language Implementation
Special Guest: James Coglan.
Tags
Related Episodes
Ep. 69: Teaching and Learning with Sandi Metz
with Sandi Metz
Ep. 68: Pragmatic Programmer at 20 with Dave Thomas and Andy Hunt
with Andy Hunt, Dave Thomas
Ep. 4: In The Testing Weeds With Sam Phippen and Justin Searls
with Justin Searls, Penelope Phippen
Ep. 72: Teaching Testing and Design
with Avdi Grimm, Betsy Haibel
Related Videos
Ruby 4.0
SF Ruby Meetup 2025
The Dynamic Ruby Toolkit
SF Ruby 2025
Does Ruby Love Me Back
Chicago Ruby Meetup 2025
Related Posts
-
The Pickaxe is out and I am Happy
Jan 2024
-
Professional Rails Online?
Dec 2007
-
April 23, 2010: Still Alive
Apr 2010
-
Pro Rails Book Related Things
Aug 2007
-
May 25, 2010: Betas
May 2010