Ragex.Git.Backend.CLI (Ragex v0.17.3)

View Source

Git backend that shells out to the git CLI binary.

This is the universal fallback -- it works on any system where git is installed. It is also the only path for operations that libgit2 does not support, such as git log -L (function-level line tracking).

All output is parsed from porcelain/machine-readable formats to avoid locale-dependent text issues.

Summary

Functions

Track the evolution of a function through history using git log -L.

Functions

function_log(repo_root, function_name, file_path, opts \\ [])

@spec function_log(String.t(), String.t(), String.t(), keyword()) ::
  {:ok, [Ragex.Git.Commit.t()]} | {:error, term()}

Track the evolution of a function through history using git log -L.

This operation is always handled by the CLI backend because libgit2 does not support the -L flag.

Parameters

  • repo_root -- absolute path to the repository root
  • function_name -- the function name (used in the regex pattern)
  • file_path -- path relative to repo root
  • opts -- :max_count (default 20)

Returns

{:ok, [Commit.t()]} with the commits that modified the function.