62

私は定期的に Atlassian SourceTree (Mac OS X 上) を使用して FileMerge を起動し、git マージの競合を解決しています。突然動作を停止しました。右クリックして選択するResolve Conflicts > Launch External Merge Toolと、FileMerge が起動し、中間ファイルが作成され、すぐに終了します。SourceTree は、マージ プロセスが完了したと解釈します。

問題は何ですか?どうすればデバッグ/修正できますか?

前の質問の ' SourceTree filemerge がすぐに終了し、4 つのファイルが作成されることに注意してください。修正方法は?' はこの特定のシナリオに対応していません (たとえば、タイトルには FileMerge が終了すると書かれていますが、本文には FileMerge がパネルの 1 つとして /dev/null を表示すると書かれています。さらに、マージの競合はファイルが削除されたことが原因ではありません。 )

4

7 に答える 7

177

問題を診断するためにopendiff、ターミナルから実行しました。次のエラーを受け取りました。

xcode-select: エラー: ツール 'opendiff' には Xcode が必要ですが、アクティブな開発者ディレクトリ '/Library/Developer/CommandLineTools' はコマンド ライン ツール インスタンスです

解決するには:

  1. [ Xcode] > [設定] > [場所] を開きます
  2. コマンド ライン ツールの横にあるドロップダウン ボックスをクリックし、現在の Xcode バージョンを選択します。(最近新しい Mac に Xcode をインストールしたので、これは空でした。)

コマンド ライン ツール

  1. ターミナルで再度実行opendiffすると、上記のエラーは表示されなくなります。

Launch External Merge Toolをクリックすると、FileMerge が SourceTree から正しく開くようになりました。

于 2017-01-05T17:09:14.500 に答える
8

Xcode が最近更新された場合は、新しいライセンス条項に同意する必要がある場合があります。ライセンス条項に同意しない場合、FileMerge (SourceTree から起動した場合) はすぐに終了します。

これを確認するには、シェルを開いて通常のユーザーとして実行します。

$ opendiff

ライセンスに問題がある場合は、それが表示されます。新しいライセンス条項に同意するには、次を使用して open diff を実行する必要がありますsudo

$ sudo opendiff

ライセンス条項に同意した後、 を使用して SourceTree から FileMerge の起動を再試行できるようになりましたResolve Conflicts > Launch External Merge Tool。FileMerge が起動し、正常に動作するはずです。

于 2015-09-23T00:14:29.173 に答える