Beyond Compare をデフォルトで差分ツールとして開くように Visual Studio を構成したいと考えています。これどうやってするの?
10 に答える
Visual Studioで、[ツール]メニューに移動し、[オプション]を選択し、[ソース管理]を展開して(TFS環境では、[Visual Studio Team Foundation Server]をクリックします)、[ユーザーツールの構成]ボタンをクリックします。
[追加]ボタンをクリックします。
比較する次のオプションを入力/選択します。
- 拡張子:
.*
- 操作:
Compare
- コマンド:(
C:\Program Files\Beyond Compare 3\BComp.exe
バージョン番号を含む、マシンの適切なパスに置き換えます) - 引数:
%1 %2 /title1=%6 /title2=%7
Beyond Compare Professional(3ウェイマージ)を使用している場合:
- 拡張子:
.*
- 操作:
Merge
- コマンド:(
C:\Program Files\Beyond Compare 3\BComp.exe
バージョン番号を含む、マシンの適切なパスに置き換えます) - 引数:
%1 %2 %3 %4 /title1=%6 /title2=%7 /title3=%8 /title4=%9
Beyond Compare v3 /v4StandardまたはBeyondComparev2(2-way Merge)を使用している場合:
- 拡張子:
.*
- 操作:
Merge
- コマンド:(
C:\Program Files\Beyond Compare 3\BComp.exe
バージョン番号を含む、マシンの適切なパスに置き換えます) - 引数:
%1 %2 /savetarget=%4 /title1=%6 /title2=%7
BeyondCompareでタブを使用する場合
Beyond Compareをタブ付きモードで実行すると、Visual Studioから一度に複数のファイルのセットを差分またはマージすると、混乱する可能性があります。これを修正するには、引数/solo
の最後に引数を追加します。これにより、各比較が新しいウィンドウで開き、タブの問題を回避できます。
Visual Studio の新しいバージョンがリリースされたり、PC を移動したり、新しいメンバーがチームに参加したりすると、6 か月ごとにこれを行うことに飽き飽きしました。したがって、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 はキーをキャッシュしていないように見えるため、すぐに有効になります。
BComp.exe は複数タブのシナリオでも機能するため、ファイル比較ごとに個別のウィンドウが本当に必要でない限り、/solo を追加する必要はありません。Beyond Compare 3 および 4 でテスト/検証済み。モラル: VS 外部比較ツールの構成には、BCompare.exe ではなく BComp.exe を使用してください。
64 ビット Windows 7 上の VS2013 には、次の設定が必要です。オプション | ソース管理 | Jazz ソース管理
チェックボックスをチェックする 外部比較ツールを使用する ... (見落としがちです)
実行可能ファイルの 2 方向比較の場所: C:\Program Files (x86)\Beyond Compare 3\BCompare.exe
実行可能ファイルの 3 方向競合比較の場所: C:\Program Files (x86)\Beyond Compare 3\BCompare.exe