> Objects are stored compressed (using libz). In addition to > compression, when objects are packed Git can use a technique called > "delta compression" to allow it to build one object in terms of > another. This is something like a diff/patch, but it's not the delta > that gets hashed; it's the full object (before and after). oh okay. > > Between libz compression and delta compression the pack file > containing all of those objects tends to be substantially smaller than > the full set of objects. Fascinating. > As noted above, there's no "patching" going on. The server does store > a packfile, though, and depending on how recently the pack was created > it can reuse substantial portions of that pack when creating a pack to > serve the clone. > Have you checked https://git-scm.com/book/en/v2 ? Thanks. I will check this out. The 10th chapter seems related. I earlier came across this but thought it was a user guide, based on the first few chapters and did not reach here. If there are any other blog posts, talks, etc. about the delta compression, packfile etc. too, please let me know. Thanks. -- Sankar P http://psankar.blogspot.com