One changed file in a diff.
status follows Git's classification. For renames and copies,
old_path/new_path differ and similarity is the match score in
basis points of 100 (90 = 90% similar). Binary files carry
binary: true and no hunks. At patch detail, a :type_changed record
has exactly two hunks: a pure deletion of the old content followed by a
pure insertion of the new content.
Summary
Types
@type status() :: :added | :deleted | :modified | :renamed | :copied | :type_changed
@type t() :: %Gitility.Diff.File{ additions: non_neg_integer() | nil, binary: boolean(), deletions: non_neg_integer() | nil, hunks: [Gitility.Diff.Hunk.t()], new_mode: non_neg_integer() | nil, new_oid: Gitility.OID.t() | nil, new_path: binary() | nil, old_mode: non_neg_integer() | nil, old_oid: Gitility.OID.t() | nil, old_path: binary() | nil, similarity: 0..100 | nil, status: status() }