2008-10-26 6 views

Respuesta

67

He resuelto esto utilizando una extensión integrada Mercurial ... Sólo tiene que añadir las siguientes líneas a Mercurial.ini (en la carpeta de Mercurial):

[extensions] 
hgext.extdiff= 

[extdiff] 
cmd.vdiff = kdiff3 

Cuando quiero usar kdiff3 en lugar de diff sólo tengo que utilizar:

hg vdiff file.ext 
+2

Además, puede pasar opciones al difftool, ej. '[extdiff] opts.vdiff = 2>/dev/null' – ACyclic

+0

Esta respuesta (y las demás a continuación) hace que otra herramienta de diff esté disponible, pero no cambia la" herramienta de diferencia predeterminada ". Es decir, no cambia qué herramienta se usa cuando se llama a 'hg diff', o más importante cuando se usa' hg log -p' para ver una colección completa de conjuntos de cambios. Me encantaría encontrar una manera de realmente cambiar el valor predeterminado? (por ejemplo, para poder usar una diferencia basada en palabras a veces al revisar una rama). –

8

con esta configuración

[extdiff] 
cmd.kdiff3 = 

Puedo usar este comando para ver diffs:

hg kdiff 

Esto muestra un árbol de directorios con todos los archivos que han cambiado. Hace clic en un archivo para ver diferencias solo para el archivo. Puede agregar un parámetro de archivo al comando para ver solo un archivo.

Más información here.

2

Acabo de tener este problema hace unos minutos; Acabo de instalarlo y agregué su ruta (por defecto está en c: \ archivos de programa \ kdiff3) a mi sistema PATH e.v. Reinicié mi ventana para recoger la nueva ruta, y "hg kdiff3" acaba de funcionar. Como resultado, lo siguiente está en mi archivo base "mercurial.ini", esto permite que kdiff3 funcione para todos los repos hg en el sistema.

[extensions] 
hgext.extdiff = 

[extdiff] 
cmd.kdiff3 = 

[merge-tools] 
kdiff3.args = $base $local $other -o $output 
2

Si usted está buscando algo así como git difftool, en el que no necesita escribir los nombres de archivo y ver el diff para todos los archivos modificados, añadir de inmediato a su ~/.hgrc, y ejecutar hg difftool.

[extensions] 
extdiff = 

[extdiff] 
cmd.vimdiff = vimdiff 

[alias] 
difftool = !for file in $(hg status -n); do hg vimdiff $file; done 
Cuestiones relacionadas