web-dev-qa-db-ja.com

git difftoolの万華鏡

万華鏡を使ってみましたgit difftool 2つのブランチを比較します。

だから私は ksdiff をインストールし、.gitconfig

 [diff]
     tool = kaleidoscope
 [difftool "kaleidoscope"]
     cmd = ksdiff --changeset $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$MERGED") && pwd)/$(basename "$MERGED")

走っているとき

git difftool myBranch otherBranch 

エラーが表示されるcannot use duplicate files within the same file list

18
svassr

私はそれを構成する方法を見つけました。 Kaleidoscopeメニューの下のKaleidoscope自体には、Integrationというリンクがありますいくつかのバージョン管理ソリューションの構成ウィンドウを開きます。

Kaleidoscope "Integration" configuration window

インストール後ksdiffConfigureボタンをクリックすると、.gitconfigファイルに次の行が追加されます。

[diff]
    tool = Kaleidoscope
[difftool "Kaleidoscope"]
  cmd = ksdiff --partial-changeset --relative-path \"$MERGED\" -- \"$LOCAL\" \"$REMOTE\"
[merge]
    tool = Kaleidoscope
[mergetool "Kaleidoscope"]
  cmd = ksdiff --merge --output \"$MERGED\" --base \"$BASE\" -- \"$LOCAL\" --snapshot \"$REMOTE\" --snapshot
  trustExitCode = true

次に、次のコマンドを実行すると、各ファイルが連続して開きます

git difftool myBranch otherBranch  -y -t Kaleidoscope

-

メモ:

  • -yは、各ファイルのdifftoolにKaleidoscopeを使用するかどうかを尋ねるプロンプトを表示しないようにしています。デフォルトの回答は「はい」です。
  • -t Kaleidoscopeファイルでは、デフォルトのdifftoolがすでにKaleidoscopeに設定されているため、.gitconfigはここではオプションです。
36
svassr