22

こんにちは、opendiff を git mergetool として使用しようとしていますが、mergetool を実行すると、次のエラー メッセージが表示されます。

マージ ツール opendiff は「opendiff」としては利用できません

私は何を間違っていますか?以前は正常に動作していましたが、新しいハードドライブをインストールしたため、動作しなくなりました:(

4

3 に答える 3

2

git は --dir-diff (-d) をサポートしてディレクトリの差分を実行します。これは FileMerge に適しています。ただし、opendiff を --dir-diff とともに使用すると、いくつかの小さな問題があります。opendiff には --merge ターゲット プリセットがなく、git は一時ファイルを削除するのが早すぎて変更を保存できません。私の回避策は、小さな bash スクリプトを使用して FileMerge を呼び出すことです。私はそれを呼んだgdiff

#!/bin/bash
# find top level of git project
dir=$PWD
until [ -e "$dir/.git" ]; do
  if [ "$dir" == "/" ]; then
    echo "Not a git repository" >&2
    exit 1;
  fi
  dir=`dirname "$dir"`
done
# open fresh FileMerge and wait for termination
open -a FileMerge -n -W --args -left "$1" -right "$2" -merge "$dir"

https://gist.github.com/miner/e73fc98a83a8fe05d9ef000d46d68a9f

次のように呼び出します。

git difftool -d -x gdiff

于 2016-04-25T13:08:54.980 に答える