Skip to contents

This tool allows an LLM to run gert::git_diff_patch(), equivalent to git diff in the terminal, and to see the detailed changes made in a commit.

Usage

btw_tool_git_diff(ref = NULL, `_intent` = "")

Arguments

ref

a reference such as "HEAD", or a commit id, or NULL to the diff the working directory against the repository index.

_intent

An optional string describing the intent of the tool use. When the tool is used by an LLM, the model will use this argument to explain why it called the tool.

Value

Returns a diff patch as a formatted string.

Examples

withr::with_tempdir({
  gert::git_init()
  gert::git_config_set("user.name", "R Example")
  gert::git_config_set("user.email", "ex@example.com")

  writeLines("hello, world", "hello.md")
  gert::git_add("hello.md")
  gert::git_commit("Initial commit")

  writeLines("hello, universe", "hello.md")

  # What the LLM sees
  cat(btw_tool_git_diff()@value)
})
#> ```diff diff --git a/hello.md b/hello.md
#> index 4b5fa63..d972925 100644
#> --- a/hello.md
#> +++ b/hello.md
#> @@ -1 +1 @@
#> -hello, world
#> +hello, universe
#>  ```