Module git_ref::transaction[][src]

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

A change to the reflog.

A reference that is to be changed

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.