Module git_repository::easy [−][src]
Expand description
Which Easy* is for me?
- Use
Easy*Exclusivewhen the underlyingRepositoryeventually 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
Repositorydoesn’t ever have to change, for example as in one-off commands.
Implementation Notes
- Why no
Easywith simply an ownedRepository, insteadRc<Repository>is enforced- When this is desired, rather use
EasySharedand drop theEasySharedonce mutable access to theRepositoryis needed.Accessis not usable for functions that require official&mutmutability, it’s made for interior mutability to support trees of objects.
- When this is desired, rather use
Modules
Structs
The head reference, as created from looking at .git/HEAD, able to represent all of its possible states.
A detached, self-contained object, without access to its source repository.
A decoded object with a reference to its owning 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.