วิธีการกำหนดค่า Visual Studio ให้ใช้การเปรียบเทียบ


คำตอบ:


561

ใน Visual Studio ไปที่เครื่องมือเมนูให้เลือกตัวเลือกขยายควบคุมแหล่งที่มา (ในสภาพแวดล้อม TFS คลิก Visual Studio Team Foundation Server) และคลิกที่กำหนดค่าเครื่องมือผู้ใช้งานปุ่ม

รูปภาพเพื่อแสดงตำแหน่งของปุ่ม Configure User Tools

คลิกที่ปุ่มเพิ่ม

ป้อน / เลือกตัวเลือกต่อไปนี้เพื่อเปรียบเทียบ:

  • ส่วนขยาย :.*
  • การดำเนินงาน :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 (ผสานสองทาง):

  • ส่วนขยาย :.*
  • การดำเนินงาน :Merge
  • คำสั่ง : C:\Program Files\Beyond Compare 3\BComp.exe(แทนที่ด้วยพา ธ ที่เหมาะสมสำหรับเครื่องของคุณรวมถึงหมายเลขเวอร์ชัน)
  • อาร์กิวเมนต์ :%1 %2 /savetarget=%4 /title1=%6 /title2=%7

หากคุณใช้แท็บใน Beyond เปรียบเทียบ

หากคุณเรียกใช้ Beyond Compare ในโหมดแท็บมันอาจสับสนเมื่อคุณแตกต่างหรือรวมไฟล์มากกว่าหนึ่งชุดในแต่ละครั้งจาก Visual Studio ในการแก้ไขปัญหานี้คุณสามารถเพิ่มอาร์กิวเมนต์/soloไปยังจุดสิ้นสุดของอาร์กิวเมนต์ สิ่งนี้ทำให้มั่นใจได้ว่าการเปรียบเทียบแต่ละรายการจะเปิดขึ้นในหน้าต่างใหม่โดยแก้ไขปัญหาด้วยแท็บ


17
โปรดทราบว่าสำหรับ Beyond Compare 3 คุณควรใช้ BComp.exe - ดูscootersoftware.com/vbulletin/showthread.php?t=3461
Joe

5
ฉันอัปเดตคำตอบนี้เพื่อสนับสนุนทั้ง Beyond Compare v3 Pro / Std และ Beyond Compare v2 (v3 เสนอการผสาน 3 ทาง) และอัปเดตข้อโต้แย้งจากเว็บไซต์ BC อย่างเป็นทางการ: scootersoftware.com/support.php?zz=kb_vcs
Evan Wondrasek

32
หากคุณเรียกใช้ Beyond Compare ในโหมดแท็บมันอาจสับสนเมื่อคุณแตกต่างหรือรวมไฟล์มากกว่าหนึ่งชุดในแต่ละครั้งจาก Visual Studio ในการแก้ไขปัญหานี้คุณสามารถเพิ่มอาร์กิวเมนต์ "/ solo" ที่ส่วนท้ายของอาร์กิวเมนต์ สิ่งนี้ทำให้มั่นใจได้ว่าการเปรียบเทียบแต่ละรายการจะเปิดขึ้นในหน้าต่างใหม่โดยแก้ไขปัญหาด้วยแท็บ
Josh Sklare

16
เมื่อใช้ Git add-in สำหรับ Visual Studio จะไม่มีปุ่ม Configure User Tools ใครรู้วิธีการขอเพิ่มเข้าใช้ Git เกินกว่าการเปรียบเทียบ?
Stephen Price

7
นอกเหนือจากการตั้งค่าการเปรียบเทียบ 4 เหมือนกันเช่นเดียวกับ Visual Studio 2013 เพื่อรองรับเวอร์ชัน 4 เพียงเปลี่ยน "3" ในพา ธ COMMAND เป็น "4" เห็นได้ชัดว่าสวย แต่ควรสังเกต ตัวอย่างเช่นบนเวิร์กสเตชันของฉันพา ธ คือ: C: \ Program Files (x86) \ Beyond เปรียบเทียบ 4 \ BCompare.exe
Mike Christian

86

Visual Studio พร้อม Git สำหรับ Windows

หากคุณใช้GITเป็นระบบจัดการซอร์สโค้ดแทนที่จะเป็นTFVC (ค่อนข้างเก่า ) แล้ว Visual Studio ไม่มีตัวเลือกในการกำหนดค่าอะไรเช่นนี้
แต่มัน(ที่ถูกต้องในความคิดของฉัน)ใช้การตั้งค่าการตั้งค่าไฟล์ GIT ของ ดังนั้นหากคุณมีการตั้งค่า GIT ให้ใช้ Beyond Compare หรือซอฟต์แวร์การเปรียบเทียบโดยบุคคลที่สามอื่น ๆ มันจะเลือกสิ่งนี้และเริ่มใช้มัน

