Crate git_ref

source ·
Expand description

A crate for handling the references stored in various formats in a git repository.

References are also called refs which are used interchangeably.

Refs are the way to keep track of objects and come in two flavors.

  • symbolic refs are pointing to another reference
  • peeled refs point to the an object by its ObjectId

They can be identified by a relative path and stored in various flavors.

  • files
    • loose
      • one reference maps to a file on disk
    • packed
      • references are stored in a single human-readable file, along with their targets if they are symbolic.

Feature Flags

  • serde1 — Data structures implement serde::Serialize and serde::Deserialize.

Re-exports

pub use git_object::bstr;

Modules

Transactions are the only way make changes to the ref store in order to increase the chance of consistency in a multi-threaded environment.

Structs

Indicate that the given BString is a validate reference name or path that can be used as path on disk or written as target of a symbolic reference
A validated and potentially partial reference name - it can safely be used for common operations.
A validated prefix for references to act as a namespace.
A validated complete and fully qualified owned reference name, safe to use for all operations.
A validated complete and fully qualified reference name, safe to use for all operations.
A validated complete and fully qualified referenced reference name, safe to use for all operations.
A fully owned backend agnostic reference

Enums

The various known categories of references.
Denotes the kind of reference.
Denotes a ref target, equivalent to Kind, but with mutable data.
Denotes a ref target, equivalent to Kind, but with immutable data.