Cara mengkonfigurasi Visual Studio untuk menggunakan Beyond Compare

Jawaban:

561

Di Visual Studio, buka menu Alat , pilih Opsi , rentangkan Kontrol Sumber , (Dalam lingkungan TFS, klik Server Studio Tim Visual Studio Visual), dan klik tombol Konfigurasikan Alat Pengguna .

gambar untuk menunjukkan lokasi tombol Konfigurasi Alat Pengguna

Klik tombol Tambah .

Masukkan / pilih opsi berikut untuk Bandingkan:

  • Ekstensi :.*
  • Operasi :Compare
  • Perintah : C:\Program Files\Beyond Compare 3\BComp.exe(ganti dengan jalur yang tepat untuk mesin Anda, termasuk nomor versi)
  • Argumen :%1 %2 /title1=%6 /title2=%7

Jika menggunakan Beyond Compare Professional (Penggabungan 3 arah):

  • Ekstensi :.*
  • Operasi :Merge
  • Perintah : C:\Program Files\Beyond Compare 3\BComp.exe(ganti dengan jalur yang tepat untuk mesin Anda, termasuk nomor versi)
  • Argumen :%1 %2 %3 %4 /title1=%6 /title2=%7 /title3=%8 /title4=%9

Jika menggunakan Beyond Compare v3 / v4 Standard atau Beyond Compare v2 (Penggabungan 2 arah):

  • Ekstensi :.*
  • Operasi :Merge
  • Perintah : C:\Program Files\Beyond Compare 3\BComp.exe(ganti dengan jalur yang tepat untuk mesin Anda, termasuk nomor versi)
  • Argumen :%1 %2 /savetarget=%4 /title1=%6 /title2=%7

Jika Anda menggunakan tab di Beyond Compare

Jika Anda menjalankan Beyond Compare dalam mode tab, itu bisa membingungkan ketika Anda berbeda atau menggabungkan lebih dari satu set file sekaligus dari Visual Studio. Untuk memperbaikinya, Anda bisa menambahkan argumen /solodi akhir argumen; ini memastikan setiap perbandingan terbuka di jendela baru, mengatasi masalah dengan tab.

Schellack
sumber
17
Perhatikan bahwa untuk Beyond Compare 3, Anda harus menggunakan BComp.exe - lihat scootersoftware.com/vbulletin/showthread.php?t=3461
Joe
5
Saya memperbarui jawaban ini untuk mendukung Beyond Compare v3 Pro / Std dan Beyond Compare v2 (v3 menawarkan penggabungan 3 arah) dan argumen yang diperbarui dari situs web BC resmi: scootersoftware.com/support.php?zz=kb_vcs
Evan Wondrasek
32
Jika Anda menjalankan Beyond Compare dalam mode tab, itu bisa membingungkan ketika Anda berbeda atau menggabungkan lebih dari satu set file sekaligus dari Visual Studio. Untuk memperbaikinya, Anda dapat menambahkan argumen "/ solo" di akhir argumen; ini memastikan setiap perbandingan terbuka di jendela baru, mengatasi masalah dengan tab.
Josh Sklare
16
Saat menggunakan add-in Git untuk Visual Studio, tidak ada tombol Konfigurasi Alat Pengguna. Adakah yang tahu cara untuk menghubungkan add-in Git untuk digunakan di luar batas?
Stephen Price
7
Melampaui Bandingkan pengaturan 4 adalah sama, seperti Visual Studio 2013. Untuk mendukung versi 4, cukup ubah "3" di jalur PERINTAH ke "4". Ini cukup jelas, tetapi harus diperhatikan. Sebagai contoh, di workstation saya, jalannya adalah: C: \ Program Files (x86) \ Beyond Compare 4 \ BCompare.exe
Mike Christian
86

Visual Studio dengan Git untuk Windows

