web-dev-qa-db-ja.com

Beyond Compareを使用するようにVisual Studioを構成する方法

デフォルトで差分ツールとしてBeyond Compareを開くようにVisual Studioを構成します。これどうやってするの?

351
MrBoJangles

Visual Studioで、ツールメニューに移動し、オプションを選択して展開します。 ソース管理、(TFS環境では、Visual Studio Team Foundation Serverをクリック)、ユーザーの設定をクリックします。ツールボタン.

image to show location of the Configure User Tools button

追加ボタンをクリックします。

比較のために以下のオプションを入力/選択してください

  • 拡張子.*
  • 操作Compare
  • コマンドC:\Program Files\Beyond Compare 3\BComp.exe(バージョン番号を含む、あなたのマシンの正しいパスに置き換えてください)
  • 引数%1 %2 /title1=%6 /title2=%7

Beyond Compare Professional(3-way Merge)を使用している場合

  • 拡張子.*
  • 操作Merge
  • コマンドC:\Program Files\Beyond Compare 3\BComp.exe(バージョン番号を含む、あなたのマシンの正しいパスに置き換えてください)
  • 引数%1 %2 %3 %4 /title1=%6 /title2=%7 /title3=%8 /title4=%9

Beyond Compare v3/v4 StandardまたはBeyond Compare v2(2-way Merge)を使用している場合

  • 拡張子.*
  • 操作Merge
  • コマンドC:\Program Files\Beyond Compare 3\BComp.exe(バージョン番号を含む、あなたのマシンの正しいパスに置き換えてください)
  • 引数%1 %2 /savetarget=%4 /title1=%6 /title2=%7

あなたが比較を超えてタブを使用している場合

タブモードでBeyond Compareを実行すると、Visual Studioから一度に複数のファイルのセットを比較またはマージするときに混乱することがあります。これを修正するには、引数の最後に引数/soloを追加します。これにより、各比較が新しいウィンドウで開き、タブを使用して問題を回避できます。

537
schellack

Windows用Gitを使用したVisual Studio

(かなり古い) TFVC の代わりに GITソースコード管理システム として使用しているのであれば、Visual Studioにはありません。このようなものを設定するオプションがあります。
その代わりに(私の考えでは)GIT設定ファイルの設定 を使用します。ですから、Beyond Compareまたは他のサードパーティの比較ソフトウェアを使用するようにGITが既に設定されている場合は、これを選択して使用を開始します。

そうでない場合は、単にそれを設定してください(さらなる最新のヘルプについては ここ を参照してください)。 Visual StudioをBeyond Compare 4で設定するための関連情報は次のとおりです。

  1. Visual Studioを開きます。
  2. ツールメニューからオプションを選択します。
  3. 左側のツリーコントロールの[ソース管理]ブランチの下にある[プラグイン設定]を選択します。
  4. 右側のペインの「プラグイン設定」の下にある「Microsoft Git Provider」を選択します。
  5. グローバルgit設定ファイルを編集します(場所はWindowsのOSによって異なります%HOMEDRIVE%%HOMEPATH%/.gitconfig。詳細については here を参照)OR Gitリポジトリ、プロジェクトフォルダ内の.gitフォルダ内の設定ファイルを編集します。
  6. 以下の変更を反映するように設定ファイルを変更します。

    [diff]
        tool = bc4
    [difftool "bc4"]
        cmd = \"C:\\Program Files (x86)\\Beyond Compare 4\\BComp.exe\" \"$LOCAL\" \"$REMOTE\"
    [merge]
        tool = bc4
    [mergetool "bc4"]
        cmd = \"C:\\Program Files (x86)\\Beyond Compare 4\\BComp.exe\" \"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\" 
    

64ビットインストーラーを使用している場合は、実行可能ファイルの名前を確認してください。私のものはBCompare.exeでした

[diff]
    tool = bc4
[difftool "bc4"]
    cmd = \"C:\\Program Files\\Beyond Compare 4\\BCompare.exe\" \"$LOCAL\" \"$REMOTE\"
[merge]
    tool = bc4
[mergetool "bc4"]
    cmd = \"C:\\Program Files\\Beyond Compare 4\\BCompare.exe\" \"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\"

問題点:新しいプロジェクトを作成し、同時にVSにgitリポジトリを作成させる場合WILL.git/configファイルにオーバーライドを追加して、Visual Studioを再度使用するように強制します(そのMSに感謝します)。 SOプロジェクトのセットアップ後に別の方法でgitリポジトリを作成する(SourceTreeやコマンドラインなどを使用)。OR .git/configファイルを編集する(ソリューションフォルダー内)上記の設定に対する上書きをすべて削除します。
コメントに含まれているminnowに、もう一度注意を向けていただきありがとうございます。

注:私はこれに遭遇し続けていますが、私はGITでVSを使用しています、そして答えは正しくありません。正解は明確ではありませんし、それを見逃したままにしておけば、他の人たちがその問題を解決できることを願っています。

