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 GitCheckouts 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.