Cómo configurar Visual Studio para usar Beyond Compare

Respuestas:

561

En Visual Studio, vaya al menú Herramientas , seleccione Opciones , expanda Control de origen (en un entorno TFS, haga clic en Visual Studio Team Foundation Server) y haga clic en el botón Configurar herramientas de usuario .

imagen para mostrar la ubicación del botón Configurar herramientas de usuario

Haz clic en el botón Agregar .

Ingrese / seleccione las siguientes opciones para Comparar:

  • Extensión :.*
  • operación :Compare
  • Comando : C:\Program Files\Beyond Compare 3\BComp.exe(reemplace con la ruta adecuada para su máquina, incluido el número de versión)
  • Argumentos :%1 %2 /title1=%6 /title2=%7

Si usa Beyond Compare Professional (combinación de 3 vías):

  • Extensión :.*
  • operación :Merge
  • Comando : C:\Program Files\Beyond Compare 3\BComp.exe(reemplace con la ruta adecuada para su máquina, incluido el número de versión)
  • Argumentos :%1 %2 %3 %4 /title1=%6 /title2=%7 /title3=%8 /title4=%9

Si usa Beyond Compare v3 / v4 Standard o Beyond Compare v2 (combinación de 2 vías):

  • Extensión :.*
  • operación :Merge
  • Comando : C:\Program Files\Beyond Compare 3\BComp.exe(reemplace con la ruta adecuada para su máquina, incluido el número de versión)
  • Argumentos :%1 %2 /savetarget=%4 /title1=%6 /title2=%7

Si usa pestañas en Beyond Compare

Si ejecuta Beyond Compare en modo de pestañas, puede confundirse cuando difunde o combina más de un conjunto de archivos a la vez desde Visual Studio. Para solucionar esto, puede agregar el argumento /soloal final de los argumentos; esto asegura que cada comparación se abra en una nueva ventana, solucionando el problema con pestañas.

Schellack
fuente
17
Tenga en cuenta que para Beyond Compare 3, en realidad debería usar BComp.exe: consulte scootersoftware.com/vbulletin/showthread.php?t=3461
Joe
55
Actualicé esta respuesta para admitir tanto Beyond Compare v3 Pro / Std como Beyond Compare v2 (v3 ofrece una combinación de 3 vías) y argumentos actualizados del sitio web oficial de BC: scootersoftware.com/support.php?zz=kb_vcs
Evan Wondrasek
32
Si ejecuta Beyond Compare en modo de pestañas, puede confundirse cuando difunde o combina más de un conjunto de archivos a la vez desde Visual Studio. Para solucionar esto, puede agregar el argumento "/ solo" al final de los argumentos; esto asegura que cada comparación se abra en una nueva ventana, solucionando el problema con pestañas.
Josh Sklare
16
Cuando se usa el complemento Git para Visual Studio, no hay un botón Configurar herramientas de usuario. ¿Alguien sabe una forma de conectar el complemento Git para usarlo más allá de la comparación?
Stephen Price
77
La configuración de Beyond Compare 4 es la misma que Visual Studio 2013. Para admitir la versión 4, simplemente cambie el "3" en la ruta de COMANDO a un "4". Es bastante obvio, pero debe tenerse en cuenta. Por ejemplo, en mi estación de trabajo, la ruta es: C: \ Archivos de programa (x86) \ Beyond Compare 4 \ BCompare.exe
Mike Christian
86

Visual Studio con Git para Windows

Si está utilizando GIT como su sistema de administración de código fuente en lugar del TFVC (bastante anticuado), entonces Visual Studio no tiene opciones para configurar algo como esto.
En cambio, (correctamente en mi opinión) utiliza la configuración del archivo de configuración GIT . Entonces, si ya tiene la configuración GIT para usar Beyond Compare o cualquier otro software de comparación de terceros, simplemente lo recogerá y comenzará a usarlo.

Si no es así, simplemente configúrelo (consulte aquí para obtener más ayuda y probablemente más actualizada). La información relevante para configurar Visual Studio con Beyond Compare 4 es:

  1. Abra Visual Studio.
  2. Seleccione Opciones en el menú Herramientas.
  3. Seleccione Configuración del complemento en la rama Control de origen del control de árbol del lado izquierdo.
  4. Seleccione Microsoft Git Provider en Configuración del complemento en el panel de la derecha.
  5. Edite el archivo de configuración global de git (la ubicación es específica del sistema operativo para Windows %HOMEDRIVE%%HOMEPATH%/.gitconfig. Consulte aquí para obtener información) O si desea que sea específico de repositorio y luego de comenzar un proyecto en un repositorio de Git, edite el archivo de configuración en la carpeta .git en el carpeta de proyecto.
  6. Cambie el archivo de configuración para reflejar los siguientes cambios:

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

Si se utiliza el instalador de 64 bits, verifique el nombre del ejecutable. El mío fue 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\"

