git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Git clone question

From
SPSankar P <sankar.curiosity@gmail.com>
Date
Apr 8, 2020, 02:27 UTC
Message-ID
<CAMSEaH6jP3xSLZ_9omJ-8nqjJVYor1TpLZWjW3+K=OZVtM3OSw@mail.gmail.com>
In-Reply-To
<CAGyf7-GVYMXKpptZ8w3tcZAKp41j5_EDe9kp6YcDp7=S4LuVpQ@mail.gmail.com>
Show 5 quoted lines
> 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
Previous: Bryan Turner
Message 3 of 3 in “Git clone question”
  1. Sankar PApr 7, 2020
  2. Bryan TurnerApr 7, 2020
  3. Sankar PApr 8, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.