web-dev-qa-db-ja.com

Visual Studio 2012の組み込みマージツールとGitの使用

だから、誰かが気づいたかどうかはわかりませんが、VS2012に同梱されている新しいマージツールは最高です。私は最近、ソース管理のためにGitに移動し、VS2012をデフォルトのdifftool/mergetoolとして設定できるようにしたいと考えています。

これを行う方法に関する提案はありますか?可能であれば、新しいインスタンスではなく、アクティブなVS2012ウィンドウで差分/マージを開始したいと思います。

30
Adam Drewery

Visual Studioで Git Source Control Provider を使用している場合、 この機能 が実装されており、バージョン1.0.0以降で利用可能です。

または Microsoft'sgit用のツール を使い始めると、組み込みのdiffツールも使用されます。 screenshots の一部からは、2方向にマージされ、結果が下部に表示されるようです。

13
R0MANARMY

この記事 これを行う方法を説明しています。私はこれを試してみましたが、うまくいきます。私の使用法では、差分はVisual Studioの既存のインスタンスで開かれました。

[diff]
    tool = vsdiffmerge
[difftool]
      Prompt = false
[difftool "vsdiffmerge"]
      cmd = '"C:/Program Files (x86)/Microsoft Visual Studio 11.0/Common7/IDE/vsdiffmerge.exe"' "$LOCAL" "$REMOTE" //t
      keepbackup = false
      trustexitcode = true
[merge]
      tool = vsdiffmerge
[mergetool]
      Prompt = false
[mergetool "vsdiffmerge"]
      cmd = '"C:/Program Files (x86)/Microsoft Visual Studio 11.0/Common7/IDE/vsdiffmerge.exe"' "$REMOTE" "$LOCAL" "$BASE" "$MERGED" //m
      keepbackup = false
      trustexitcode = true

または、%VSINSTALLDIR%を使用して、開いたコマンドラインに一致するVisual Studioのバージョンを常に参照します(これは、Visual Studioコマンドプロンプトショートカットを使用するか、vsvars32.batを手動で呼び出すことにより、Visual Studio環境がセットアップされている場合にのみ機能します):

[diff]
    tool = vsdiffmerge
[difftool]
      Prompt = false
[difftool "vsdiffmerge"]
      cmd = '"%VSINSTALLDIR%Common7/IDE/vsdiffmerge.exe"' "$LOCAL" "$REMOTE" //t
      keepbackup = false
      trustexitcode = true
[merge]
      tool = vsdiffmerge
[mergetool]
      Prompt = false
[mergetool "vsdiffmerge"]
      cmd = '"%VSINSTALLDIR%Common7/IDE/vsdiffmerge.exe"' "$LOCAL" "$REMOTE" "$BASE" "$MERGED" //m
      keepbackup = false
      trustexitcode = true
78
guanome

解答済みとしてマークされたソリューションは私にはうまくいきませんでしたが、これはうまくいきました(パスにvsdiffmerge.exeの場所がありました-それに関係があるかどうかわかりません):

[diff]
    tool = vsdiffmerge
    guitool = vsdiffmerge
[difftool]
    Prompt = true
[difftool "vsdiffmerge"]
    cmd = $LOCAL $REMOTE /t
    keepbackup = false
    trustexistcode = true
    path = C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/vsDiffMerge.exe
[merge]
    tool = vsdiffmerge
[mergetool]
    Prompt = false
[mergetool "vsdiffmerge"]
    cmd = $REMOTE $LOCAL $BASE $MERGED /m
    keepbackup = false
    trustexitcode = true
    path = C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/vsDiffMerge.exe
1
Küzdi Máté