2010-09-08 8 views
16

Me gustaría svn diff para mostrar la diferencia de color a través de un localizador (al igual que lo hace git). He tenido éxito para obtener un diff de color ajustando el diff-cmd en ~/.subversion/config:¿Cómo se obtiene un buscapersonas en svn diff?

diff-cmd = colordiff 

Ahora me gustaría dirigir la salida diff a través de un buscapersonas, ¿cómo puedo hacer eso? (Corto de escribir svn diff | less, por supuesto.)

+1

[Buena respuesta aquí] (http://superuser.com/a/241833/197866) (diferentes opciones de 'menos' a continuación). –

Respuesta

14

En el pasado he utilizado un script de envoltorio y establecer diff-cmd a este script:

#!/bin/sh 
colordiff "[email protected]" | less -r 

Pero entonces consigo un localizador separado para cada archivo, No estoy seguro de si esto es lo que quieres. Hoy en día solo escribo svn diff | less.

Otra solución fácil es hacer un alias: alias svndiff='svn diff | less'. O si desea utilizar svn diff, hacer una función de shell:

svn() { 
    if [ x"$1" = xdiff ] || [ x"$1" = xdi ]; then 
     /usr/bin/svn "[email protected]" | less -r 
    else 
     /usr/bin/svn "[email protected]" 
    fi 
} 
6

normalmente corro svn diff | vim -.

+0

La respuesta original usó 'vimdiff', pero esto ya no es útil para' vim' y muestra una molesta barra de pliegues a la izquierda de la pantalla. –

+0

@AlastairIrvine La pregunta se refiere específicamente a un difger de color. Vim independiente no hace eso. Vimdiff muestra diff lado a lado que es muy útil. –

+1

Vimdiff no hace nada especial en este caso, como dije. Para que Vimdiff funcione, necesita dos archivos. –

0

Adición

function sdi() 
{ 
    if tty -s; then 
      exec svn diff --diff-cmd=colordiff "[email protected]" | less -R 
    else 
      exec svn diff --diff-cmd=colordiff "[email protected]" 
    fi 
} 

a mi ~/.bashrc hizo el truco para mí. Tomado de here

Cuestiones relacionadas