pub struct LocalDeepenPlan {
pub depth: u32,
pub deepen_since: bool,
pub deepen_not: usize,
pub client_shallow: Vec<ObjectId>,
pub shallow_info: Vec<ProtocolV2FetchShallowInfo>,
pub excluded: HashSet<ObjectId>,
pub extra_wants: Vec<ObjectId>,
}Expand description
The in-process upload-pack’s plan for a deepen (shallow) local fetch:
which shallow/unshallow updates to report, which commits the pack walk
must stop at, and which extra tips become packable because the client’s
boundary moved.
Mirrors upstream upload-pack.c::deepen + shallow.c::get_shallow_commits.
Fields§
§depth: u32The requested deepen depth (--depth N; INFINITE_DEPTH for
--unshallow and for the implicit deepen a shallow server runs on a
plain fetch; 0 for the deepen-since/deepen-not rev-list modes).
deepen_since: boolThe request carried deepen-since (trace2 fetch-info parity).
deepen_not: usizeNumber of deepen-not entries in the request (trace2 parity).
client_shallow: Vec<ObjectId>The client’s existing shallow boundary ($GIT_DIR/shallow), replayed as
shallow lines in the upload-pack request.
shallow_info: Vec<ProtocolV2FetchShallowInfo>The server’s shallow/unshallow updates the client must fold into
$GIT_DIR/shallow after the pack lands (see crate::apply_shallow_info).
excluded: HashSet<ObjectId>Out-of-boundary commits (the parents of boundary commits that are not themselves within the boundary): excluding these from the pack walk truncates history at the boundary while keeping every tree/blob of the boundary commits themselves.
extra_wants: Vec<ObjectId>Parents of client-shallow commits this deepen un-shallowed, added as
extra pack tips so the newly visible history is sent (upload-pack adds
them to want_obj in send_unshallow).
Trait Implementations§
Source§impl Clone for LocalDeepenPlan
impl Clone for LocalDeepenPlan
Source§fn clone(&self) -> LocalDeepenPlan
fn clone(&self) -> LocalDeepenPlan
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more