Gitility.RefTarget (Gitility v0.4.0)

Copy Markdown View Source

What a reference points at.

A direct ref carries an oid; a symbolic ref carries the raw name of the ref it points to. peeled is the fully-peeled commit/object ID when the store already knows it (annotated tags), sparing a peel round trip.

Symbolic chains are followed with a hard hop limit; a cycle returns {:error, %Gitility.Error{code: :malformed_ref}}.

Summary

Types

t()

@type t() :: %Gitility.RefTarget{
  kind: :direct | :symbolic,
  oid: Gitility.OID.t() | nil,
  peeled: Gitility.OID.t() | nil,
  symbolic_target: binary() | nil
}