Jika Anda menggunakan GIT sebagai sistem manajemen kode sumber alih-alih TFVC (bertanggal cukup) maka Visual Studio tidak memiliki opsi untuk mengonfigurasi hal seperti ini.
Sebaliknya (menurut saya) menggunakan pengaturan file konfigurasi GIT . Jadi jika Anda sudah memiliki pengaturan GIT untuk menggunakan Beyond Compare atau perangkat lunak pembanding pihak ketiga lainnya, ia hanya akan mengambil ini dan mulai menggunakannya.

Jika tidak maka atur saja (lihat di sini untuk bantuan lebih lanjut dan kemungkinan lebih terkini). Info yang relevan untuk menyiapkan Visual Studio dengan Beyond Compare 4 adalah:

  1. Buka Visual Studio.
  2. Pilih Opsi dari menu Alat.
  3. Pilih Pengaturan Plug-In di bawah cabang Kontrol Sumber kontrol pohon sisi kiri.
  4. Pilih Penyedia Microsoft Git di bawah Pengaturan Plug-In di panel sebelah kanan.
  5. Edit file konfigurasi global git (lokasi adalah OS khusus untuk windows itu %HOMEDRIVE%%HOMEPATH%/.gitconfig. Lihat di sini untuk info) ATAU jika Anda ingin repo spesifik kemudian setelah memulai proyek di repositori Git, edit file konfigurasi di folder .git di folder proyek.
  6. Ubah file konfigurasi untuk mencerminkan perubahan berikut:

    [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\" 
    

Jika installer 64bit digunakan, verifikasi nama yang dapat dieksekusi. Milik saya adalah 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\"

Masalah: Jika Anda membuat proyek baru dan mendapatkan VS untuk membuat repo git pada saat yang sama, itu AKAN menambahkan beban override ke .git/configfile yang memaksanya untuk menggunakan Visual Studio lagi (Terima kasih untuk MS itu!). BEGITU membuat git repo melalui cara lain setelah proyek telah diatur (seperti melalui SourceTree atau baris perintah dll ...) ATAU edit .git/configfile (dalam folder solusi) dan hapus semua penggantian untuk pengaturan di atas.
Terima kasih kepada ikan kecil dalam komentar untuk membawa perhatian saya ke sana lagi.

Catatan: Saya terus menemukan ini, tetapi saya menggunakan VS dengan GIT dan jawabannya tidak benar dan meskipun beberapa komentar menyebutkan URL dengan jawaban yang benar itu tidak jelas dan jika saya terus melewatkannya saya yakin orang lain akan begitu semoga ini akan menyelesaikan masalah itu.

GazB
sumber
Sangat membantu, karena saya menggunakan Git untuk Windows.
MrBoJangles
2
Hati-hati meskipun - VS 2015, bagi saya, mengatur dirinya sendiri sebagai alat diff / merge di lokal berkas git config di repo lokal .... sehingga menimpa global. Hapus saja entri dalam konfigurasi repo lokal dan Anda akan menjadi baik.
Jester
3
Haha hanya mencoba untuk memilih jawaban yang LUAR BIASA ini ... lalu tertulis "Kamu tidak dapat memilih pada jawabanmu sendiri" ... OH LOL Tuhan memberkati tidak memiliki ingatan! ;)
GazB
4
BC4 dipasang di jalur yang sedikit berbeda, dir 64b, di komputer saya:\"C:\\Program Files\\Beyond Compare 4\\BComp.exe\"
GraehamF
1
Saya menemukan bahwa pengaturan global git config tidak berfungsi sama sekali. Saya harus memodifikasi konfigurasi repo. VS2017. Adakah yang mengalami hal yang sama? Dan @GazB, saya curiga GraehamF, seperti saya, hanya memiliki versi 64-bit BC yang diinstal pada windows 64-bit, jadi jalur yang diinstal adalah yang benar, Program Files yang diharapkan dan bukan PF (x86).
minnow
13