64
GazB

TFSを使用している場合は、Team Foundationの diff/merge構成 - 共通のコマンドと引数の値 で詳細情報を参照できます。

以下のツールを構成する方法を示します。

  • WinDiff
  • DiffDoc(Wordファイル用)
  • WinMerge
  • 比較を超えて
  • KDiff3
  • アラクシス
  • それを比較する!
  • SourceGear DiffMerge
  • 比較3を超えて
  • TortoiseMerge
  • 視覚的なSlickEdit
15
fresky

私は6ヶ月ごとに新しいバージョンのVisual Studioが出てきたとき、あるいはPCを移動したとき、あるいは新しいメンバーがチームに加わったときに飽きてしまいました。だから、PowerShell:

# .Synopsys
# Sets up Beyond Compare professional as Diff tool for all instances of Visual Studio on this PC
# If you don't use TFS, change the sccProvider as appropriate
[CmdLetBinding()]
param(
    $bcPath = 'C:\Program Files (x86)\Beyond Compare 3\BComp.exe',
    $sccProvider = 'TeamFoundation'
)

$ErrorActionPreference = 'stop';
$baseKey = 'REGISTRY::\HKCU\Software\Microsoft\VisualStudio\*'

function SetRegKeyProperties($keyPath, [hashtable]$keyProps){
    if(!(Test-Path $keyPath)){
        Write-Verbose "Creating $keyPath"
        # Force required here to recursively create registry path
        [void] (new-item $keyPath -Type:Directory -Force);
    }
    foreach($prop in $keyProps.GetEnumerator()){
        Set-ItemProperty -Path:$keyPath -Name:$prop.Key -Value:$prop.Value;
    }
}

$configBases = dir $baseKey | ? { $_.PSChildName -match '^\d+\.\d$' }
foreach($item in $configBases){
    Write-Host "Configuring $item"

    $diffToolsKey = Join-Path $item.PSPath "$sccProvider\SourceControl\DiffTools"
    SetRegKeyProperties (Join-path $diffToolsKey '.*\Compare') @{Command=$bcPath;Arguments='%1 %2 /title1=%6 /title2=%7'}
    SetRegKeyProperties (Join-path $diffToolsKey '.*\Merge') @{Command=$bcPath;Arguments='%1 %2 %3 %4 /title1=%6 /title2=%7 /title3=%8 /title4=%9'}
}

私のマシン上で動作します。 YMMV保証、返金はありません。 VSはキーをキャッシュしていないように見えるので、すぐに有効になります。

13
piers7

Visual Studio 2008以降では、

Tools menu -->  select Options 

enter image description here

[オプション]ウィンドウ - > [ソース管理] - > [Subversionユーザーツールの選択] - > [比較先の選択]を展開します。

そしてOKボタンをクリックしてください。

8
BJ Patel

64ビットWindows 7上のVS2013には、次の設定が必要です。オプション|ソース管理|ジャズソース管理

チェックボックスをチェックする外部の比較ツールを使用します。(見逃しやすい)

実行可能ファイルの2方向比較場所:C:\ Program Files(x86)\ Beyond Compare 3\BCompare.exe

3方向の競合実行可能ファイルの場所の比較:C:\ Program Files(x86)\ Beyond Compare 3\BCompare.exe

2
Arvind

@schellackが投稿した答えはほとんどのシナリオに最適ですが、Visual Studioが独自のマージウィンドウで使用する「2ウェイマージと結果パネル」ビューをシミュレートすることをBeyond Compareに要求しました。

この設定は真ん中のパネルを隠します(これはほとんどの場合未使用です)。

 %1 %2 "" %4 /title1=%6 /title2=%7 /title3="" /title4=%9

おかげで Morgen

2
Ted

BComp.exeは複数タブのシナリオでも動作するので、ファイル比較ごとに別々のウィンドウが必要でない限り、/ soloを追加する必要はありません。 Beyond Compare 3および4でテスト/検証済み。モラル:VS外部比較ツールの構成には、BCompare.exeではなくBComp.exeを使用します。

2
Arvind

Visualstudio.comのGitでホストされているプロジェクトでVS 2017を使用しています(msdn)

上記のリンクは "GITHUB FOR WINDOWS"の指示で私のために働きました。

http://www.scootersoftware.com/support.php?zz=kb_vcs#githubwindows

設定ファイルはそれが "c:\ users\username.gitconfig"で示されている場所にあり、私は私の状況のた​​めにBC4をBC3に変更し、適切なパスを使用しました:

C:/プログラムファイル(x86)/ Beyond Compare 3/bcomp.exe

1
chuckc

私のgit diffにはBCを使いますが、私は 役に立つ[git diffツールのリストにvscodeを追加] します。何人かのユーザはvscode over vs ide経験を好む。

Git Diffに対するVSコードの使用

git config --global diff.tool vscode
git config --global difftool.vscode.cmd "code --wait --diff $LOCAL $REMOTE"
1