TurtleGit for Mac

View Markdown source ↗

Microsoft Word document comparison

The bundled Word adapter opens a new Microsoft Word comparison result with tracked text and formatting changes. It ports the modern Word branch of TortoiseGit's diff-doc.js; it does not flatten a document to plain text. Install Word separately, or install LibreOffice with its bundled Python runtime. When Word is unavailable, this comparison association automatically tries the LibreOffice adapter, following the source fallback. Permission denial, an ambiguous Word result or a timeout does not dispatch a second comparison. The adapter is offered for .doc, .docx, .docm, .dot, .dotx and .odt. Actual format conversion is performed by Word. PowerPoint comparison has separate native slide and Open XML revision review with editable-copy output; binary PPT editing, combined result rendering and complete Windows revision parity remain open. Excel comparison has its own native adapter. Word merge now has its own three-way workflow.

New unsaved Diff Viewer defaults include the five DOC/DOCX/DOCM/DOT/DOTX associations. ODT now defaults to LibreOffice; Word remains explicitly selectable for it. Existing saved settings remain authoritative. To restore the bundled associations, use Settings → Diff Viewer → Advanced → Restore Defaults, accept Advanced, then Apply Settings. Other associations remain. The program editor can select Microsoft Word document comparison explicitly. Hold Shift when opening a comparison to bypass an enabled Word association and retain the regular internal byte/text view.

The compared historical/working bytes are copied exactly into separate private, read-only files retaining their filenames. Like upstream's modern Word branch, Word opens the base and compares it against the new document, using a new result, author Comparison, formatting detection and ignored comparison warnings. The result is marked saved to avoid the source's unwanted Save As prompt only after the handler identifies a new result window/document. Ambiguous identity reports an error and retains possible results. It never marks the active document saved merely because it is active. Outline view is normalized to normal view before comparison; master/reading view is normalized only without subdocuments, matching the source condition. Only the private input document opened by that call is closed. The original repository files are not modified. Existing document names and window IDs are excluded from result selection; see the concurrent-window acceptance limitation below. Automatic macros are suppressed during input opening, as in the source. The handler reads back the disabled setting before opening inputs and verifies restoration of the prior Word automation-security setting on success and failure. An unconfirmed restoration is an error, and captured files are retained for an uncertain handoff. Other Word preferences are not changed. TurtleGit does not accept/reject tracked changes, save over the originals, stage files or mark a conflict resolved through this diff adapter.

Paths are passed as Apple-event descriptors to a fixed handler. Quotes, Unicode, spaces and source-like text inside a filename cannot become script syntax; no shell interprets them. Preparation runs off the UI thread. Cancellation before Word dispatch suppresses it. During automation, a private cancellation marker allows the handler to stop between Word commands, close proven private inputs and restore security; an in-flight Word command cannot be rolled back. The owning operation and Quit guard last until its worker settles, including a reply after the original dialog closes. Retired owners do not show stale errors or open replacement windows. Word itself is never terminated by cancellation.

Permission and failures

macOS can ask to allow TurtleGit to control Word. If denied, enable it in System Settings → Privacy & Security → Automation and retry the comparison. A missing Word installation removes its unused private copies before trying LibreOffice. A compile failure or confirmed denied/unopened request also removes unused Word copies. If LibreOffice is unavailable, its own installation/runtime error is shown; Word merging does not use this fallback. Success or a failure that might have opened documents retains them so a receiving Word document cannot lose its input files. Settings → Saved Data → Temp files or OS temporary cleanup can later remove those copies. If a comparison error remains visible, dismiss it before retrying normally.

The app's Automation usage description covers Word comparison and Apple Mail composition. The installed Word scripting dictionary declares no scripting access groups, so the AppStore preparation configuration requests the narrowly targeted com.microsoft.Word Apple-event temporary exception, alongside the existing compose-only Mail scripting target. This follows Apple's temporary exception documentation. Apple requires information about each such exception in App Store Connect. The source declaration is not proof that signing, sandbox execution or App Review has accepted it. Word's own file-access/format/security prompts still apply.

Evidence and remaining acceptance

Core checks cover exact snapshots, private permissions/names, cancellation, association/Shift behavior and retention policy. Native workflow checks use the shipping comparison dispatcher and literal Apple-event arguments, with an intercepted Word executor to avoid operating on user documents or accepting Automation prompts. The optional local terminology check compiles the fixed handler against the installed Word dictionary without executing a comparison.

New-window identification is conservative, but it is not a provenance receipt from Word: concurrent user-created/closed windows can still make result attribution uncertain. Physical acceptance of that case remains open.

Live Word output, track-change direction, all formats/converters, protected/macro documents, TCC and Word file-access dialogs, full error/timeout variants, physical interaction and signed Finder/App Store acceptance remain unverified. No complete Word, document-tool, dialog or application parity claim follows from these checks.