## Module utils

Source
Expand description

Utilities for handling git repositories, mainly around authentication/cloning.

## Structs§

CheckoutGuard 🔒
  See `GitCheckout::reset` for rationale on this type.
GitCheckout
  A local checkout of a particular revision from a `GitDatabase`.
GitDatabase
  A local clone of a remote repository’s database. Multiple `GitCheckout`s can be cloned from a single `GitDatabase`.
GitRemote
  A remote repository. It gets cloned into a local `GitDatabase`.
GitShortID
  A short abbreviated OID.

## Enums§

FastPathRev 🔒
  The result of GitHub fast path check. See `github_fast_path` for more.

## Constants§

CHECKOUT_READY_LOCK 🔒
  A file indicates that if present, `git reset` has been done and a repo checkout is ready to go. See `GitCheckout::reset` for why we need this.

## Functions§

absolute_submodule_url 🔒
  Constructs an absolute URL for a child submodule URL with its parent base URL.
clean_repo_temp_files 🔒
  Removes temporary files left from previous activity.
fetch
  Attempts to fetch the given git `reference` for a Git repository.
fetch_with_cli 🔒
  Attempts to use `git` CLI installed on the system to fetch a repository, when the config value `net.git-fetch-with-cli` is set.
fetch_with_gitoxide 🔒
fetch_with_libgit2 🔒
github_fast_path 🔒
  Attempts GitHub’s special fast path for testing if we’ve already got an up-to-date copy of the repository.
has_shallow_lock_file 🔒
  `gitoxide` uses shallow locks to assure consistency when fetching to and to avoid races, and to write files atomically. Cargo has its own lock files and doesn’t need that mechanism for race protection, so a stray lock means a signal interrupted a previous shallow fetch and doesn’t mean a race is happening.
init 🔒
  Initializes a Git repository at `path`.
is_github 🔒
  Whether a `url` is one from GitHub.
is_short_hash_of 🔒
  Whether `rev` is a shorter hash of `oid`.
looks_like_commit_hash 🔒
  Whether a `rev` looks like a commit hash (ASCII hex digits).
maybe_gc_repo 🔒
  Attempts to `git gc` a repository.
reinitialize 🔒
  Reinitializes a given Git repository. This is useful when a Git repository seems corrupted and we want to start over.
reset 🔒
  `git reset --hard` to the given `obj` for the `repo`.
resolve_ref
  Resolves `GitReference` to an object ID with objects the `repo` currently has.
rev_to_oid 🔒
  Turns a full commit hash revision into an oid.
serialize_str 🔒
with_authentication 🔒
  Prepare the authentication callbacks for cloning a git repository.
with_fetch_options
  Prepares the callbacks for fetching a git repository.