Explore Git internals using Python | Let's write `git log` in Python

Jun 23, 2016 · Mountain View, United States of America

This is a collaboration with the Silicon Valley Python MeetUp. So ,you must RSVP here instead:
Git is a powerful tool for source control. It's often misunderstood and abused. Under the surface Git is an elegant and simple data structure. When you don't understand that data structure, you don't really understand Git. It is flexible enough to give you all the rope that you need to hang yourself in Git hell. However, if you understand it, metaphorical Gordian knots seem simple and Git hell doesn't exist
Python is an elegant programming language heavily influenced by ABC "a teaching language, a replacement for BASIC...." [1] It's a perfect tool that looks like pseudo-code but executes. However, even with its simplicity, it is one of the most powerful programming languages that exists. It is a perfect language to document and run the Git data structure as we explore it.
In this talk, we start with a simple explanation of the Git data structure on disk. We then begin live-coding to read those data structures and reconstruct a git log command for any arbitrary git repository without using the git command [2]. When finished, we should have our own working command that does the same thing as git log for any arbitrary repository, on any branch. We'll simply start at HEAD and work our way down the data structure.
Although it is not *useful
to have a Python version of Git, it is fun. Also, this exploration helps you understand the Git tool on a much deeper level. When you can program something, you can understand it. And, understanding Git helps you be a better developer and collaborator.

About the Speaker
Glen Jarvis has been programming Python for over 8 years and has been programming in different languages for over twenty years. He has been certified in Linux/Unix administration by UC-Berkeley. Before that, he gained the highest certification available for Informix database administration and supported administrators. He is also certified in MongoDB as developer and administrator. He is currently working on his AWS certification.
He has worked for companies such as IBM, UC-Berkeley, Sprint and many Silicon Valley Start-ups. He has worked in the fields of Databases, Data Science, Bioinformatics and Web Technologies. He has been exclusively working in DevOps the past year.
Glen has been working for almost three years at RepairPal, a successful start-up that gives you free estimates for what your car repair should cost [3]. He is currently putting the "Dev" in "DevOps" using Ansible (and Ruby). He additionally owns a consulting and training company, Glen Jarvis, LLC, that mentors budding programmers. Some of his training Videos include How to create a free AWS instance, Ansible Hands-On Training, and An introduction to Test Driven Development. He has also been an open source contributor [4] and a member and co-organizer of the Bay Area Python Interest Group (BayPIGgies) [5].
[1] http://python-history.blogspot.com/2009/02/early-language-design-and-development.html
[2] With one small caveat. There is only one plumbing command used to read a binary file git cat-file. The rest is ASCII text that we can read/open/manipulate.
[3] http://repairpal.com/
[4] https://github.com/glenjarvis/
[5] http://baypiggies.net/

Event organizers

Are you organizing Explore Git internals using Python | Let's write `git log` in Python?

Claim the event and start manage its content.

I am the organizer

based on 0 reviews