Module gix_ref::transaction

source ·
Expand description

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

Transactions currently allow to…

  • create or update reference
  • delete references

The following guarantees are made:

  • transactions are prepared which is when other writers are prevented from changing them
    • errors during preparations will cause a perfect rollback
  • prepared transactions are committed to finalize the change
    • errors when committing while leave the ref store in an inconsistent, but operational state.

Structs

Enums

  • A description of an edit to perform.
  • The desired value of an updated value
  • The way to deal with the Reflog in deletions.

Traits

  • An extension trait to perform commonly used operations on edits across different ref stores.