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

Pack transfer negotiation to tree and blob level?

From
Philip Oakley <philipoakley@iee.org>
Date
Nov 27, 2013, 22:08 UTC
Message-ID
<1E0A3B7F917445C7A968C81C35892FD4@PhilipOakley>

In the pack transfer protocol (Documentation\technical\pack-protocol.txt) the negotiation for refs is discussed, but its unclear to me if the negotiation explicitly navigates down into the trees and blobs of each commit that need to go into the pack.

>From one perspective I can see that, in the main, it's only commit 

objects that are being negotiated, and the DAG is used to imply which commit objects are to be sent between the wants and haves end points, without need to descend into their trees and blobs. The tags and the objects they point to are explicitly given so are negotiated easily.

The other view is that the negotiation should be listing every object of any type between the wants and haves as part of the negotiation. I just couldn't tell from the docs which assumption is appropriate. Is there any extra clarifications on this?

I ask as I was cogitating on options for a 'narrow' clone (to complement shallow clones ;-) that could, say, in some way limit the size of blobs downloaded, or the number of tree levels downloaded, or even path limiting.

Philip Oakley 
Next: Duy Nguyen
Message 1 of 3 in “Pack transfer negotiation to tree and blob level?”
  1. Philip OakleyNov 27, 2013
  2. Duy NguyenNov 27, 2013
  3. Philip OakleyNov 28, 2013

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.