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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html