GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo ver svn diff en estilo vimdiff en svn

Edite el archivo $HOME/.subversion/config por lo que contiene la línea:

diff-cmd = <your favorite diff application>

Algunas aplicaciones de diferencias admiten svn. Por ejemplo, diff-cmd = meld debería funcionar bien Sin embargo, vimdiff es no uno de ellos. La razón de esto es que svn diff da los archivos a comparar como argumentos 6 y 7, y no como 1 y 2 como de costumbre. Entonces, lo que la mayoría de la gente hace en esta situación es esto:

Crear una secuencia de comandos contenedora :

#!/bin/sh

/usr/bin/vimdiff ${6} ${7}

Guárdelo, por ejemplo, en $HOME/bin/svndiffwrap.sh

No olvides hacerlo ejecutable chmod +x $HOME/bin/svndiffwrap.sh .

Conviértalo en el comando svn diff :

en $HOME/.subversion/config :

diff-cmd = /home/<username>/bin/svndiffwrap.sh

Nota :Algunos clientes svn no admiten rutas que usan $HOME Variable ambiental. Por lo tanto, es útil especificar la ruta completa.


Lo encontré en:http://blog.tplus1.com/index.php/2007/08/29/how-to-use-vimdiff-as-the-subversion-diff-tool/

Esta publicación de blog toma el script directamente del ejemplo de herramientas de diferencias externas del libro SVN:

diffwrap.sh

#!/bin/sh

# Configure your favorite diff program here.
DIFF="/usr/local/bin/vimdiff"

# Subversion provides the paths we need as the sixth and seventh 
# parameters.
LEFT=${6}
RIGHT=${7}

# Call the diff command (change the following line to make sense for
# your merge program).
$DIFF $LEFT $RIGHT

# Return an errorcode of 0 if no differences were detected, 1 if some were.
# Any other errorcode will be treated as fatal.

Nota: Esto supone que su vimdiff está en /usr/local/bin , para mí, en Fedora, estaba en /usr/bin . Si no lo encuentra, ejecute:

$ whereis vimdiff

Luego en ~/.subversion/config :

[helpers]
...
diff-cmd = /home/<username>/bin/diffwrap.sh

vimdiff <(svn diff)

<() se conoce como sustitución de proceso que crea un pseudoarchivo a partir de la salida de svn diff para vimdiff para consumir.

Puede crear un alias de shell así:alias svndiff='vimdiff <(svn diff)'

Respuesta similar

PD:esta es la solución más simple que aún tengo que encontrar; ¡cambió mi vida (relativamente hablando)!


VCSCommand puede hacerlo por usted:instale el complemento, navegue hasta el archivo y presione <Leader>cv


Linux
  1. ¿Cómo expandir/contraer secciones de diferencias en Vimdiff?

  2. ¿Cómo hacer y aplicar el parche SVN?

  3. Cómo diferenciar directorios sobre ssh

  4. ¿Cómo veo a los miembros de un grupo?

  5. Cómo ver el archivo Core (general)

Cómo ver información de hardware en Linux

Cómo ver la información de la batería en Linux

Cómo instalar Apache SVN en CentOS 7

Cómo instalar Apache SVN en Ubuntu 14.04

¿Cómo cambiar el estilo en cPanel?

Cómo colorear la salida Diff para una mejor vista