#file #commit #source-file #line #algorithm #blame #blamed

gix-blame

A crate of the gitoxide project dedicated to implementing a 'blame' algorithm

1 unstable release

new 0.0.0 Jan 18, 2025

#94 in #source-file


Used in 3 crates (via gix)

MIT/Apache

620KB
12K SLoC

A crate to implement an algorithm to annotate lines in tracked files with the commits that changed them.

Terminology

  • Source File
    • The file as it exists in HEAD.
    • the initial state with all lines that we need to associate with a Source File.
  • Blamed File
    • A file at a version (i.e. commit) that introduces hunks into the final 'image'.
  • Suspects
    • The versions of the files that can contain hunks that we could use in the final 'image'
    • multiple at the same time as the commit-graph may split up.
    • turns into Source File once we have found an association into the Blamed File.

Dependencies

~15–26MB
~446K SLoC