[visual-studio] Beyond Compare를 사용하도록 Visual Studio를 구성하는 방법

기본적으로 diff 도구로 Beyond Compare를 열도록 Visual Studio를 구성하고 싶습니다. 어떻게해야합니까?



답변

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 / v4 Standard 또는 Beyond Compare v2 (양방향 병합)를 사용하는 경우 :

  • 연장 :.*
  • 동작 :Merge
  • 명령 : C:\Program Files\Beyond Compare 3\BComp.exe(버전 번호를 포함하여 컴퓨터의 올바른 경로로 교체)
  • 인수 :%1 %2 /savetarget=%4 /title1=%6 /title2=%7

Beyond Compare에서 탭을 사용하는 경우

탭 모드에서 Beyond Compare를 실행하면 Visual Studio에서 한 번에 둘 이상의 파일 집합을 비교하거나 병합 할 때 혼동 될 수 있습니다. 이 문제를 해결하기 위해 인수 /solo끝에 인수 를 추가 할 수 있습니다 . 이렇게하면 각 비교가 새 창에서 열리고 탭 관련 문제가 해결됩니다.


답변

Windows 용 Git이 포함 된 Visual Studio

(공정하게 날짜가 지정된) TFVC 대신 소스 코드 관리 시스템 으로 GIT 를 사용하는 경우 Visual Studio에는 이와 같은 구성 옵션이 없습니다.
대신 (제 생각 에는 GIT 구성 파일의 설정을 사용합니다 . 따라서 Beyond Compare 또는 다른 타사 비교 소프트웨어를 사용하도록 GIT 설정이 이미있는 경우이를 선택하여 사용하기 시작합니다.

그렇지 않다면 그냥 설정하십시오 (자세한 정보는 여기 를 참조 하십시오 ). Beyond Compare 4를 사용하여 Visual Studio를 설정하기위한 관련 정보는 다음과 같습니다.

  1. Visual Studio를 엽니 다.
  2. 도구 메뉴에서 옵션을 선택하십시오.
  3. 왼쪽 트리 제어의 소스 제어 분기에서 플러그인 설정을 선택하십시오.
  4. 오른쪽 창의 플러그인 설정에서 Microsoft Git Provider를 선택하십시오.
  5. 전역 git 구성 파일을 편집하십시오 (위치는 Windows에 따라 OS마다 다릅니다 %HOMEDRIVE%%HOMEPATH%/.gitconfig. 정보는 여기 를 참조 하십시오 ). 프로젝트 폴더.
  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\"

문제 : 새 프로젝트를 생성하고 동시에 자식의 repo 만들 VS를 받으면 받는 재정의 부하를 추가 .git/config다시 Visual Studio를 사용하여 강제로 파일 (즉, MS에 대한 감사합니다!). 따라서 프로젝트가 설정된 후 (SourceTree 또는 명령 줄 등을 통해) 다른 방법으로 git repo를 만들거나 .git/config솔루션 폴더에서 파일을 편집 하고 위의 설정에 대한 재정의를 제거하십시오.
다시 관심을 가져 주셔서 감사합니다.

참고 : 이 문제는 계속 발생하지만 GIT와 함께 VS를 사용하고 있으며 답변이 정확하지 않으며 일부 의견에는 정확한 답변이있는 URL이 언급되어 있지 않지만 명확하지 않으며 누락 된 경우 다른 사람들이 그렇게 할 것이라고 확신합니다. 잘하면 이것이 그 문제를 해결할 것입니다.


답변

TFS를 사용하는 경우 Team Foundation의 diff / merge 구성-공통 명령 및 인수 값 에서 자세한 정보를 찾을 수 있습니다.

다음 도구를 구성하는 방법을 보여줍니다.

  • 윈디 프
  • DiffDoc (Word 파일 용)
  • 윈 머지
  • 비할 바 없는
  • KDiff3
  • 그것을 비교하십시오!
  • SourceGear DiffMerge
  • 그 너머 비교 3
  • 거북이 병합
  • 비주얼 슬릭

답변

새로운 버전의 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가 키를 캐시하지 않는 것처럼 보이므로 즉시 적용됩니다.


답변

Visual Studio 2008 +에서

Tools menu -->  select Options

여기에 이미지 설명을 입력하십시오

옵션 창에서-> 소스 제어 확장-> 서브 버전 사용자 도구 선택-> 비교 너머 선택

확인 버튼을 클릭하십시오.


답변

@schellack이 게시 한 답변은 대부분의 시나리오에 완벽하지만 Visual Studio가 자체 병합 창에서 사용하는 ‘결과 패널과의 양방향 병합’보기를 시뮬레이션하기 위해 Beyond Compare를 원했습니다.

이 구성은 중간 패널을 숨 깁니다 (대부분의 경우 AFAIK에서는 사용되지 않음).

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

Morgen 덕분에


답변

64 비트 Windows 7의 VS2013에는 다음 설정이 필요합니다. 도구 | 옵션 | 소스 컨트롤 | 재즈 소스 제어

체크 박스 확인 외부 비교 도구를 사용하십시오 …

실행 파일의 2 방향 비교 위치 : C : \ Program Files (x86) \ Beyond Compare 3 \ BCompare.exe

실행 파일의 3 방향 충돌 비교 위치 : C : \ Program Files (x86) \ Beyond Compare 3 \ BCompare.exe