问题
I am trying to use command git difftool -d
for a folder diff.
The command get diff list successfully (show in FileMerge.app). But when I try to open each diff file. I get file does not exist
error.
Output log:
$ git difftool -d
merge tool candidates: opendiff kdiff3 tkdiff xxdiff meld kompare gvimdiff diffuse ecmerge p4merge araxis bc3 codecompare emerge vimdiff
Image:
I am using git version 1.8.1.1 on mac OS X 10.9. Thanks.
回答1:
The problem is the opendiff command returns which causes difftool to delete the temp directory and all the files you are comparing. After a ton of searching I found this, basically you have to keep that opendiff running until FileMerge exits. change your git config to:
[diff]
tool = opendiff
[difftool]
prompt = false
[difftool "opendiff"]
cmd = /usr/bin/opendiff \"$LOCAL\" \"$REMOTE\" -merge \"$MERGED\" | cat
found the answer here: https://gist.github.com/bkeating/329690
回答2:
Prevent opendiff from exiting by outputting to less or using sleep
E.g put following line to .gitconfig
[difftool "opendiff"]
cmd = /usr/bin/opendiff \"$LOCAL\" \"$REMOTE\" -merge \"$MERGED\" | less
来源:https://stackoverflow.com/questions/20491532/git-difftool-d-get-file-does-not-exist-error-on-mac