ถ้าไม่เช่นนั้นเพียงแค่ตั้งค่าที่ (ดูที่นี่สำหรับความช่วยเหลือเพิ่มเติมและมีแนวโน้มมากขึ้นที่ทันสมัย) ข้อมูลที่เกี่ยวข้องสำหรับการตั้งค่า Visual Studio with Beyond Compare 4 คือ:

  1. เปิด Visual Studio
  2. เลือกตัวเลือกจากเมนูเครื่องมือ
  3. เลือกการตั้งค่าปลั๊กอินภายใต้สาขาการควบคุมแหล่งที่มาของการควบคุมทรีด้านซ้าย
  4. เลือกผู้ให้บริการ Microsoft Git ภายใต้การตั้งค่าปลั๊กอินในบานหน้าต่างด้านขวา
  5. แก้ไขไฟล์ global git config (ตำแหน่งเป็นระบบปฏิบัติการเฉพาะสำหรับ windows %HOMEDRIVE%%HOMEPATH%/.gitconfigดูที่นี่สำหรับข้อมูล) หรือหากคุณต้องการให้ repo เป็นแบบเฉพาะเจาะจงหลังจากนั้นเริ่มโครงการในพื้นที่เก็บข้อมูล Git ให้แก้ไขไฟล์ config ในโฟลเดอร์. 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 บิตให้ตรวจสอบชื่อของไฟล์ที่เรียกทำงานได้ Mine เป็น 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 repo ในเวลาเดียวกันมันจะเพิ่มภาระการแทนที่ลงใน.git/configไฟล์ที่บังคับให้ใช้ Visual Studio อีกครั้ง (ขอบคุณสำหรับ MS!) ดังนั้นทั้งสร้าง git repo ด้วยวิธีการอื่นหลังจากที่โครงการได้รับการติดตั้ง (เช่นผ่าน SourceTree หรือบรรทัดคำสั่ง ฯลฯ ... ) หรือแก้ไข.git/configไฟล์ (ในโฟลเดอร์โซลูชัน) และลบล้างการตั้งค่าข้างต้นใด ๆ
ขอบคุณ minnow ในความคิดเห็นที่ทำให้ฉันสนใจมันอีกครั้ง

หมายเหตุ:ฉันยังเจอสิ่งนี้อยู่ แต่ฉันใช้ VS กับ GIT และคำตอบนั้นไม่ถูกต้องและถึงแม้ว่าความคิดเห็นบางส่วนจะพูดถึง URL ที่มีคำตอบที่ถูกต้อง แต่ก็ไม่ชัดเจนและถ้าฉันหายไปฉันก็มั่นใจว่าคนอื่นจะ หวังว่านี่จะช่วยแก้ปัญหานี้ได้


มีประโยชน์มากเพราะฉันใช้ Git สำหรับ Windows
MrBoJangles

2
ระวังแม้ว่า - VS 2015 สำหรับฉันตั้งตัวเองขึ้นเป็นเครื่องมือ diff / ผสานในท้องถิ่นไฟล์การกำหนดค่าคอมไพล์ใน repo ท้องถิ่น .... จึงเอาชนะทั่วโลก เพียงแค่ลบรายการในการกำหนดค่า repo ท้องถิ่นและคุณควรจะดี
ตลก

3
ฮ่าฮ่าแค่พยายามโหวตคำตอบที่น่าอัศจรรย์นี้ ... จากนั้นก็พูดว่า "คุณไม่สามารถลงคะแนนในคำตอบของคุณเอง" ... โอ้ฮ่า ๆ พระเจ้าอวยพรไม่ได้มีความทรงจำ! ;)
GazB

4
BC4 ติดตั้งในเส้นทางที่แตกต่างออกไปเล็กน้อย 64b dir บนเครื่องของฉัน:\"C:\\Program Files\\Beyond Compare 4\\BComp.exe\"
GraehamF

1
ฉันพบว่าการตั้งค่า global git config ไม่ทำงานเลย ฉันต้องแก้ไขการกำหนดค่าของ repo VS2017 ใครบ้างที่ประสบปัญหาเดียวกัน และ @GazB ฉันสงสัยว่า GraehamF เหมือนกับฉันเพิ่งติดตั้ง BC เวอร์ชัน 64 บิตบน Windows 64 บิตดังนั้นเส้นทางที่ติดตั้งนั้นเป็นไฟล์โปรแกรมที่ถูกต้องที่คาดหวังไม่ใช่ PF (x86)
minnow

15

หากคุณใช้ TFS คุณสามารถค้นหาข้อมูลเพิ่มเติมในการกำหนดค่า diff / merge ใน Team Foundation - ค่า Command และ Argument ทั่วไป

มันแสดงให้เห็นถึงวิธีการกำหนดค่าเครื่องมือดังต่อไปนี้:

  • WinDiff
  • DiffDoc (สำหรับไฟล์ Word)
  • WinMerge
  • นอกเหนือจากการเปรียบเทียบ
  • KDiff3
  • Araxis
  • เปรียบเทียบ!
  • SourceGear DiffMerge
  • นอกเหนือจากการเปรียบเทียบ 3
  • TortoiseMerge
  • Visual SlickEdit

13

