11

私はWindows 7 を使用しており、SourceGear の DiffMerge ツールを使用しているため、この回答の「 Dave によるブログ エントリ」リンクの指示に従っています。ディレクトリを PATH システム変数に追加し、そこにファイルを配置しました。git\cmdgit-diff-diffmerge-wrapper.sh

#!/bin/sh
"C:\Program Files\SourceGear\Common\DiffMerge\sgdm.exe" "$1" "$2" | cat

(はい、これは DiffMerge の正しいパスです。)

.gitconfigファイルを編集してdiffdifftoolチャンクを含めました (投稿から行を直接コピーしましたが、彼はコメントアウトされた#external行に残しています。これをファイルの最後に追加しましたが、よろしいですか?)

[diff]
    # external = git-diff-wrapper.sh
    tool = diffmerge
[difftool "diffmerge"]
    cmd = git-diff-diffmerge-wrapper.sh "$LOCAL" "$REMOTE"

だから私は行きgit bash、行いgit difftool HEAD~ 67b8679 -- js/site/pizzabuilder.js、エンターを押します。何も起こりません。必要なgit difftool HEAD~ 67b8679ファイルを除外して実行すると、次のようになります。

Viewing: 'js/angular/hutlovers/hutlovers.js'
Launch 'diffmerge' [Y/n]: Y
C:\Program Files (x86)\Git/libexec/git-core/mergetools/defaults: line 17: git-diff-diffmerge-wrapper.sh: command not found

Viewing: 'js/angular/localization/StoreListCtrl.js'
Launch 'diffmerge' [Y/n]: n

Viewing: 'js/pizzahut/site/browser_version.js'
Launch 'diffmerge' [Y/n]: n

Viewing: 'js/pizzahut/site/dashboard.js'
Launch 'diffmerge' [Y/n]: n

コミット間で異なるすべてのファイルに対して続行しますが、DiffMerge を起動することはありません。エラーの解釈方法がわかりません。どのコマンドが見つかりませんか? difftool? 私はgitで1.7.11を実行しておりdifftool、バージョン1.6.3以降のgitに含まれていると思われます。

エラーで参照されているファイルの 17 行目を見ると、次のようになっています。

( eval $merge_tool_cmd )

このブロックの一部として:

diff_cmd () {
    merge_tool_cmd="$(get_merge_tool_cmd "$1")"
    if test -z "$merge_tool_cmd"
    then
        status=1
        break
    fi
    ( eval $merge_tool_cmd )
    status=$?
    return $status
}

誰でも私を助けることができますか?私は を日常的に使用していますがgit、ほとんどパワー ユーザーではありません。また、Windows シェル スクリプトについても何も知らないため、この投稿の指示に従うことは、現時点で私の知識の限界です。

4

6 に答える 6

7

差分マージ

これが役立つかどうかはわかりませんが、これはdifftoolDiffMerge を使用するための私の構成です。私は msysgit Bash を使用していることに注意してください(Cygwin ユーザーと PoshGit ユーザーで異なるかどうかはわかりません):

[diff]
    tool = dm
[difftool "dm"]
    cmd = C:/Program\\ Files/SourceGear/Common/DiffMerge/sgdm.exe \"$LOCAL\" \"$REMOTE\"

私は現在 Git 2.0 を使用していますが、これを Git 1.8.x または Git 1.7.x のいずれかでセットアップしたことを覚えているようです。試してみて、動作するかどうかを確認してください。

Beyond Compare 3 Pro のボーナス

私は現在、Beyond Compare 3 Proを使用して Windows でほとんどの差分を行っていますが、まだ DiffMerge を使用することもあります。difftool切り替えたい場合の設定は次のとおりです。

[merge]
    tool = bc3
[diff]
    tool = bc3
[difftool "dm"]
    cmd = C:/Program\\ Files/SourceGear/Common/DiffMerge/sgdm.exe \"$LOCAL\" \"$REMOTE\"
[difftool "bc3"]
    cmd = "\"c:/program files (x86)/beyond compare 3/bcomp.exe\" \"$LOCAL\" \"$REMOTE\""
[mergetool "bc3"]
    cmd = "\"c:/program files (x86)/beyond compare 3/bcomp.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\""
于 2014-06-21T02:18:21.113 に答える
-1
[diff]
    tool = meld
[difftool]
    prompt = false
[difftool "meld"]
    cmd = "\"C:\\Program Files (x86)\\Meld\\Meld.exe\" \"$LOCAL\" \"$REMOTE\""

上記の回答に追加します。これは、差分ツールとしてメルドを作成するための Windows 用の私の git 構成です。"

于 2020-03-25T18:39:43.593 に答える