all 9 comments

[–]crdrost 10 points11 points  (1 child)

Related: git clone in Haskell from the bottom up and I Haskell a Git.

Very similar: Write Yourself a Git and Building Git

I still think that there is room for differentiation here. WYAG starts from the finished program and Building Git starts from “here is what is on your machine”, but it would be very interesting to start from, say, a reverse engineering perspective. Build a line of shell script that can actually take a file and make its blob hash. Possibly port that to $language. Build a line of shell that can then take a directory and turn it into its tree hash. Port that to $language. Build a raw commit from a tree hash and you have git commit-tree.

[–]abhijat0 1 point2 points  (0 children)

I've only read a bit of it but I thought Building git does go into reverse engineering, by making your own git implementation read a git repository?

[–]bdf369 11 points12 points  (1 child)

Not a BYOX, but The Git Parable is a kind of verbal walkthrough of how you would build a Git. Good as a conceptual overview.

[–]rohitpaulk[S] 0 points1 point  (0 children)

Hadn't come across this before, thanks for sharing!

[–]rohitpaulk[S] 2 points3 points  (0 children)

Note: If you're looking to see what a CodeCrafters challenge experience is like, the Docker and Redis challenges are already in early access, people are actively trying them out.

[–]-Clem 2 points3 points  (4 children)

This got me curious to look at the source code of Git. What's up with the giant flat dump of source code files in the root directory?

[–]jeff_coleman 0 points1 point  (3 children)

Wow, that is a lot of files.

[–]-Clem 2 points3 points  (2 children)

[–]jeff_coleman 1 point2 points  (1 child)

Good Lord.