3 ms·
That's really neat. Is there any documentation/discussion available on that technology? It sounds like something that would be fascinating to learn about.
by zbentley 9y ago
That's really neat. Is there any documentation/discussion available on that technology? It sounds like something that would be fascinating to learn about.
- Edmond 9y agoI am not sure if the parent's claim is true, ie that Github is storing objects and sharing them across forked repos. If they are, then it likely just a direct implementation of git the technology. you can see how git stores data here: https://git-scm.com/book/en/v2/Git-Internals-Git-Objects https://git-scm.com/book/en/v2/Git-Internals-Git-Objects
- aidos 9y agoNot an expert, but that would only work if there was a single repo, right?
- Edmond 9y agoNot an expert either :) There is the concept of submodules which allows for multiple repos while maintaining the checksum mechanics that allows sharing the same bit of information between branches and across commits: https://git-scm.com/book/en/v2/Git-Tools-Submodules https://git-scm.com/book/en/v2/Git-Tools-Submodules The trick is that git maintains an abstract file system (ie a graph) across commits. The graph consist of pointers to content without having to create a clone of the actual content for every new version of said graph....it gets a little dizzy to explain but it is really not too complicated :)
- allenz 9y agoNot necessarily. To share blobs, GitHub would need to replace the standard git filesystem blob storage with a distributed database of blobs. All Git repos would share this distributed database.
- rrix2 9y agoThis talk[1] from git merge has a lot of information about how they run their backend storage and what silly things can happen as a result of that. [1] https://www.youtube.com/watch?v=-ZNKR9wFe8o https://www.youtube.com/watch?v=-ZNKR9wFe8o