Skip to main content

clone_url_to_bare

Function clone_url_to_bare 

Source
pub fn clone_url_to_bare(
    url: &str,
    dest: &Path,
    depth: Option<u32>,
    filter: Option<&str>,
) -> GitResult<()>
Expand description

Clone a remote git URL into dest as a bare repository, fetching all branches and tags. Mirrors the sley remote fetch path used by fetch_network_remote but starts from an empty init_bare rather than an existing repo.

Used by bridge import --path <URL> (Phase F): we clone into a scratch directory under the heddle repo’s .heddle/tmp/ and feed the resulting bare repo into the normal import path. Also used by clone for Git-overlay URLs, where depth carries through to a shallow clone.

  • depth — if Some(n) with n >= 1, a shallow clone with that many commits per ref for network transports (transport-v2 deepen <n> capability). file:// URLs use the native local-copy path so they do not spawn Git upload-pack helpers; shallow local copies are rejected until Heddle has native shallow-object pruning.
  • filter — currently rejected. Heddle’s Git-overlay runtime is intentionally Git-compatible but not Git-binary-dependent, and the native transport path does not yet expose partial-clone filtering.