TurtleGit for Mac

View Markdown source ↗

Applied-filter feedback and complete command/hover presentation — October 20, 2026

Source baseline: TortoiseGit 7338078f8ddd924b8cddee35f512f2286072136d, src/Resources/TortoiseProcENG.rc::IDR_REVISIONGRAPH, src/TortoiseProc/RevisionGraph/RevisionGraphDlg.cpp::OnViewFilter and RevisionGraphWnd.cpp::TooltipText.

The File/View popup commands now retain the resource's separator groups, with Find alongside Filter as the native addition. View commands reuse the pinned IDR_REVGRAPHBAR tiles; Save, Compare, Unified Diff and Help use the shared original command artwork. The owning application-menu icon preference controls these popup images independently of the always-visible toolbar and is reread for each menu opening, so Settings changes apply to existing Graph windows. Command-plus/minus and Command-F appear as native menu equivalents and continue through the same guarded dispatcher. F5 requires an unmodified key; Option/Control combinations fall through to AppKit. Shift used to produce the plus glyph remains supported.

RevisionGraphDlg.cpp::OnViewFilter checks both Filter representations when any From, To, Current Branch or Local Branch scope is applied. The native controller now derives menu and toolbar marks from those accepted options. Unaccepted sheet text does not set the mark, Cancel preserves the prior state, and Reset clears it. Modal ownership still disables competing commands; a displayed checkmark does not bypass operation or sheet guards. Filter and Overview use an explicit rounded native accent background/outline for their persistent checked state, independent of pressed-state highlighting. The original toolbar icons remain unchanged; disabled and increased-contrast appearances retain a distinct mark. Existing DialogGeometry.attach already supplies the app's installed window persistence and remains unchanged.

RevisionGraphWnd.cpp::TooltipText supplies the hover contract: hash, full author and email, author time to local minute precision, then subject/body with their original line separation. The native canvas now uses the captured graph metadata for all those fields rather than omitting email and exposing raw ISO date text. The source's 8,000 UTF-16-unit bound is retained without splitting a surrogate pair; AppKit supplies screen fitting and wrapping. Closed, busy or modal-blocked canvases refuse stale tooltip callbacks. Source font metrics and Windows tooltip lifetime remain platform adaptations, not pixel-parity claims.

The grouped native fixture is graph-presentation-native-2026-10-20.swift. It checks actual popup icons and owning preference changes, separator/accelerator metadata, accepted range/reset and all four filter predicates, modal command refusal, real graph author/body metadata, date conversion, bounded Unicode text, canvas callbacks and owned closure. Offscreen AppKit rasters compare actual checked and unchecked perimeter pixels outside the source icon for both Filter and Overview in light/dark and enabled/disabled appearances; state-property assertions alone do not establish visible feedback. Validation results are recorded by the batch checkpoint; this implementation description alone is not a pass claim.

Full source window/layout, physical keyboard/pointer/accessibility, installed signed Finder and distribution acceptance remain separate requirements. This family does not certify complete Revision Graph or application parity.

Native checkpoint

The Debug app and scoped native family checks passed with Apple and bundled Git across the grouped checkpoint and focused repairs. The batch evidence records exact checks, initial failures, repairs, captures and process cleanup. Core code was unchanged and its suites were not repeated. This local result does not prove a complete hosted CI pass, full source-window parity or signed distribution.