Saya bosan melakukan ini setiap 6 bulan ketika versi baru Visual Studio keluar, atau saya memindahkan PC, atau anggota baru bergabung dengan tim. Jadi, 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'}
}

Bekerja pada mesin saya. YMMV. Tidak ada jaminan, tidak ada pengembalian uang. VS tidak muncul untuk men-cache kunci, jadi segera berlaku.

dermaga7
sumber
1
Dewasa ini $ bcPath = 'C: \ Program Files (x86) \ Beyond Compare 4 \ BCompare.exe' untuk versi terbaru. Jadi seandainya itu dikombinasikan dengan instalasi cokelat ... (terima kasih by the way)
James Woolfenden
Ini bagus. Terima kasih banyak telah mengirimkan informasi ini, akan membuat hidup lebih mudah!
d3r3kk
1
Mungkin hanya harus memperbarui membaca entri Registry: computer\hkey_local_machine\scooter software\beyond compare\exepath.
Erik Philips
8

Di Visual Studio 2008 +, buka

Tools menu -->  select Options 

masukkan deskripsi gambar di sini

Di Jendela Opsi -> rentangkan Kontrol Sumber -> Pilih Alat Pengguna Subversi -> Pilih Di Luar Bandingkan

dan klik tombol OK ..

BJ Patel
sumber
2
Perhatikan bahwa bit 'subversi' dari jawaban ini khusus untuk jika Anda menggunakan SVN sebagai penyedia kontrol sumber Anda.
piers7
1
Hanya SVN, tidak berlaku untuk TFS atau Git atau penyedia SCC lainnya
Adam Plocher
3

Jawaban yang diposting oleh @schellack sempurna untuk sebagian besar skenario, tapi saya ingin Beyond Compare untuk mensimulasikan penggabungan '2 Way dengan panel hasil' yang digunakan Visual Studio di jendela penggabungannya sendiri.

Konfigurasi ini menyembunyikan panel tengah (yang tidak digunakan dalam kebanyakan kasus AFAIK).

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

Terima kasih kepada Morgen

Ted
sumber
2

VS2013 pada 64-bit Windows 7 membutuhkan pengaturan ini: Tools | Opsi | Kontrol Sumber | Kontrol Sumber Jazz

PERIKSA PERIKSA KAKI Gunakan alat perbandingan eksternal ... (mudah ketinggalan ini)

2-Arah Bandingkan Lokasi yang Dapat Dieksekusi: C: \ Program Files (x86) \ Melampaui Bandingkan 3 \ BCompare.exe

Konflik 3-Arah Bandingkan Lokasi yang Dapat Dieksekusi: C: \ Program Files (x86) \ Melampaui Bandingkan 3 \ BCompare.exe

Arvind
sumber
2

BComp.exe berfungsi dalam skenario banyak tab juga, jadi tidak perlu menambahkan / solo kecuali Anda benar-benar ingin jendela terpisah untuk setiap perbandingan file. Diuji / diverifikasi pada Beyond Compare 3 dan 4. Moral: gunakan BComp.exe, bukan BCompare.exe, untuk VS eksternal membandingkan konfigurasi alat.

Arvind
sumber
2

Saya menggunakan VS 2017 dengan proyek yang di-host dengan Git di visualstudio.com hosting (msdn)

Tautan di atas berfungsi untuk saya dengan instruksi "GITHUB FOR WINDOWS".

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

File konfigurasi terletak di tempat yang ditunjukkan pada "c: \ users \ username \ .gitconfig" dan saya baru saja mengubah BC4 ke BC3 untuk situasi saya dan menggunakan jalur yang sesuai:

C: / Program Files (x86) / Beyond Compare 3 / bcomp.exe

chuckc
sumber
1

Saya menggunakan BC3 untuk git diff saya, tetapi saya juga akan menambahkan vscode ke daftar alat git diff yang berguna . Beberapa pengguna lebih suka vscode daripada pengalaman ide .

Menggunakan VS Code untuk Git Diff

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