ฉันเบื่อที่จะทำสิ่งนี้ทุก 6 เดือนเมื่อ Visual Studio รุ่นใหม่ออกมาหรือฉันย้ายพีซีหรือสมาชิกใหม่เข้าร่วมทีม ดังนั้น 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 ดูเหมือนจะไม่แคชคีย์ดังนั้นจะมีผลทันที


1
ทุกวันนี้มัน $ bcPath = 'ไฟล์ C: \ Program (x86) \ Beyond เปรียบเทียบ 4 \ BCompare.exe' สำหรับรุ่นล่าสุด ดังนั้นหากมีการรวมกับการติดตั้งช็อคโกแลตเท่านั้น ... (ขอบคุณโดยวิธี)
James Woolfenden

มันเยี่ยมมาก ขอบคุณมากที่โพสต์ข้อมูลนี้จะทำให้ชีวิตง่ายขึ้น!
d3r3kk

1
computer\hkey_local_machine\scooter software\beyond compare\exepathอาจจะเพียงแค่ควรปรับปรุงในการอ่านรายการรีจิสทรี:
Erik Philips

8

ใน Visual Studio 2008 + ให้ไปที่

Tools menu -->  select Options 

ป้อนคำอธิบายรูปภาพที่นี่

ในหน้าต่างตัวเลือก -> ขยายการควบคุมแหล่งที่มา -> เลือกเครื่องมือผู้ใช้การโค่นล้ม -> เลือกนอกเหนือจากการเปรียบเทียบ

และคลิกปุ่มตกลง ..


2
โปรดทราบว่าบิต 'การโค่นล้ม' ของคำตอบนี้เฉพาะหากคุณใช้ SVN เป็นผู้ให้บริการการควบคุมแหล่งที่มาของคุณ
piers7

1
SVN เท่านั้นไม่สามารถใช้กับ TFS หรือ Git หรือผู้ให้บริการ SCC อื่น ๆ
Adam Plocher

3

คำตอบที่โพสต์โดย @schellack เหมาะสำหรับสถานการณ์ส่วนใหญ่ แต่ฉันต้องการ Beyond Compare เพื่อจำลองมุมมอง '2 Way ผสานกับแผงผลลัพธ์' ที่ Visual Studio ใช้ในหน้าต่างผสานของตัวเอง

การกำหนดค่านี้ซ่อนแผงกลาง (ซึ่งไม่ได้ใช้ในกรณีส่วนใหญ่ AFAIK)

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

ด้วยความขอบคุณจากMorgen


2

VS2013 บน Windows 64 บิตต้องการการตั้งค่าเหล่านี้: เครื่องมือ | ตัวเลือก | การควบคุมแหล่งที่มา การควบคุมแหล่งแจ๊ส

ตรวจสอบช่องโหว่ใช้เครื่องมือเปรียบเทียบภายนอก ... (พลาดง่าย ๆ )

การเปรียบเทียบตำแหน่งของปฏิบัติการแบบสองทาง: ไฟล์ C: \ Program (x86) \ Beyond เปรียบเทียบ 3 \ BCompare.exe

ความขัดแย้ง 3-Way เปรียบเทียบตำแหน่งของที่ปฏิบัติการได้: C: \ Program Files (x86) \ Beyond เปรียบเทียบ 3 \ BCompare.exe


2

BComp.exe ทำงานในสถานการณ์แบบหลายแท็บได้เช่นกันดังนั้นจึงไม่จำเป็นต้องเพิ่ม / เดี่ยวนอกจากว่าคุณต้องการ windows ที่แยกต่างหากสำหรับการเปรียบเทียบแต่ละไฟล์ ทดสอบ / ตรวจสอบความถูกต้องของ Beyond Compare 3 และ 4 Moral: ใช้ BComp.exe ไม่ใช่ BCompare.exe สำหรับการกำหนดค่าเครื่องมือ VS เปรียบเทียบภายนอก


2

ฉันใช้ VS 2017 กับโครงการที่โฮสต์กับ Git บน visualstudio.com hosting (msdn)

ลิงก์ด้านบนทำงานให้ฉันด้วยคำแนะนำ "GITHUB FOR WINDOWS"

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

ไฟล์กำหนดค่าอยู่ที่ตำแหน่งที่ระบุไว้ที่ "c: \ users \ ชื่อผู้ใช้ \. gitconfig" และฉันเพิ่งเปลี่ยน BC4's เป็น BC3 สำหรับสถานการณ์ของฉันและใช้เส้นทางที่เหมาะสม:

C: / Program Files (x86) / Beyond เปรียบเทียบ 3 / bcomp.exe


1

ผมใช้BC3สำหรับ diff คอมไพล์ของฉัน แต่ฉันยังต้องการเพิ่มvscodeไปยังรายการของเครื่องมือ diff คอมไพล์ที่มีประโยชน์ ผู้ใช้บางคนชอบvscodeมากกว่าประสบการณ์IDE

ใช้ VS Code สำหรับ Git Diff

git config --global diff.tool vscode
git config --global difftool.vscode.cmd "code --wait --diff $LOCAL $REMOTE"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.