GNU/Linux >> Tutoriels Linux >  >> Linux

Comment afficher svn diff dans le style vimdiff en svn

Editez le fichier $HOME/.subversion/config il contient donc la ligne :

diff-cmd = <your favorite diff application>

Certaines applications diff prennent en charge svn. Par exemple, diff-cmd = meld devrait bien fonctionner. Cependant, vimdiff n'est pas l'un d'eux. La raison en est que svn diff donne les fichiers à comparer en 6ème et 7ème arguments, et non en 1er et 2ème comme d'habitude. Donc, ce que la plupart des gens font dans cette situation est ceci :

Créer un script wrapper :

#!/bin/sh

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

Enregistrez-le, par exemple, dans $HOME/bin/svndiffwrap.sh

N'oubliez pas de le rendre exécutable chmod +x $HOME/bin/svndiffwrap.sh .

Faites-en la commande svn diff :

en $HOME/.subversion/config :

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

Remarque  :Certains clients svn ne prennent pas en charge les chemins qui utilisent $HOME variables d'environnement. Il est donc utile de spécifier le chemin complet.


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

Cet article de blog prend le script directement à partir de l'exemple d'outils de comparaison externe du livre 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.

Remarque : Cela suppose que votre vimdiff est en /usr/local/bin , pour moi, dans Fedora, c'était en /usr/bin . Si vous ne le trouvez pas, lancez :

$ whereis vimdiff

Puis en ~/.subversion/config :

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

vimdiff <(svn diff)

<() est appelé substitution de processus qui crée un pseudo fichier à partir de la sortie de svn diff pour vimdiff à consommer.

Vous pouvez créer un alias de shell comme ceci :alias svndiff='vimdiff <(svn diff)'

Réponse similaire

PS - c'est la solution la plus simple que je n'ai pas encore trouvée; ça a changé ma vie (relativement parlant) !


VCSCommand peut le faire pour vous - installez le plugin, accédez au fichier et appuyez sur <Leader>cv


Linux
  1. Comment changer le style cPanel

  2. Comment afficher les métadonnées d'image sous Linux

  3. Comment afficher les statistiques dans Plesk

  4. Problèmes avec WinSCP avec le style de fin de ligne sur Ubuntu Linux lors de l'utilisation de SVN Diff

  5. Comment ignorer les répertoires/fichiers dans Subversion ?

Comment afficher les informations sur le matériel sous Linux

Comment afficher les informations sur la batterie sous Linux

Comment installer Apache SVN sur CentOS 7

Comment installer Apache SVN sur Ubuntu 14.04

Comment changer de style dans cPanel ?

Comment coloriser la sortie Diff pour une meilleure vue