Skip to content

MacOS‐specific tools

Ilya Grigoriev edited this page Oct 30, 2024 · 2 revisions

FileMerge/opendiff (Mac XCode Developer tools)

This should already be installed once you install XCode on a Mac.

It supports diff editing and 3-pane conflict resolution. It does not support 4-pane conflict resolution.

The interface is a bit archaic, a lot of the operations are in the Actions menu.

The config below works around the fact that the opendiff command (which also launches FileMerge) does not wait for FileMerge to exit. With this config, you have to fully quit the FileMerge app for jj to proceed.

[merge-tools.filemerge]
# Note: You have to fully exit FileMerge for `jj` to move on.
program = "open"
edit-args = ["-a", "FileMerge", "-n", "-W", "--args",
             "-left", "$left", "-right", "$right",
             "-merge", "$output"]
merge-args = ["-a", "FileMerge", "-n", "-W", "--args",
              "-left", "$left", "-right", "$right",
              "-ancestor", "$base", "-merge", "$output",]

image

BBedit

Currently untested, see https://apple.stackexchange.com/questions/476348/use-apples-filemerge-from-command-line-and-have-it-wait-instead-of-exiting-imme/476359?noredirect=1#comment713493_476359.

It seems to support diff editing but not conflict resolution. According to the docs, it's a free feature of BBEdit, though you have to use up the 30-day trial to try it (which is why I haven't tried it yet) and to check that it actually works properly in the free version.

Clone this wiki locally