⬡Search & filter
One toolbar search box narrows the commit log five different ways, and the branch pill controls how much history is in scope. Message, author and code searches run server-side so the lane graph is re-laid-out over just the matches.
Search modes — token search
There is a single search input (the icon mode-tabs were removed in 0.2.7). Focusing it opens a scope dropdown; the mode is chosen by typing a prefix, which becomes a removable coloured chip inside the input.
Entry point
- ToolbarFocus the search box → a dropdown lists Author File Hash Code with example syntax. ↑↓ + Enter pick one.
- PrefixType
author:,file:,hash:,code:(or@for author) and it converts into a chip; no prefix = Message search. - BackspaceOn an empty input, removes the active scope chip and returns to Message.
Message filter log --grep
- Typing debounces, then Go re-runs log with
grep. - The graph is re-laid-out over the matching commits — connectors reflect just the filtered set.
Hash prefix jump
- Entered as a hash prefix (e.g.
a0c103). - Resolved client-side against the loaded history to jump to the matching commit.
File search log.file
- Enter a file name or path.
- Go returns the commits touching that path (backs the same query as file history).
Author filter log --author
- Enter an author name or email.
- Go re-runs log with
authorserver-side; the graph re-lays out over the matches.
Code search — pickaxe log -S
"When did this string appear or vanish?" Searches content changes, not messages — only commits where the number of occurrences of the string changed (introduced or removed) match. Unrelated commits that merely shipped alongside the string don't.
Entry point
- ToolbarPick the Code scope — a full-width monospace snippet box opens below the toolbar (auto-grows to 6 lines, paste-friendly, multi-line supported).
- Unlike the other modes, code search runs only on Enter / the Search button — pickaxe scans every diff in history and is too expensive to run per keystroke. Shift+Enter inserts a newline; clearing the box restores the full log.
- Go runs log with
pickaxe(git log -S<string>); the graph re-lays out over the matches and the result count is flashed (N commits add or remove this snippet). - Why a commit matched — selecting a result restricts the detail pane's file list to the files where the snippet count actually changed (
diff-tree -S, thepickaxeparam on diff), labelled "· snippet matches". Opening a file's diff also highlights every occurrence of the snippet in the native diff editor.
Branch scope
Entry points
- Branch pillOpens a searchable branch picker with a pinned All branches first entry; the pill label reflects the active scope. (The separate All/This-branch toggle was removed in 0.2.7.)
- Pick a branchRestricts the log to that branch; picking All branches passes
--all.