thblt / write-yourself-a-git

Learn Git by reimplementing it from scratch

Home Page:https://wyag.thb.lt

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Implement staging area/status/commit

thblt opened this issue · comments

The staging area remains to be implemented. It's not hard, but it's tedious. The main difficulty is that it's it's not just a stupid tree object (for performance reasons) but the “index file”, whose format is documented here: https://github.com/git/git/blob/master/Documentation/technical/index-format.txt. Also it's a binary file, which is the kind of format where C shines and Python, well, shines a bit less.

Maybe we can start with the ls-files command. And I've made a PR for it;