Mac に DiffMerge をインストールし、指示に従って使用するように git を構成しましたが、うまく機能します。
http://twobitlabs.com/2011/08/install-diffmerge-git-mac-os-x/#comment-140648
Hit return to start merge resolution tool (diffmerge):
/usr/lib/git-core/git-mergetool: 1: eval: diffmerge: not found
merge of app/Http/Controllers/WizardController.php failed
何か案は?必要な別の設定がありますか….?
私が実行した構成は次のとおりです。
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd 'diffmerge "$LOCAL" "$REMOTE"'
git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd 'diffmerge --merge --result="$MERGED" "$LOCAL" "$(if test -f "$BASE"; then echo "$BASE"; else echo "$LOCAL"; fi)" "$REMOTE"'
git config --global mergetool.diffmerge.trustExitCode true
私が実行するコマンド (解決する git 競合がある場合) は次のとおりです。
git mergetool
ありがとう
追加されたコメント:
CodeAnywhere サーバーなどのリモート サーバーに接続されている SSH ターミナルがあり、「git mergetool」を実行すると、リモート システムで diffmerge が見つからない /usr/lib/git-core/git-mergetool が実行されるようです。 . diffmerge が実際にリモートに何かをインストールする場所がまったくわかりません。
これは、diffmerge に関連する git config 部分です。
diff.tool=diffmerge
difftool.diffmerge.cmd=diffmerge "$LOCAL" "$REMOTE"
merge.tool=diffmerge
mergetool.diffmerge.cmd=diffmerge --merge --result="$MERGED" "$LOCAL" "$(if test -f "$BASE"; then echo "$BASE"; else echo "$LOCAL"; fi)" "$REMOTE"
mergetool.diffmerge.trustexitcode=true
これは、git が diffmerge を実行するために使用する実際のコマンドのようです。
mergetool.diffmerge.cmd=diffmerge --merge --result="$MERGED" "$LOCAL" "$(if test -f "$BASE"; then echo "$BASE"; else echo "$LOCAL"; fi)" "$REMOTE"
エラーをスローするファイルは /usr/lib/git-core/git-mergetool であり、コマンドラインから上記のコマンドを実行しているようで、リモートマシンで diffmerge が見つからないファイルのこの行までトレースしました。ローカル マシンにインストールされていたため、リモート マシンにはインストールされていません。
if ! run_merge_tool "$merge_tool" "$present"
then
echo "merge of $MERGED failed" 1>&2
mv -- "$BACKUP" "$MERGED"
if test "$merge_keep_temporaries" = "false"
then
cleanup_temp_files
fi
return 1
fi
リモートにインストールし忘れたものがあるか、ファイルをローカルに「一時コピー」してからローカルで diffmerge を実行し、リモート ファイルをリモートに返すように指示する、見逃した構成があるようです。この場合、どれが見逃されたのかわかりません。
ありがとう
迅速な返信をありがとう@nwinkler。あなたの提案を理解している場合、リモートで用語勝利を実行するのではなく、ローカル Mac で用語勝利を実行することです (Mac で実行すると、デフォルトで diffmerge.sh などが Mac の用語で利用可能になります)。ターム win として実行されているドライブを介して勝つ) 一方、リモートのターム win はローカル ドライブに直接アクセスできません。私が間違っている場合は、私を修正してください。
あなたが提案したように「どのdiffmerge」を実行しましたが、まったく見つかりません(リモートにインストールされていません)。
あなたの提案を詳しく調べて、リモートにインストールするものがあるかどうかを確認し、提案された「インストーラー」も試します。
ローカル Mac から実行している term win から実行すると、正しく動作します。
リモートでdiffmergeが見つからないことに同意します。そこに何がインストールされているのかわかりません....
ありがとう、調査を続け、あなたの提案をさらに試してください。