pub struct FetchOptions {Show 25 fields
pub refspecs: Vec<String>,
pub negative_refspecs: Vec<String>,
pub tags: TagMode,
pub prune: bool,
pub dry_run: bool,
pub fetch_depth: Option<FetchDepth>,
pub deepen_since: Option<String>,
pub deepen_not: Vec<String>,
pub initial_remote_fetch: bool,
pub remote_name: Option<String>,
pub fetch_source: Option<String>,
pub configured_refspecs: Vec<String>,
pub clone_reflog: Option<CloneReflog>,
pub diagnostics: Option<DiagnosticsHandle>,
pub network_trace: bool,
pub index_pack_threads: Option<usize>,
pub thread_policy: ThreadPolicy,
pub environment: Environment,
pub pack_spool_only: bool,
pub http_protocol_version: Option<u8>,
pub remote_progress: bool,
pub filter: Option<ObjectFilterSpec>,
pub mark_received_pack_promisor: bool,
pub object_wants: Vec<ObjectId>,
pub promisor_object_fetch: bool,
}Expand description
Options controlling a fetch.
Fields§
§refspecs: Vec<String>Positive refspecs selecting what to fetch.
negative_refspecs: Vec<String>Negative refspecs excluding refs from the positive set.
Tag-following policy.
prune: boolWhether to prune local tracking refs that vanished on the remote.
dry_run: boolCompute and report updates without writing any refs or objects.
fetch_depth: Option<FetchDepth>Shallow fetch control (--depth, --deepen, --unshallow). None leaves
history depth unchanged (aside from an existing on-disk shallow file).
deepen_since: Option<String>Deepen history to include commits no older than this cutoff
(git fetch --shallow-since <date>). The value is sent verbatim as the
wire deepen-since <value>; callers should pass the Unix timestamp Git’s
upload-pack expects (a bare integer), not a human date string.
deepen_not: Vec<String>Deepen history but stop at (exclude) commits reachable from these refs/oids
(git fetch --shallow-exclude <ref>). Each entry is sent as a wire
deepen-not <ref>.
initial_remote_fetch: boolFirst fetch populating a remote-tracking namespace (clone): write packed-refs
and refs/remotes/{remote}/HEAD.
remote_name: Option<String>Remote name paired with Self::initial_remote_fetch (e.g. "origin").
fetch_source: Option<String>Source label written into FETCH_HEAD.
crate::remote::Remote::fetch sets this from the fetch URL when unset.
configured_refspecs: Vec<String>Configured remote.<name>.fetch refspecs (for opportunistic tracking when Self::refspecs
overrides them). crate::remote::Remote::fetch fills this for named remotes.
clone_reflog: Option<CloneReflog>Clone-only reflog entries for refs/remotes/{remote}/HEAD (not remote branches).
diagnostics: Option<DiagnosticsHandle>Diagnostic sink for crate::diagnostics::Trace::Network events.
network_trace: boolWhen true with Self::diagnostics, fetch paths may emit network trace events.
index_pack_threads: Option<usize>Override worker threads for index-pack after a received pack (None = config/default).
thread_policy: ThreadPolicyGlobal / embedder thread policy (--threads); applied when Self::index_pack_threads is unset.
environment: EnvironmentDiscovery/config environment for pack ingest (GIT_CONFIG_*, -c); defaults to empty.
pack_spool_only: boolWhen true, spool the negotiated pack to disk and return without index-pack or ref updates.
http_protocol_version: Option<u8>Override the HTTP Git-Protocol header for this fetch (None → client default, usually v2).
remote_progress: boolWhen true, omit the no-progress capability/argument so the remote may
send side-band channel-2 progress. Default false preserves today’s wire bytes.
filter: Option<ObjectFilterSpec>Object filter for partial clone (blob:none, blob:limit=<n>). Omitted when
unset; promisor remotes may reapply remote.*.partialclonefilter automatically.
mark_received_pack_promisor: boolWhen true, the received pack is written with a sibling .promisor marker.
Set by the fetch driver when a filter was sent on the wire; callers should
leave this false.
object_wants: Vec<ObjectId>Explicit object ids to fetch (promisor on-demand); skips refspec matching and ref updates.
promisor_object_fetch: boolOn-demand promisor object fetch: always mark the received pack promisor.
Implementations§
Source§impl FetchOptions
impl FetchOptions
Sourcepub fn has_deepen_request(&self) -> bool
pub fn has_deepen_request(&self) -> bool
Whether this fetch carries any shallow/deepen request (an explicit
fetch_depth/deepen-since/deepen-not). Note this does NOT cover the
“already shallow, fetching more of the same boundary” case — that is
driven by the on-disk shallow file, checked separately by the fetch
paths via crate::shallow::load_shallow_oids.