¿Cómo se obtiene un localizador en svn diff?

Me gustaría que svn diff muestre la diferencia de color a través de un busca (al igual que git). ~/.subversion/config get un diff coloreado estableciendo el diff-cmd en ~/.subversion/config :

 diff-cmd = colordiff 

Ahora me gustaría canalizar la salida de diff a través de un buscapersonas, ¿cómo hago eso? (Sin escribir svn diff | less , por supuesto)

En el pasado, he usado un script envoltorio y he establecido diff-cmd en este script:

 #!/bin/sh colordiff "$@" | less -r 

Pero luego obtiene un buscapersonas por cada file, no estoy seguro si esto es lo que quiere. Hoy en día solo escribo svn diff | less svn diff | less

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

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

Por lo general, ejecuto svn diff | vim - svn diff | vim - .

Añadiendo

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

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