Module git_repository::easy[][src]

Expand description

Which Easy* is for me?

  • Use Easy*Exclusive when the underlying Repository eventually needs mutation, for instance to update data structures
    • This is useful for long-running applications that eventually need to adapt to changes in the repository and pick up new packs after a GC operation or a received pack.
  • Use the non-exclusive variants if the Repository doesn’t ever have to change, for example as in one-off commands.

Implementation Notes

  • Why no Easy with simply an owned Repository, instead Rc<Repository> is enforced
    • When this is desired, rather use EasyShared and drop the EasyShared once mutable access to the Repository is needed. Access is not usable for functions that require official &mut mutability, it’s made for interior mutability to support trees of objects.

Modules

Structs

A detached, self-contained object, without access to its source repository.

A decoded object with a reference to its owning repository.

An ObjectId with access to a repository.

A reference that points to an object or reference, with access to its source repository.

State for use in Easy* to provide mutable parts of a repository such as caches and buffers.

A decoded tree object with access to its owning repository.

Traits

A utility trait to represent access to a repository.