Skip to main content
Whether you open a commit or a Working copy file, the same diff viewer is used.

Viewer controls

When a diff tab is open, diff-specific buttons appear in the content header.
View settings are stored globally, shared by every diff tab, and preserved when you relaunch the app.

Unified view vs split view

Shows changes stacked in a single column. Wrap long lines can only be turned on in this view.
The unified diff view. An @@ -0,0 +1,88 @@ hunk header sits at the top, and below it the lines of a new TypeScript file continue with line numbers and + markers on a green background

Syntax highlighting

In the Diff section under Settings → ParalleLane → Appearance, turn on Syntax highlighting to apply language-specific colors to keywords, strings, comments, and numbers.
A cropped view of the upper-left corner of a TypeScript diff with syntax highlighting turned on. Below the @@ -0,0 +1,88 @@ hunk header at the top, added lines 1–11 are visible, with the export, type, and const keywords, the string and number types, the monthly-close string literal, and numeric values each shown in a different color
Unrecognized file types or unsupported languages are shown as plain text.

Searching inside a diff

Open the search bar at the top right of the diff to show a match count (3 / 12) and move between results with the up and down buttons. The key that opens it is listed on the Shortcuts page.
The search bar open at the top right of the diff. The input field contains monthly-close, with a 1 / 1 counter, up and down navigation buttons, and a close button on the right, and the matching string in the body is highlighted in orange with its entire line marked as the current match

Copying a whole diff

Select and copy the whole diff, and you get standard diff text with hunk headers (@@ … @@) and +/− prefixes.

Image diffs

png, jpg, jpeg, gif, webp, bmp, and ico files use a dedicated view to show the before and after images. The header shows a 2-up ↔ Swipe toggle button and a file history button, and each image gets its resolution and file size (1920×1080 · 245 KB) below it.
Shows the previous and current images side by side. For an added or deleted image, only one side has content; the empty side shows No image.
Swipe works only when both images have loaded. If the images can’t be overlaid (for example, when an image was added or deleted, or an LFS file hasn’t been downloaded), that file alone falls back to 2-up view.

Other file types

  • SVG is treated as text, so it opens in the text diff.
  • Binary files such as PDF and zip show a notice that no diff is available for the file.
  • For Git LFS files, a Git LFS object card appears in place of the diff, showing the download status.

When there’s nothing to show

A diff with no lines in it says which of the reasons applies.
A Working copy diff tab whose file no longer has changes closes on its own after you commit, stage, discard, or stash it, including when that happens in a terminal outside the app.

When the diff can’t be loaded

If reading the diff fails, the pane shows Couldn’t load this diff with the reason and a Retry button. The usual cause is that the commit no longer exists, for example after an amend or rebase run outside the app.
This only replaces the pane when there’s nothing to show yet. If a diff is already on screen and a background refresh fails, the diff you’re reading stays put and the failure comes through as a notification instead.