Episode 59

Building Git with James Coglan

Your Host
Special Guest

About this Episode

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

Episode Comments