Comparing images
Open an image’s Diff command from Working Tree, Commit or the changed-file list in Log. The built-in comparer displays the two versions in image panes. The headers identify each file and revision; a newly added or deleted image has an empty pane on the missing side. External comparison-tool settings can change which viewer opens.
Hover over a toolbar button to read its command name. The View menu offers these same controls:
- Arrange vertical changes the two panes from side-by-side to top/bottom.
- Fit image widths or Fit image heights matches that dimension between the images. A single option preserves proportions; enabling both matches both dimensions.
- Fit images in window shrinks images to the available space while keeping small images at their original size.
- Original size, Zoom in and Zoom out control magnification. Linked dimension controls remain active during these commands.
- Link image positions makes scrolling one pane move the other. Drag an image to pan, or use the scrollbars or trackpad.
- Image info shows byte size, pixel dimensions, available resolution and decoded color depth.
- Overlay images puts both versions in one pane. Move the vertical slider on the left to blend between them in 17 positions: top shows the first image, bottom the second. The slider follows the pane height; hover over it to read the current percentage. Click the button above it to change a nonzero blend to zero, then switch back to one. Double-click that button to alternate between the images once per second; its pressed appearance shows automatic blinking. A single click stops blinking and applies the normal endpoint toggle. Control-Shift-wheel adjusts the blend. Overlay keeps image positions linked. Turn it off to return to two panes.
- With overlay enabled, turn Blend alpha off for XOR comparison. Identical areas appear white and changed pixels appear in color. Turn it back on to restore the alpha slider.
Keyboard commands follow the source image viewer: O toggles overlay, F fits, S restores original size, W/H match widths/heights, I toggles information, +/− zoom, and Command-V switches arrangement. The arrow keys set alpha to zero (Up), one (Down), or half (Left/Right). Space toggles alpha endpoints and Escape closes the comparison.
The image comparison is read-only. It does not stage, save or resolve files. The viewer follows the app’s light/dark appearance.
Multi-image files have Previous/Next buttons and an image counter beneath the pane header. Navigation stops at the first or last image. GIF frames and TIFF pages offer Play/Stop; ICO variants offer navigation only. Linked panes receive the same player commands, while each file uses its own playback timing. Turn linking off to operate panes independently. Turning overlay on stops playback and hides frame/player controls until you return to separate panes. XOR mode hides the alpha controls and stops automatic blinking. Replacing images, opening a child sheet or closing the viewer stops its display timers; they do not resume silently after dismissal. Conflict panes have independent player controls; Select copies the complete original file, including all frames. See frame/page parity.
This portion of the port is still being completed. Broader image controls and format-specific behavior still need porting. See image comparison parity for the source comparison and verification scope.
For an image conflict, Edit conflicts opens Mine, Base and Theirs. Each pane has Select at the bottom right. Select copies that image to the working file, then asks whether to mark it resolved. No keeps the chosen image and the unmerged stages, so you can inspect or select another side. Yes stages the chosen image and closes the viewer. It does not commit or continue a rebase. For add/add conflicts, Base is empty and cannot be selected. Rebase pane titles identify which branch each side represents. See image conflict parity.
Use View → Transparent color… to choose a background behind transparent pixels. OK applies the chosen color to every pane in that window; Cancel keeps the current choice. View → Dark Mode (D) switches that image window's appearance and resets the transparency background to the theme default.
Use the app's File → Load Images… to compare image files without opening a repository. In an image viewer, File → Open… or Cmd+O opens the same native two-path chooser. Use Browse for either side, leave a side blank for a single image, or choose the same image twice. Cancel keeps the existing view.
Windows metafiles
WMF, EMF and EMF+ inputs use the bundled metafile renderer in the existing image panes. No separately installed converter is needed. Load Images and image-pane drops accept these formats too. Rendering supports captured vector paths, text, transforms, clipping and embedded bitmaps; recorded dimensions and available resolution feed the normal zoom and Image Info controls. EMF+ embedded images and texture brushes include indexed 1/4/8-bit palettes and 16-bit RGB555, RGB565 and ARGB1555, alongside 24/32-bit bitmap formats. Formatted EMF+ text supports wrapping, tabs, right-to-left and vertical layout, spacing, alignment, trimming and font decorations through native glyph outlines. See the text format scope for exact limits. Classic EMF clipping includes union, intersection, XOR and subtraction, path/rectangle clips, clip offsets and metaregions; see the classic clipping scope. EMF+ pen strokes include transformed nibs, compound bands, separate end caps, joins, dashes and Center/Inset positioning; see the pen scope.
The path-gradient renderer covers line polygons and canonical ellipses, off-center origins, separate surrounding colors and measured focus, blend, preset and gamma behavior. The same brushes paint fills, pen strokes and text outlines while geometry, clipping and recorded smoothing remain independent. Uniform and multicolor brushes have distinct Windows interpolation rules: multicolor focus is ignored, and preset-stop orientation differs. Linear gamma/alpha interpolation has independent Windows evidence. Original image bytes remain unchanged.
The general boundary continuation adds bounded cubic flattening, multiple figures and self-intersections, including multicolor brushes. Independent Windows controls establish the ordered fan behavior rather than treating inner figures as holes. Its new decoder and native acceptance checks are pending; the earlier checkpoint below covers the earlier profile. Figures close implicitly; wholly collinear boundaries and Gouraud edges with a zero truncated major-axis extent remain whole-image refusals. Aggregate point, raster and work budgets also apply. The initial failures and focused repairs are retained in the Mac checkpoint. The earlier profile passed its grouped Core checkpoint, affected repair checks and native workflow with both Git engines. Signed installed and complete format/visual acceptance remain open. File-backed EMF display uses Windows' inclusive natural canvas without scaling the drawing; embedded metafile textures retain their logical frame profile. See the path-gradient contract and Windows reference for exact combinations and remaining raster limits.
Embedded EMF+ images and texture/pen brushes also accept compressed GIF and TIFF, alongside PNG and JPEG/EXIF. TIFF displays its first page. Timed or NETSCAPE-loop GIFs display their first frame; untimed GIFs without a loop block display their final composite, including transparent delta frames. Embedded images remain static, and JPEG/TIFF orientation metadata does not rotate the recorded image. Classic WMF/EMF JPEG/PNG stretched transfers retain recorded crop, reflection and clipping through a bounded native decoding profile. See the compressed raster scope for Windows reference evidence, decoder limits and display-driver differences.
Classic pattern brushes include serialized monochrome WMF brushes and EMF monochrome/DIB brush records. Monochrome patterns follow the drawing's current text and background colors; colored DIB patterns retain their supplied colors. Palette-indexed patterns use the drawing's selected logical palette. The same patterns feed fills, strokes and supported raster/region/flood operations, with the existing brush origin, transform and clipping behavior. See the pattern brush contract and limits.
Decoding runs in the background. Closing or replacing an input cancels the owned decoder and prevents a delayed preview from replacing a newer view. Rendering never rewrites the original file or conflict stage. Selecting a conflict side copies its original bytes, including when that side cannot be rendered.
Some Windows drawing records and font behavior still need compatibility work. Unsupported records and malformed files retain an undecodable image side rather than showing an incomplete successful drawing. See the metafile renderer comparison and native consumer comparison for the supported record families, actual checks and remaining limits.
Classic WMF/EMF drawings can include Boolean pen/brush and bitmap raster operations. TurtleGit displays those operations in drawing order using the existing image panes; the original files remain the comparison and Save inputs. Unsupported bitmap or operation variants produce an input error. See metafile raster support for supported records and current limits.
Classic EMF bitmap transfers also include monochrome masks with foreground and background Boolean operations, parallelogram copies, RGB color-key transparency and constant/per-pixel alpha blending. They display through the same image and conflict panes; the original files remain unchanged. See the record contracts and limits for the accepted family and verification scope.
Classic WMF/EMF images can also contain direct bitmap scanline bands. Supported bands display in their recorded position without stretching the pixels. Full RLE, PNG and JPEG direct images use their corresponding decoder. Classic EMF rectangle and triangle gradients display interpolated vertex colors through the same panes. These additions preserve the original files and conflict stages; see the scanline and gradient contract for format limits and actual validation. Graph export to WMF/EMF is separate.