私はWindows 7 を使用しており、SourceGear の DiffMerge ツールを使用しているため、この回答の「 Dave によるブログ エントリ」リンクの指示に従っています。ディレクトリを PATH システム変数に追加し、そこにファイルを配置しました。git\cmd
git-diff-diffmerge-wrapper.sh
#!/bin/sh
"C:\Program Files\SourceGear\Common\DiffMerge\sgdm.exe" "$1" "$2" | cat
(はい、これは DiffMerge の正しいパスです。)
.gitconfig
ファイルを編集してdiff
とdifftool
チャンクを含めました (投稿から行を直接コピーしましたが、彼はコメントアウトされた#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 シェル スクリプトについても何も知らないため、この投稿の指示に従うことは、現時点で私の知識の限界です。