GNU/Linux >> Linux Esercitazione >  >> Linux

Come visualizzare svn diff in stile vimdiff in svn

Modifica il file $HOME/.subversion/config quindi contiene la riga:

diff-cmd = <your favorite diff application>

Alcune app diff supportano svn. Ad esempio, diff-cmd = meld dovrebbe funzionare bene. Tuttavia, vimdiff non uno di loro. Il motivo è che svn diff fornisce i file da confrontare come 6° e 7° argomento e non come 1° e 2° come al solito. Quindi ciò che la maggior parte delle persone fa in questa situazione è questo:

Crea uno script wrapper :

#!/bin/sh

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

Salvalo, ad esempio, in $HOME/bin/svndiffwrap.sh

Non dimenticare di renderlo eseguibile chmod +x $HOME/bin/svndiffwrap.sh .

Rendilo il comando svn diff :

in $HOME/.subversion/config :

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

Nota :Alcuni client svn non supportano percorsi che utilizzano $HOME variabile d'ambiente. Quindi è utile specificare il percorso completo.


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

Questo post del blog prende lo script direttamente dall'esempio degli strumenti diff esterni 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: Ciò presuppone che il tuo vimdiff è in /usr/local/bin , per me, in Fedora, era in /usr/bin . Se non riesci a trovarlo, esegui:

$ whereis vimdiff

Quindi in ~/.subversion/config :

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

vimdiff <(svn diff)

<() è indicato come sostituzione di processo che crea uno pseudo file dall'output di svn diff per vimdiff consumare.

Puoi creare un alias della shell in questo modo:alias svndiff='vimdiff <(svn diff)'

Risposta simile

PS:questa è la soluzione più semplice che devo ancora trovare; mi ha cambiato la vita (relativamente parlando)!


VCSCommand può farlo per te:installa il plug-in, vai al file e premi <Leader>cv


Linux
  1. Come visualizzare i metadati delle immagini su Linux

  2. Come visualizzare le statistiche in Plesk

  3. Problemi con WinSCP con stile di fine riga su Ubuntu Linux quando si utilizza SVN Diff

  4. Come creare e applicare la patch SVN?

  5. Come differenziare le directory su ssh

Come visualizzare le informazioni sull'hardware in Linux

Come visualizzare le informazioni sulla batteria in Linux

Come installare Apache SVN su CentOS 7

Come installare Apache SVN su Ubuntu 14.04

Come cambiare lo stile in cPanel?

Come colorare l'output del differenziale per una migliore visualizzazione