You may find that your question is answered below, but if not, feel free to contact us.
Frequently asked questions
opendiff is slow to launch and exit
opendiff sometimes takes quite a while (up to seconds) to launch FileMerge.
It also can take quite some time to exit after having done its job. This seems to be a known issue.
You can use FileMerge directly, instead of opendiff. Refer to the in-app help (in the Help menu) and look in the 'Configuring a graphical file comparison tool' section.
Other third-party file comparison tools are more responsive and can be easily configured in PatchViewer's Preferences window.
Third-party diff tools won't run (using PatchViewer from the Mac App Store)
You can ignore this section if you purchased PatchViewer outside of the Mac App Store. If you purchased PatchViewer from the Mac App Store, then there are sandboxing limitations you need to be aware of.
Applications purchased from the Mac App Store are run by OS X inside a 'sandbox' which restricts the operations an application can perform to order to improve security. These restrictions include limiting the processes (such as file comparison tools) that an application may launch.
PatchViewer may launch two kinds of third-party tools/scripts subject to either of these sandboxing constraints:
- Any tool/script within /Applications/ or its subfolders may be launched.
(Any child processes spawned by these tools are are also subject to the same constraint,
so there is no convenient back door access to /usr/bin/ for example!)
- Executable scripts/tools that you put it in ~/Library/Application Scripts/au.com.appledeveloper.PatchViewer.appstore/ may be launched. (These scripts may spawn any other tools, including tools in /usr/bin/.)
The second option is the more powerful and typically you would use it to create a wrapper script to launch another tool that would otherwise be inaccessible from the sandbox. Here is an example to launch Kaleidoscope's diff tool:#!/bin/shUnfortunately PatchViewer itself can't automatically create this script for you (again due to sandboxing limitations).
# Launch Kaleidoscope
/usr/bin/ksdiff "$1" "$2"
- Any tool/script within /Applications/ or its subfolders may be launched. (Any child processes spawned by these tools are are also subject to the same constraint, so there is no convenient back door access to /usr/bin/ for example!)
FileMerge crashes (Xcode 8.3+) (using PatchViewer from the Mac App Store)
You can ignore this section if you purchased PatchViewer outside of the Mac App Store. If you purchased PatchViewer from the Mac App Store, then read on.
The version of FileMerge (2.10) shipped with Xcode 8.3 and 8.3.1 crashes when it is launched by a sandboxed app. There are two workarounds:
- Configure PatchViewer's preferences to point to an older version of FileMerge (if you have another Xcode app bundle on your disk). eg. FileMerge version 2.8.3 in the Xcode 8.2.1 app bundle works fine.
- Create a script to launch FileMerge (as described in FAQ 2 above), put it in
and configure PatchViewer's preferences to point to it instead of the FileMerge binary:
# Launch FileMerge
/Applications/Xcode.app/Contents/Applications/FileMerge.app/Contents/MacOS/FileMerge -left "$1" -right "$2"
Remember to use chmod to give the script execute permission.
You must quit FileMerge before PatchViewer will allow you to invoke it again.
Note: this site is not endorsed by or related to Apple Inc. All trademarks are the property of their respective owners.