6

最近、macOS を新規インストールしました。Sourctree と diffmerge をインストールし、diffmerge をデフォルトのマージ ツールとして設定しました。何らかの理由で、'Resolve Conflicts -> Open External Merge Tool' を選択するたびに、sourcetree が待機中のビューを開き、直接閉じます。

ソースツリーの私の設定ページ:

ここに画像の説明を入力

これは、sourcetree が差分マージを構成するときのルート .gitconfig の外観です。

[core]
    excludesfile = /Users/[username]/.gitignore_global
[user] 
    name = ---- -----
    email = -----@-----.--
[commit]
    template = /Users/[username]/.stCommitMsg
[credential]
    helper =  !/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/bin/java -Ddebug=false -Djava.net.useSystemProxies=true -jar /usr/local/Cellar/git-credential-manager/2.0.4/libexec/git-credential-manager-2.0.4.jar

[difftool "DiffMerge"]
[mergetool "DiffMerge"]
[diff]
    tool = diffmerge
[difftool "diffmerge"]
    cmd = /usr/local/bin/diffmerge \"$LOCAL\" \"$REMOTE\"
[merge]
    tool = diffmerge
[mergetool "diffmerge"]
    trustExitCode = true
    cmd = /usr/local/bin/diffmerge --merge --result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
[difftool "sourcetree"]
    cmd = /Applications/DiffMerge.app/Contents/MacOS/DiffMerge/Contents/MacOS/DiffMerge --nosplash \"$LOCAL\" \"$REMOTE\"
path = 
[mergetool "sourcetree"]
    cmd = /Applications/DiffMerge.app/Contents/MacOS/DiffMerge/Contents/MacOS/DiffMerge --merge --result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
    trustExitCode = true
4

3 に答える 3

20

これは、インストーラーではなく pkg install を介して diffmerge をインストールしたときに発生しました。diffmergeこれは、diffmergeへのパスを設定する(またはbin構成を更新する)必要があるよりも、コマンドを認識するようにbashを構成しないように見えます。

これを解決するために、Visual Diff Tool と Merge Tool を手動で構成しました (起動時に毎回煩わしいスプラッシュ画面を無効にできるという利点があります)。

ソースツリーの設定ページ

ここに画像の説明を入力

差分

コマンド:/usr/local/bin/diffmerge 引数--nosplash "$LOCAL" "$REMOTE"

マージ

コマンド:/usr/local/bin/diffmerge 引数--nosplash --merge --result="$MERGED" "$LOCAL" "$BASE" "$REMOTE"

--nosplash 引数はオプションですが、作業を開始する前に常に閉じなければならない (私の意見では役に立たない) ポップアップを防ぎます。

Git 構成ファイル:

[core]
    excludesfile = /Users/[username]/.gitignore_global
[user]
    name = ---------
    email = ---------@------.--
[commit]
    template = /Users/[username]/.stCommitMsg
[credential]
    helper = !/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/bin/java -Ddebug=false -Djava.net.useSystemProxies=true -jar /usr/local/Cellar/git-credential-manager/2.0.4/libexec/git-credential-manager-2.0.4.jar

[difftool "DiffMerge"]
[mergetool "DiffMerge"]
[diff]
    tool = diffmerge
[difftool "diffmerge"]
    cmd = /usr/local/bin/diffmerge \"$LOCAL\" \"$REMOTE\"
[merge]
    tool = diffmerge
[mergetool "diffmerge"]
    trustExitCode = true
    cmd = /usr/local/bin/diffmerge --merge --result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
[difftool "sourcetree"]
    cmd = /usr/local/bin/diffmerge --nosplash \"$LOCAL\" \"$REMOTE\"
    path = 
[mergetool "sourcetree"]
    cmd = /usr/local/bin/diffmerge --nosplash --merge --result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
    trustExitCode = true

diffmerge コマンド ライン引数の詳細:

差分: https://sourcegear.com/diffmerge/webhelp/sec__clargs__diff.html

マージ: https://sourcegear.com/diffmerge/webhelp/sec__clargs__merge.html

于 2018-11-11T14:50:15.247 に答える