Crate git_ref[][src]

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.
  • ref-table
    • supersedes all of the above to allow handling hundreds of thousands of references.

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

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 reference name, safe to use for all operations.

Enums

Denotes the kind of reference.

Denotes a ref target, equivalent to Kind, but with immutable data.