Skip to content
The mapdiff mark: two boxes joined by a wire, one of them lit

Review a change on a map of your code

A diff shows you lines. mapdiff shows you the functions and types that changed, where they sit in the codebase, and the code that uses them. Run it in a repository and it opens in your browser.

A commit drawn on the map: changed functions in colour, the list of changes on the left, the selected function’s callers lit, and its before and after under the map

The change as code

“This function’s signature changed”, “this type moved there”, with before and after side by side. See reviewing a change.

What it touches

Unchanged code that uses something you removed, renamed or re-signed is marked on the map. A line diff has no place for it.

A sensible order

What is used comes before what uses it, code before tests, one keypress per change. N for the next, R when you have read it.

A map of the whole repository

Four levels, from directories down to the text of every function. Click one to see who uses it and what it uses.

One command

mapdiff, mapdiff main...HEAD, mapdiff --pr 123. Each opens the map in your browser. See the quick start.

Four languages

Rust, Python, TypeScript and JavaScript, with references by type when the language’s indexer is installed.