のためのパターンを設定する(彼らは唯一の指定されたパターンに一致するファイルに対して呼ばれているように)、1は外部diffのためのパターンを定義し、ツールをマージすることができます:Gitリポジトリ:Mercurialのではdifftoolとmergetool
[diff-patterns]
**.ext = difftool
[merge-patterns]
**.ext = mergetool
定義する方法Gitのようなパターン?
git-config(1)の[mergetool]セクションには、パターン、マスク、または同様のものは何も言及されていません。
EDIT:
ここでは私の.git/configの関連の一部です:
[diff]
tool = difftool
[difftool "difftool"]
cmd = difftool.git.sh "$LOCAL" "$REMOTE" "$BASE"
[merge]
tool = mergetool
[mergetool "mergetool"]
cmd = mergetool.git.sh "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
は、今ではすべてのファイルのために動作します。
私はdifftoolとmergetoolは.ext
EDITで終わる名前のファイルに対してのみ呼ばれるようにしたい:私は、ファイル.git /情報は、/以下の内容で属性を追加した
:
*.ext diff=difftool
*.ext merge=mergetool
は、私はまた、
を追加しました10[diff "difftool"]
name = my custom diff driver
driver = difftool.git.sh %A %B %O
[merge "mergetool"]
name = my custom merge driver
driver = mergetool.git.sh %A %B %O %A
と私の.git/config。
今、私はそれは私のdifftoolの代わりにKDiff3のを呼び出す
git difftool
を実行します。何が間違っていますか?
備考:テストするのが簡単であるため、私はmergetoolではなくdifftoolで遊んでいます。私がdifftoolを構成すると、mergetoolを構成する方法がわかります。
EDIT:
Difftoolが機能するようになりました。
.git/configに:
[diff "difftool"]
command = difftool.git.sh
.git /情報/属性:(PATH中)
.ext diff=difftool
difftool.git.sh
#!/bin/sh
difftool.jar "$2" "$5"
しかし、そこにありますWindowsの副作用:git diff
がAPPCRASHになりました。
EDIT:
私はgit diff
のクラッシュやハングを回避する方法を考え出した:一つはgit difftool
を使用するか、sh
を通じてgit diff
を呼び出す必要があります:sh -c "git diff"
diffドライバにも同じことが適用されますか?それが機能するように管理できませんでした。私は本当に簡単なサンプルが必要です。 – utapyngo