Problemas: Si crea un nuevo proyecto y obtener VS para crear el repositorio git, al mismo tiempo que se SERÁ añadir una carga de anulaciones al .git/configarchivo obligándolo a utilizar Visual Studio de nuevo (gracias por eso EM!). Entonces, cree el repositorio de git por otros medios después de que el proyecto se haya configurado (como a través de SourceTree o la línea de comando, etc.) O edite el .git/configarchivo (en la carpeta de la solución) y elimine cualquier anulación de la configuración anterior.
Gracias a minnow en los comentarios por llamar mi atención nuevamente.

Nota: sigo encontrando esto, pero estoy usando VS con GIT y las respuestas no son correctas y, aunque algunos de los comentarios mencionan una URL con la respuesta correcta, no está clara y si seguí perdiéndola, estoy seguro de que otros lo harán. Esperemos que esto resuelva ese problema.

GazB
fuente
Muy útil, ya que estoy usando Git para Windows.
MrBoJangles
2
Sin embargo, cuidado: VS 2015, para mí, se configuró como la herramienta diff / merge en el archivo de configuración de git local en el repositorio local ... anulando así el global. Simplemente elimine las entradas en la configuración de repositorio local y debería ser bueno.
Jester
3
Jaja solo trató de votar esta respuesta INCREÍBLE ... luego dijo "No puedes votar por tu propia respuesta" ... OH LOL Dios bendiga no tener un recuerdo! ;)
GazB
44
BC4 instalado en una ruta ligeramente diferente, el directorio 64b, en mi máquina:\"C:\\Program Files\\Beyond Compare 4\\BComp.exe\"
GraehamF
1
Descubrí que configurar la configuración global de git no funcionaba en absoluto. Tuve que modificar la configuración del repositorio. VS2017. ¿Alguien más está experimentando lo mismo? Y @GazB, sospecho que GraehamF, como yo, solo tiene la versión de 64 bits de BC instalada en ventanas de 64 bits, por lo que la ruta instalada es la correcta, los archivos de programa esperados y no PF (x86).
minnow
13

Me aburrí de hacer esto cada 6 meses cuando sale una nueva versión de Visual Studio, o muevo PC, o un nuevo miembro se une al equipo. Entonces, 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'}
}

Funciona en mi maquina. YMMV. Sin garantías, sin reembolsos. VS no parece almacenar en caché la clave, por lo que surte efecto de inmediato.

muelles7
fuente
1
En estos días es $ bcPath = 'C: \ Archivos de programa (x86) \ Beyond Compare 4 \ BCompare.exe' para la última versión. Entonces, si solo eso se combinara con la instalación de chocolate ... (por cierto, gracias)
James Woolfenden
Esto es genial. ¡Muchas gracias por publicar esta información, hará la vida más fácil!
d3r3kk
1
Probablemente sólo debe actualizar para leer la entrada del registro: computer\hkey_local_machine\scooter software\beyond compare\exepath.
Erik Philips
8

En Visual Studio 2008 +, vaya a

Tools menu -->  select Options 

ingrese la descripción de la imagen aquí

En la ventana Opciones -> expanda Control de fuente -> Seleccionar herramientas de usuario de Subversion -> Seleccionar más allá de comparar

y haga clic en el botón Aceptar.

BJ Patel
fuente
2
Tenga en cuenta que los bits de 'subversión' de esta respuesta son específicos si está usando SVN como su proveedor de control de fuente.
muelles7
1
SVN solamente, no se aplica a TFS o Git ni a ningún otro proveedor de SCC
Adam Plocher
3

La respuesta publicada por @schellack es perfecta para la mayoría de los escenarios, pero quería que Beyond Compare simule la vista 'Combinación de 2 vías con un panel de resultados' que Visual Studio utiliza en su propia ventana de fusión.

Esta configuración oculta el panel central (que no se usa en la mayoría de los casos AFAIK).

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

Con gracias a Morgen

Ted
fuente
2

VS2013 en Windows 7 de 64 bits requiere esta configuración: Herramientas | Opciones | Control de fuente | Control de fuente de jazz

COMPRUEBE EL CUADRO DE COMPROBACIÓN Use una herramienta de comparación externa ... (fácil de perder)

Ubicación de comparación bidireccional del ejecutable: C: \ Archivos de programa (x86) \ Beyond Compare 3 \ BCompare.exe

Ubicación de comparación de conflictos de 3 vías del ejecutable: C: \ Archivos de programa (x86) \ Beyond Compare 3 \ BCompare.exe

Arvind
fuente
2

BComp.exe también funciona en un escenario de múltiples pestañas, por lo que no es necesario agregar / solo a menos que realmente desee ventanas separadas para cada comparación de archivos. Probado / verificado en Beyond Compare 3 y 4. Moraleja: use BComp.exe, no BCompare.exe, para la configuración de la herramienta de comparación externa VS.

Arvind
fuente
2

Estoy usando VS 2017 con proyectos alojados con Git en el alojamiento visualstudio.com (msdn)

El enlace de arriba me funcionó con las instrucciones de "GITHUB PARA WINDOWS".

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

El archivo de configuración se encuentra donde se indica en "c: \ users \ username \ .gitconfig" y acabo de cambiar los BC4 a BC3 para mi situación y utilicé la ruta adecuada:

C: / Archivos de programa (x86) / Beyond Compare 3 / bcomp.exe

chuckc
fuente