grove
Documentation menu

Commit and diff search

Besides code, Grove searches the history of your repositories: commit messages with type:commit, and the lines commits added or removed with type:diff.

Commit messages: type:commit

type:commit repo:spf13/cobra completion

Finds commits whose message contains the terms. Each result shows the subject, the start of the message body, the author and the date; click the hash to open the commit and its diff.

Commit search results with subjects, message bodies, authors and datesCommit search results with subjects, message bodies, authors and dates

Filters for commit search:

Filter Meaning
repo: only commits of matching repositories
author:name commits by an author whose name or email matches
-author:name leave out commits by that author, e.g. -author:bot

Several author: filters must all match. Results load as you scroll instead of using count:.

Changed lines: type:diff

type:diff repo:api file:internal/ openConnection

Finds commits whose diff added or removed a line matching the query, like git log -G. Use it to find when a call was introduced, when a configuration key disappeared, or who last touched a pattern. Each result lists the files whose diff matched.

Diff search results listing the commits and files whose changes matchDiff search results listing the commits and files whose changes match

Diff search runs git on Grove’s mirrors rather than querying an index, so it is slower and has some rules:

  • A repo: filter is required and may match at most 10 repositories.
  • It stops at the search time limit (40 seconds by default) and shows the commits found so far, marked incomplete.
  • It covers the indexed branch, the same commits as type:commit.
  • Matching ignores case. In Regex mode the pattern is a POSIX extended regular expression: write [0-9] instead of \d.
  • file: takes git pathspecs such as file:src/ or file:*.go. author: and -author: work as for commit search.

Commit and diff search need the git binary on the server, which the container image includes.